我正在爲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