轻松进入模型旋转

本文关键字:模型 旋转 | 更新日期: 2023-09-27 18:25:12

我正在XNA中制作一个简单的游戏(对于Windows,如果这有区别的话),当玩家向右移动时,我使用以下代码旋转船模型,使其看起来像是船倾斜到了扫射中:

RotationMatrix = Matrix.CreateRotationX(MathHelper.PiOver2) *
                 Matrix.CreateRotationY(0.4f);

这是有效的,但它会立即将飞船弹出到所需的旋转位置。我宁愿它在几帧内轻松下来。作为参考,旋转矩阵声明如下:

public Matrix RotationMatrix = Matrix.CreateRotationX(MathHelper.PiOver2);

我能做些什么来使瘦肉变得光滑?

轻松进入模型旋转

我认为您只需要在代码中包含时间。在Xna中,您可以访问GameTime对象(例如,在Game.Draw方法中),因此,您可以尝试以下操作:

private float _seconds = 0;
protected override void Draw(GameTime gameTime)
{
    if (_seconds < 1)
    {
        _seconds += gameTime.ElapsedGameTime.TotalSeconds;
    }
    RotationMatrix = Matrix.CreateRotationX(MathHelper.PiOver2) *
         Matrix.CreateRotationY(0.4f * _seconds);
    base.Draw(gameTime);
}

从我现在的位置来看,我无法检查这个代码是否有效,所以这只是一个想法;)。