这是我绘制塔的代码:
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
旋转真的很奇怪,这是它的正常外观:
但是当它旋转时,它是这样的:
最后,当它向下看时,它完全偏离了路径,它没有按中心旋转,但整个图像都在移动,为什么要这样做?
只有第一个图像实际上是正确位置的塔
(我没有足够的声誉来发布图片)