簡體   English   中英

如何使用C#和XNA進行雙跳?

[英]How can I make a double jump using C# and XNA?

這是我目前單跳的代碼,來自用戶的輸入設置跳轉為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

我認為你應該讓你的angle0才能繼續跳躍。

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;
    }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM