Как я могу сделать двойной прыжок, используя C # и XNA? - PullRequest
0 голосов
/ 01 июня 2018

Это мой текущий код для одного прыжка, ввод от пользователя устанавливает переход в 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

1 Ответ

0 голосов
/ 01 июня 2018

Я думаю, что вы должны сделать angle равным 0, чтобы продолжить прыжок.

if (doubleJumping)
{
    angle = 0;
    doubleJumping = false;
}
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;
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...