C# XNA画法无意识偏移

C# XNA画法无意识偏移,c#,xna,xna-4.0,C#,Xna,Xna 4.0,在我当前的项目中,我试图包括一个在现场简单旋转的精灵。这应该很容易,但出于某种原因,XNA正在向我的精灵位置添加偏移 以下是我正在使用的绘图方法: spriteBatch.Draw( 纹理,//texture2D 位置,//位置向量2 null,//source Rect(null绘制整个纹理) Color.White,//Color 旋转,//旋转(浮动) 新矢量2(position.X+(texture.Width/2),position.Y+(texture.Height/2)),//原点

在我当前的项目中,我试图包括一个在现场简单旋转的精灵。这应该很容易,但出于某种原因,XNA正在向我的精灵位置添加偏移

以下是我正在使用的绘图方法:

spriteBatch.Draw(
纹理,//texture2D
位置,//位置向量2
null,//source Rect(null绘制整个纹理)
Color.White,//Color
旋转,//旋转(浮动)
新矢量2(position.X+(texture.Width/2),position.Y+(texture.Height/2)),//原点
1f,//刻度(浮动)
SpriteEffects.None,//SpriteEffects
1); //层深
此处的位置是任意的,当前它被设置为视口的中间底部。旋转是一个增量浮动(增量为0.1f),在逐步执行代码时,原点和位置都保持正确的值

但不管我怎么做,精灵总是在距离原点一定距离处绘制。它围绕原点旋转,但它不是一个中心轴,而是在屏幕上呈拱形

我已经尝试了XNA4.0内置绘图方法的每一个变体。任何提到旋转的都有这种效果。(使用基本的(纹理、位置、颜色)方法,从位置上看,这是很好的。 我也尝试过改变其他东西的纹理,老实说,我已经尝试了我能想到的一切

我非常感谢你的帮助。如果需要一个更全面的例子,我会与你分享,但老实说,除了这个方法之外,没有任何事情会影响它


感谢您抽出时间阅读!

我想您的问题在于:

new Vector2(position.X + (texture.Width / 2), position.Y +(texture.Height / 2))
原点仅用于计算纹理的尺寸,因此,如果希望纹理围绕其中心旋转,只需设置:

new Vector2(texture.Width / 2, texture.Height / 2)

您已经在第二个参数中设置了位置。

帮助,您的名字是pinckerman!非常感谢您,完全解决了问题,我对XNA的理解也提高了!