【问题标题】:Using Spritebatch with varying rotation origin使用具有不同旋转原点的 Spritebatch
【发布时间】:2011-04-15 21:51:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# xna xna-4.0


    【解决方案1】:

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

    事实并非如此。 Draworigin 仅适用于特定的 Draw

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多