这是我绘制塔的代码:
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);
}
我这样做的基础是:
轮换真的很奇怪,这就是它的正常表现:
但是当它旋转时它会像这样:
最后,当它往下看时,它完全偏离路径,它的中心不会旋转,但整个图像正在移动它为什么会这样做?
只有第一张图像实际上是正确位置的塔
(我没有足够的声誉发布图片)
答案 0 :(得分:0)
我会发表评论,但我的名声太低了...抱歉。 从它的外观来看,我非常肯定你的起源是你的塔的X和Y位置,它应该是这样的:
// AKA the centre of your tower relative to it's Vector2 position
Vector2 origin = new Vector2(towerWidth / 2, towerHeight / 2);