Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在绘制一个基于瓷砖的游戏。一些瓷砖可以围绕它们的中心旋转。似乎为一个 SpriteBatch.Draw 调用设置旋转原点会影响所有其他未指定原点的 Draw 调用。
有没有办法避免必须为非旋转瓷砖的每个其他绘制调用指定原点?
理想情况下,我不想将我的非旋转瓷砖批量绘制在一起,然后在我的旋转瓷砖之前/单独绘制。
似乎为一个 SpriteBatch.Draw 调用设置旋转原点会影响所有其他未指定原点的 Draw 调用。
这根本不是那么回事。originforDraw仅适用于那个特定的Draw.
origin
Draw
如果您使用的Draw是未指定原点的重载,Vector2.Zero则会隐式使用原点。
Vector2.Zero
现在,如果您实际上将一个矩阵传递给Begin,则该矩阵将应用于该特定精灵批次上的所有 Draw调用(包括您设置原点的调用),直到End调用其方法。
Begin
End
您应该使用旋转参数Draw来旋转世界中的单个精灵。您应该使用矩阵参数Begin来移动所有精灵的视图(如相机)。