Я пишу космическую игру для Windows Phone в какой-то хорошей прекращенной XNA. Мне нужно, чтобы скорость корабля постепенно уменьшалась, пока он не достигнет нуля, когда пользователь не удерживает кнопку привода. Это звучит просто, но 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;
}
так просто добавить очень маленький вектор, который точно противопоставляет движение судна. –
Если скорость - это вектор, просто добавьте «-величина/коэффициент», где «factor» - это числовое значение, которое масштабирует, как медленно или быстро вы теряете скорость. Как только величина скорости равна нулю, вы перестанете добавлять. – InBetween
А, моя ошибка (это был долгий день ...) Однако вы должны переименовать 'speed' в' acceleration', чтобы добиться большей четкости кода. –