1

私はXNAの小さなトップダウンシューティングゲームで忙しいです。今、私は少し数学の問題を抱えています:私はスプライト、9mmを保持している人間を持っています。これで、スプライトはマウスカーソルを確認します。私が撃つとき、私は銃身の端に小さな銃口フラッシュを見せたいです。ただし、キャラクターを回転させると、バレルの端の座標が変わります。

たとえば、バレルの端がプレーヤーの頭から14ピクセル上にある場合、バレルの端であるスプライトで正しい座標を取得するにはどうすればよいですか?(トップダウン) ここに画像の説明を入力してください

したがって、基本的には、原点と特定の角度を持つ円内の特定の点の座標を取得する方法を知る必要があります。

ありがとう!

4

1 に答える 1

4
x=orig.x+cos(alpha)*r;
y=orig.y+sin(alpha)*r;

ここで、alphaは、x軸とバレルを延長する線との間の角度です。rは、円の半径(バレルの長さ)です。

座標系の方向によっては、一方または両方+を「-」に置き換える必要がある場合があります(または、正しくなるまでアルファに90度の倍数(最大270)を追加して遊んでください)。

于 2012-04-03T21:08:17.920 に答える