【问题标题】:Rotate and zoom entire 2d scene旋转和缩放整个 2d 场景
【发布时间】:2012-05-06 20:09:16
【问题描述】:

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

【问题讨论】:

    标签: xna xna-4.0


    【解决方案1】:

    您正在寻找的转换是这样的:

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

    【讨论】:

    • 这正是我要找的,我没有意识到你可以有不止一种翻译,根据它们在等式中的位置而有所不同,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2012-03-20
    相关资源
    最近更新 更多