1

我正在绘制一个基于瓷砖的游戏。一些瓷砖可以围绕它们的中心旋转。似乎为一个 SpriteBatch.Draw 调用设置旋转原点会影响所有其他未指定原点的 Draw 调用。

有没有办法避免必须为非旋转瓷砖的每个其他绘制调用指定原点?

理想情况下,我不想将我的非旋转瓷砖批量绘制在一起,然后在我的旋转瓷砖之前/单独绘制。

4

1 回答 1

2

似乎为一个 SpriteBatch.Draw 调用设置旋转原点会影响所有其他未指定原点的 Draw 调用。

这根本不是那么回事。originforDraw仅适用于那个特定的Draw.

如果您使用的Draw是未指定原点的重载,Vector2.Zero则会隐式使用原点。

现在,如果您实际上将一个矩阵传递给Begin,则该矩阵将应用于该特定精灵批次上的所有 Draw调用(包括您设置原点的调用),直到End调用其方法。

您应该使用旋转参数Draw来旋转世界中的单个精灵。您应该使用矩阵参数Begin来移动所有精灵的视图(如相机)。

于 2011-04-15T13:51:16.947 回答