0

画面の中央に静止点を作成したいのですが、ユーザーが画面上でタッチしてドラッグすると、ユーザーの入力に従う別の点が作成されますが、常に他の静止点から一定の距離に留まります。ドラッグしているときに、2 番目のポイントがその正確な距離にあるときにゲームが教えてくれるように、簡単に作成できます。

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 に答える