簡體   English   中英

libGDX用線連接兩個actor

[英]libGDX connect two actors with line

我必須創建2張圖像並將其與線連接。 當我移動一個演員時,顯然正確的行尾必須讓我的演員休憩。 我知道,我可以每次使用ShapeRenderer並重新繪制該行,但這是最好的主意嗎?

ShapeRenderer sr = new ShapeRenderer();
    sr.setColor(Color.RED);
    sr.setProjectionMatrix(viewport.getCamera().combined);

    sr.begin(ShapeRenderer.ShapeType.Filled);
    sr.rectLine(vertex1.getCenterX(), vertex1.getCenterY(),
            vertex2.getCenterX(), vertex2.getCenterY(), 10);
    sr.end();

我已經創建了兩個演員並管理拖動事件。 現在我要畫那條線。 看起來應該像這樣

在此處輸入圖片說明

如果整形器適合您的風格,我不明白為什么這不是一個好主意?

如果在角色后面繪制線,則只需從角色1的中心繪制到2。否則,您必須計算從哪里開始。 像這樣的偽代碼:

//Subtract vectors and normalize to get direction
direction = origin1.sub(origin2);
direction.nor();

//Add the radius in the correct direction from the origin.
startPoint = origin2.add(direction * actorRadius);
endPoint = origin1.add(direction.rotate(180) * actorRadius);

小心使用這樣的向量。 如果不使用vector.cpy()則如上所述的鏈接將更改原始矢量。 因此,如果您仍然需要原始原點,則必須做direction = origin1.cpy().sub(origin2); 現在direction擁有矢量的副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM