我认为我没有正确的Rotation
和Origin
参数。
首先,我正在使用XNA编写一个小角色扮演游戏,我想根据它看起来的方向旋转一个精灵。我有正确的轮换和一切肯定,但我想我可能用错误的方法。
为什么这不起作用?
spriteBatch.Draw(Texture, Position, null, Color.White, Rotation, new Vector2(Texture.Width/2, Texture.Height/2), 1, SpriteEffects.None, 1);
我以为你用Texture.Width / 2
和Height / 2
计算了原点?
答案 0 :(得分:0)
使用你的原点时,你在游戏中看到的位置会比不使用中心原点稍微高一些,因为你在旋转时从位置减去原点。
尝试将您的原点存储在Vector2
中,并在绘制对象时将其添加到您的位置。
Vector2 Origin = Vector2(Texture.Width/2, Texture.Height/2);
spriteBatch.Draw(Texture, Position + Origin, null, Color.White, Rotation, Origin, 1, SpriteEffects.None, 1);