Почему мой игрок не падает после прыжка? - PullRequest
0 голосов
/ 10 января 2020

Я сейчас пытаюсь написать свою первую игру GUI, где игрок прыгает с препятствия на препятствие. Предполагается, что игрок делает простой прыжок, когда нажимается пробел (без фактического перемещения по оси x), но когда он нажат, игрок только go поднимается и не опускается.

Вот переменные в моем коде:

private int playerY = 415, playerX = 100, score=0, maxHeight = 350;
private float speed=3, jumpStrength, weight=1;

Вот мой код, который заставляет игрока прыгать:

    public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();

    if (key == KeyEvent.VK_SPACE && playerY>=maxHeight) {
        jumpStrength = 24;
        playerY -= jumpStrength;
        jumpStrength -= weight;
    }
    if (playerY>=maxHeight){
        playerY = maxHeight;
    }
}

public void keyTyped( KeyEvent e )   {}

public void keyReleased( KeyEvent e ){}

Кто-нибудь знает, почему это не работает и как я могу это исправить?

1 Ответ

0 голосов
/ 10 января 2020

Я не знаю, как выглядит весь ваш код или как работает ваша игра, но у меня есть эта идея.

public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();

    if (key == KeyEvent.VK_SPACE) {
        jumpStrength = 24;
        jumpStrength += weight;
        playerY -= jumpStrength;
    }
    if (playerY>=maxHeight){
        playerY = maxHeight;
    }
}

public void keyTyped( KeyEvent e )   {}

public void keyReleased( KeyEvent e ){
    int key = e.getKeyCode();
    if (key == KeyEvent.VK_SPACE) {
        jumpStrength = 24;
        jumpStrength += weight;
        playerY -= jumpStrength;
    }
    if (playerY<=0){
        playerY = 0;
    }
}
...