XNAで簡単なゲームを作ろうとしています。
横にスプライトシートがあるプレーヤーがいます。スプライトシートは一種の武器であり、先端があります。
このスプライトを、先端をマウスの位置に向けて回転させるにはどうすればよいですか?
float y2 = m_Mouse.Y;
float y1 = m_WeaponOrigin.Y;
float x2 = m_Mouse.X;
float x1 = m_WeaponOrigin.X;
// Get angle from mouse position.
m_Radians = (float) Math.Atan2((y2 - y1), (x2 - x1));
Drawing with:
activeSpriteBatch.Draw(m_WeaponImage, m_WeaponPos, r, Color.White, m_Radians, m_WeaponOrigin, 1.0f, SpriteEffects.None, 0.100f);
これにより回転しますが、マウスに正しく追従せず、動作がおかしくなります。
これを機能させるためのヒントはありますか?
私が抱えているもう1つの問題は、銃口であるポイントを定義し、角度に基づいてそれを更新して、ショットがそのポイントからマウスに向かって正しく発射されるようにすることです。
ありがとう
スクリーンショット:
もう一度ありがとう、楽しいゲームであることが判明しました。