Double Jump Phaser 3? - PullRequest
       25

Double Jump Phaser 3?

1 голос
/ 25 марта 2020

Я новичок в разработке игр с Phaser3. Я схожу с ума, в течение нескольких дней я искал способ сделать «двойной прыжок». и я не могу ... Я нашел много вопросов, похожих на этот, здесь, но ни один не дал мне конкретного решения ...

Я бы хотел, чтобы игрок дважды прыгал, если бы я дважды щелкнул вверх 'курсор.

Я в этой точке:

function update() {


    if (cursors.left.isDown) {
        player.setVelocityX(-130);
        player.anims.play('left', true);

    } else if (cursors.right.isDown) {
        player.setVelocityX(130);
        player.anims.play('right', true);

    } else {
        player.setVelocityX(0);
        player.anims.play('idle', true);
    }

    if (cursors.up.isDown && player.body.touching.down) {
        salto();
    } 

}

1 Ответ

1 голос
/ 25 марта 2020

Это может выглядеть примерно так:

function update() {
    if (cursors.left.isDown) {
        player.setVelocityX(-130);
        player.anims.play('left', true);

    } else if (cursors.right.isDown) {
        player.setVelocityX(130);
        player.anims.play('right', true);

    } else {
        player.setVelocityX(0);
        player.anims.play('idle', true);
    }

    if (player.body.touching.down) {
        player.jumpCount = 0;
    }

    var canDoubleJump = player.jumpCount < 2;

    if (cursors.up.isDown && (player.body.touching.down || canDoubleJump ) {
        player.jumpCount++;
        salto();
    }
}

Отслеживать текущее значение jumpCount, которое вы увеличиваете, когда игрок прыгает, а затем сбрасывать его на 0, когда они касаются земли. Они могут прыгать, только если они касаются земли ИЛИ они уже дважды не прыгали.

Я предполагал, что вы можете добавить jumpCount к объекту игрока.

...