您好 Stack Overflow 用户,我在 XNA 游戏中遇到了一个有趣的问题。
所以基本上我有一个小行星,80x80,我将原点设置为 imageW / 2,imageH / 2(如果顺序很重要,它不会,小行星是一个正方形)。
这是一张图片,解释了问题!可视化 FTW :D
那么,关于导致这种情况的任何想法?我花了 1 个小时,查看了示例,我发现它应该像这样旋转:
http://www.riemers.net/images/Tutorials/XNA/Csharp/Series2D/rotation.jpg
但事实并非如此。
这是一个代码示例。我有一个名为 Drawable 的对象,它具有保存矢量位置等的属性。
Vector2 asteroidOrigin = new Vector2(asteroidImgs[asteroid.asteroidType].Width / 2, asteroidImgs[asteroid.asteroidType].Height / 2);
drawableList.Add(new Drawable(asteroidImgs[asteroid.asteroidType], asteroid.asteroidPos, asteroid.angle, asteroidOrigin));
这是绘制方法:
foreach (Drawable drawable in renderManager.getRenderList)
{
spriteBatch.Draw(drawable.image, drawable.position, drawable.sourceRectangle, drawable.tint, drawable.angle, drawable.origin, drawable.imageScale, drawable.spriteEffects, drawable.depth);
}
是的,Drawable 类有多个构造函数,它们分配默认值。