轻松进入模型旋转
本文关键字:模型 旋转 | 更新日期: 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);
}
从我现在的位置来看,我无法检查这个代码是否有效,所以这只是一个想法;)。