降低我太空船的速度

时间:2014-09-24 19:38:23

标签: c# xna

我正在为一些优秀的已停产的XNA编写Windows Phone太空游戏。我需要船的速度逐渐减小,直到用户没有按住驱动按钮时它变为零。听起来很简单,但Velocity是Vector2,我不知道该怎么做。

        position += velocity;
        speed = 0.04f;

        switch (driveBtn.CurrentButtonState) 
        {
            case ControlButton.ButtonState.Released:
                //Need to slow down ship when drive is not being held.
                break;

            case ControlButton.ButtonState.Pressing:
                velocity.X += (float)Math.Cos(rotation) * speed;
                velocity.Y += (float)Math.Sin(rotation) * speed;
                break;
        }

2 个答案:

答案 0 :(得分:1)

尝试分割速度:

velocity /= 2f;

答案 1 :(得分:1)

另一个选项,可以为您提供更平滑,更可控的速率,您可以使用线性插值:

float rate = 0.5f;
velocity = Vector2.Lerp(velocity, Vector2.Zero, rate);