0

我想在屏幕中间创建一个固定点,当用户在屏幕上触摸和拖动时,它应该创建另一个点,该点将跟随用户输入,但始终与另一个固定点保持固定距离。我可以很容易地做到这一点,以便游戏告诉我第二个点何时在那个确切的距离上,同时拖动它。

public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
    setPosition(a, b);
    return true;
}

所以基本上我想知道如何正确设置a(x坐标)和b(y坐标)。此外,我不确定这是否更像是一个数学问题,或者 libgdx(或 java)是否有任何我可以使用的漂亮东西?任何帮助表示赞赏。

4

1 回答 1

0

对于 Libgdx 特定的支持,我知道的并不多。也就是说,我认为您可以使用Vector2然后对其进行归一化(Vector2.nor()),然后将其乘以您的“固定距离”(Vector2d.mul()

private final Vector2 perimiterPoint = new Vector2();
private float centerX = ...;
private float centerY = ...;
private float radius = ...; // The "fixed distance" radius of your circle.

public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
    perimiterPoint.set(x - centerX, y - centerY).nor().mul(circleRadius)
    setPosition(perimiterPoint.x, perimiterPoint.y);
    return true;
}
于 2013-03-05T02:03:06.400 回答