我想在屏幕中间创建一个静止点,当用户触摸并拖动屏幕时,它应该创建另一个点,该点将跟随用户输入,但始终与其他静止点保持固定距离。我可以很容易地做到这一点,以便游戏告诉我第二个点何时在那个确切的距离上拖动它。
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
setPosition(a, b);
return true;
}
所以基本上我想知道如何正确设置a(x坐标)和b(y坐标)。 另外我不确定这是否更像是一个数学问题,或者libgdx(或者java)是否有任何可以使用的漂亮东西? 任何帮助表示赞赏。
答案 0 :(得分: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;
}