精灵方向错误

时间:2012-02-24 09:53:52

标签: c# xna

我使用一些代码来计算精灵的路径。精灵纹理的正面朝上,这就是我想要移动精灵的方向,但就像现在一样,精灵的方向是精灵纹理的右边!?所以当我旋转它时,它会向新的方向移动,它会向侧面移动。我希望我的问题不清楚?如果有一个改变的解决方案,那么帮助就会被预先确定,因此方向指向精灵纹理。

 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);
    }

1 个答案:

答案 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度