2012-04-03 9 views
1

私はXNAのトップダウンシューターで忙しいです。今私は少しの数学的な問題を抱えています: 私はスプライトを持っています。これでスプライトはマウスカーソルを見ます。 私が撃つとき、私は砲身の銃の端に小さな砲口フラッシュを見せたい。ただし、文字を回転させるとバレルの端の座標が変わります。だから、basicly私がする必要がどのように私は、例えばバレルの端がプレイヤーの頭の上に14pxれるバレルの端部であるスプライトで正しい座標を得ることができますか?(トップダウン) enter image description hereXNAスプライトローテーションポイント

orginと特定の角度を持つ円内の特定の点の座標を取得する方法を知っている。

ありがとうございます!

答えて

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

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

+のいずれかまたは両方は、座標系の向きに応じて ' - 'で置き換える必要があります(または、取得するまでアルファに90度の倍数(最大270)を加算して遊びます)右)。

+1

銃口フラッシュが方向性がある場合は、その原点を後部中央に設定し、人間のスプライトと同じ回転を適用する必要があります。 – Murtnowski

+0

それは仕事をした!ありがとう! – Basaa