【发布时间】:2014-09-03 23:17:22
【问题描述】:
此代码用于绘制塔。广场位置是广场的左上角。 TILE_SIZE 只是正方形的尺寸。
SpriteBatch.Draw(TowerImage, new Rectangle(square.X * TILE_SIZE, square.Y * TILE_SIZE, TILE_SIZE, TILE_SIZE), null, Color.White, myTower.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
旋转真的很奇怪,这是正常的样子:
但是当它旋转时,它是这样的:
最后,当它向下看时,它完全偏离了路径,它没有按中心旋转,但整个图像都在移动,为什么要这样做?
只有第一张图片实际上是正确位置的塔
它似乎在左上角旋转,我不知道为什么。有人可以帮忙吗?
【问题讨论】:
-
您尝试过
Vector2(sprite.width/2,sprite.height/2)的来源吗?
标签: c# xna sprite monogame image-rotation