2014-04-14 83 views
1

我想我没有RotationOrigin参数正确。旋转不正确

首先,我正在用XNA编程一个角色扮演游戏,我想根据它看起来的方向旋转一个精灵。我有正确的旋转和一切的确定,但我想我可能是在错误的方式画它。

为什么不能正常工作?

spriteBatch.Draw(Texture, Position, null, Color.White, Rotation, new Vector2(Texture.Width/2, Texture.Height/2), 1, SpriteEffects.None, 1); 

我想你计算与Texture.Width/2Height/2起源?

+0

你能解释到底发生了什么,你不想发生? –

+0

Oups对不起,完全忘了;) 纹理正在获取约25像素(这是Texture.Width/2,顺便说一下)从正常的位置和25像素左上方... @Nahuel我 – Terrenay

+0

你是什么意思“不起作用”?你有没有试过Vector.Zero的原点? –

回答

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); 
+0

这工作正常,谢谢你的帮助:) – Terrenay