-2

トップダウン ビューの戦車ゲームを作成していますが、弾丸の精度を 100% にすることはできません。マウスの位置によって、オフまたはオンのいずれかになります。

以下の式を使用して、ターゲット (MousePosition) に到達するために移動する角度を計算しています。

double dx = MousePosition.x - TankPosition.x;
double dy = MousePosition.y - TankPosition.y;
double angle = Math.atan2(dy, dx);

double tx = Math.cos(angle) * speed;
double ty = Math.sin(angle) * speed;

x += tx;
y += ty;
4

1 に答える 1

3

あなたの問題は、整数と浮動小数点数の問題であり、丸めの問題であると推測しています。整数を使用している場合は、ティックが更新されるたびに結果が丸められます。これは、マウスの位置に応じて、スポット オン (マウスが丸めの影響を受けない位置にある場合) またはわずかにオフになり、ターゲットの位置に応じてランダムに見えるように変化することを意味します。これは、問題の説明のように聞こえます。 . 位置をフロートとして追跡し、計算を行うときではなく、描画に使用するときにのみ丸めます。

于 2013-01-12T22:53:08.783 に答える