我正在绘制一个基于平铺的游戏。一些瓷砖可以绕其中心旋转。看来,为一个SpriteBatch.Draw调用设置旋转原点会影响所有其他没有指定原点的Draw调用。
有没有办法避免为非旋转瓷砖的每个其他绘图调用设置原点?
理想情况下,我不想将我的非旋转瓷砖一起批量绘制,然后单独绘制到我的旋转瓷砖上。
答案 0 :(得分:2)
看来,为一个SpriteBatch.Draw调用设置旋转原点会影响所有其他没有指定原点的Draw调用。
事实并非如此。 origin
的{{1}}仅适用于特定的Draw
。
如果您使用的Draw
重载未指定原点,则隐式使用Draw
的原点。
现在,如果您实际上将矩阵传递给Vector2.Zero
,那么该矩阵将应用于所有 Begin
次调用(包括您设置原点的矩阵)特殊的sprite批处理,直到调用Draw
方法。
您应该使用End
的旋转参数来旋转您世界中的各个精灵。您应该使用Draw
上的矩阵参数来移动所有精灵的视图(如相机)。