私は小さな2Dゲームを書くことによってXNAを学ぼうとしていますが、これはトップダウンのパースペクティブです。左に移動し、上下左右のキーを使って軸に沿って移動し、マウスカーソルを右に見て、プレイヤーが同時に走り、照準を合わせることができるようにする。ベクトルの数学、角度を見つける
私はプレイヤーの位置(m_PlayerPos)とマウスの位置(m_MousePos)のベクトルを1つ持っており、マウスの位置に正しい角度を得ようとしています。
public static float Angle(Vector2 from, Vector2 to) { return (float)Math.Atan2(from.X - to.X, from.Y - to.Y); }
これは動作しますが、何らかの理由でこの方法は、x軸に沿って、半ように動作します:
イムは、式メソッドを使用して。マウスがプレーヤーの右の正確な左にあるとき、プレーヤーはマウスを右に見ます。
しかし、私がプレーヤーの一番上に移動すると、それが下になり、マウスがプレーヤーの下にある場合、プレーヤーがルックアップします。だから私はY軸を逆にする必要がありますが、私はどのように確かではありません。
フィードバックをいただきありがとうございます。
Math.Atan2はyとxを必要とすることに注意してください。引数が入れ替えられます – freespace