libGDX用线连接两个actor

时间:2015-09-11 13:25:32

标签: java android graph libgdx actor

我必须创建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();

我已经创建了两个actor并管理了拖动事件。现在我必须绘制那条线。它看起来应该是这样的

enter image description here

1 个答案:

答案 0 :(得分:1)

如果塑形者适合你的风格我不明白为什么那会是个坏主意?

如果你画出演员背后的线条,你只需要从演员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);现在方向保存矢量的副本。