2011-03-04 58 views
2

的部分的我有250像素宽和2000像素高的纹理。它250x250的一部分根据各种条件(某种精灵表的,是)在屏幕上绘制。我想要的只是在具有一定旋转的固定目标矩形内绘制它。可能吗?旋转子画面的在XNA

回答

3

是。以下是如何有效地转动你的目标矩形:

看一看的overloads for SpriteBatch.Draw

注意,没有该取Rectangle作为目的地的重载采取旋转参数。这是因为这样的事情没有多大意义。关于您希望旋转目标的方式不明确。

但您可以通过仔细使用positionscale参数来达到与设置目标矩形相同的效果。与origin(缩放和旋转的心,就该以像素为单位指定的sourceRectangle)和rotation参数组合这些达到你想要的效果。

(如果,另一方面,要“适合”的矩形 -旋转后有效扩充- 你将不得不同时使用transformMatrix参数Begin


现在 - 你的问题在这一点上不是很清楚:但是如果你之后的效果更像是旋转你的矩形,那么用普通的'SpriteBatch'就不能达到这个效果。

快速和肮脏的方式实现这一目标是在充当你的目标矩形视口。然后在其中绘制旋转的精灵。请注意,SpriteBatch的坐标系基于视口,而不是屏幕。

的“更好”(但更难实现)的方式来做到这一点是不使用SpriteBatch所有,但实现自己的子图形绘制,让你旋转纹理坐标。