Это мой текущий код для одного прыжка, ввод от пользователя устанавливает переход в true, и один прыжок работает без ошибок, однако я не могу произвести второй прыжок в воздухе для своей игры.Я должен был сделать это без единства для школы, поэтому он работает только с прямоугольниками.
if (jumping) //only run when jump has been initiated by space or A
{
rect.Y = centreY - (int)(Math.Sin(angle) * range); //move player up to a maximum of range's value
angle += speedY; //gradually reduce player's y by reducing angle's value
newCentreY = rect.Y;
if (angle > Math.PI) //reset player to not jumping when angle is greater than 3.14
{
angle = 0;
jumping = false;
}
}
Вот обработчик ввода для прыжков:
if (userControl.Buttons.A == ButtonState.Pressed || keystate.IsKeyDown(Keys.Space)) //jump when A or space is pressed
{
jumping = true;
}
Jump(userControl, keystate); //jump method