我正在为Windows Phone编写一个太空游戏,在一些不错的已停用XNA中。我需要船的速度逐渐降低,直到用户没有按住驱动器按钮时为零。这听起来很简单,但速度是一个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;
}
所以只加与船舶运动完全相反的非常小的矢量 – 2014-09-24 19:40:38
如果速度是一个矢量,只需添加'-velocity/factor',其中'factor'是数字值,可以缩放或减慢速度。一旦速度的大小为零,你停止添加。 – InBetween 2014-09-24 19:45:06
啊,我的错误(这是漫长的一天......)但是,您应该将'speed'重命名为'acceleration'以实现更高的代码清晰度。 – 2014-09-24 19:49:12