これは、タワーを描画するための私のコードです。
SpriteBatch.Draw(
GetTowerImage(m.SquareTower),
new Rectangle(m.X * TILE_SIZE, m.Y * TILE_SIZE, TILE_SIZE, TILE_SIZE),
null,
Color.White,
m.SquareTower.Rotation,
new Vector2(TILE_SIZE - 35, TILE_SIZE - 35),
SpriteEffects.None,
(float)0.0);
タワーの位置を取得して配置するコードですが、回転メソッドが実行されて画像が回転すると
public void FaceTarget(Vector2 center, Vector2 enemyCenter)
{
Vector2 direction = center - enemyCenter;
direction.Normalize();
this.Rotation = (float)Math.Atan2(-direction.X, direction.Y);
}
私はこれに基づいてこれを行いました:
- http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Rotation.php
- http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Direction_to_Angle.php
回転は非常に奇妙です。通常は次のようになります。
しかし、回転すると次のようになります。
最後に見下ろすと、完全に道から外れます。中心で回転しているのではなく、画像全体が動いているのはなぜですか?
最初の画像だけが実際に正しい位置にある塔です
(画像を投稿するほどの評判はありません)