对于我当前的项目,我正在尝试包含一个简单地在现场旋转的精灵。这应该很容易,但出于某种原因,XNA 正在为我的精灵的位置添加一个偏移量。
这是我正在使用的绘制方法:
spriteBatch.Draw(
texture, //texture2D
position, //position Vector2
null, //source Rect (null draws whole texture)
Color.White, //Color
rotation, //rotation (float)
new Vector2(position.X + (texture.Width / 2), position.Y +(texture.Height / 2)), //origin
1f, //scale (float)
SpriteEffects.None, //spriteEffects
1); //layer depth
位置在这里是任意的,目前它被设置为视口的中间底部。旋转是一个增量浮点数(增量为 0.1f),当单步执行代码时,原点和位置都保持正确的值。
但无论我尝试什么,精灵总是在距原点一定距离处绘制。它围绕原点旋转,但它不是中心轴,而是在屏幕上呈拱形。
我已经尝试过 XNA 4.0 内置绘图方法的所有变体。任何提到轮换的都有这种效果。(基本(纹理,位置,颜色)方法很好,位置明智。我也尝试过改变其他东西的纹理,老实说,我已经尝试了我能想到的一切。
我非常感谢任何帮助。如果需要更全面的示例,我将分享它,但老实说,在此方法之外实际上并没有发生任何事情,这会影响它。
感谢您花时间阅读!