旋转并缩放整个2d场景

时间:2012-05-06 20:09:17

标签: xna xna-4.0

我目前正在制作一款类似于最终幻想的游戏,而且我正处于从世界地图切换到战斗时我正在研究效果的地步。我希望在旋转效果时放大,我想简单地设置一个传递给SpriteBatch.Begin的变换矩阵的动画,但我的问题是当我旋转时,旋转原点是我整个场景的左上角而且它没有't'放大“居中。我看到你可以在SpriteBatch.Draw上指定一个旋转原点,但是它会为每个精灵设置它,我想要旋转整个场景。

1 个答案:

答案 0 :(得分:1)

您正在寻找的转变是:

Matrix Transform = Matrix.CreateTranslation(-Position)
   * Matrix.CreateScale(scale)
   * Matrix.CreateRotationZ(angle) 
   * Matrix.CreateTranslation(GraphisDevice.Viewport.Bounds.Center);