我使用一些代码来计算精灵的路径。精灵纹理的正面朝上,这就是我想要移动精灵的方向,但就像现在一样,精灵的方向是精灵纹理的右边!?所以当我旋转它时,它会向新的方向移动,它会向侧面移动。我希望我的问题不清楚?如果有一个改变的解决方案,那么帮助就会被预先确定,因此方向指向精灵纹理。
public override void Update()
{
direction = new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation));
position += direction * speed;
}
public virtual void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, position, null, Color.White, rotation, origin, scale, SpriteEffects.None, 0f);
}
答案 0 :(得分:1)
简单修复:
// Change it to +MathHelper.PiOver2 if it goes the wrong way
spriteBatch.Draw(texture, position, null, Color.White, rotation-MathHelper.PiOver2, origin, scale, SpriteEffects.None, 0f);
绘制时只需从旋转中减去(或添加)90度