【发布时间】:2012-02-24 18:20:46
【问题描述】:
我使用一些代码来计算精灵的路径。精灵纹理的前面指向上方,这就是我想要移动精灵的方向,但现在,精灵的方向是精灵纹理的右侧!?因此,当我向新方向旋转它时,它会向侧面移动。我希望我的问题不是很清楚?如果有解决方案可以改变方向,使方向指向精灵纹理的上方,我们将非常感谢您的帮助。
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);
}
【问题讨论】:
-
代码在我看来是正确的,可能是您的图像朝向错误的方向。在您的绘图应用中,向上 == 正确。
-
您的
Cos和Sin呼叫方式是否正确。如果在Vector2构造函数中交换它们会发生什么? -
我想最简单的方法是改变纹理使其面向当时,但如果宇宙飞船朝上,它看起来会更好,因为这是一个小行星游戏。
-
Vector2 构造函数?我在方法中进行了交换,但没有奏效!?