Как заставить моего персонажа прыгать в Phaser 3? - PullRequest
0 голосов
/ 09 мая 2020

Я новичок в Phaser 3, и я пытаюсь заставить своего персонажа подпрыгнуть.

Вот мой код:

create() {
    this.kid = this.physics.add.sprite(50, 380, 'idle');
    this.kid.setScale(.3);
    this.kid.setGravityY(300);
    this.kid.setBounce(0.2);
    this.kid.setCollideWorldBounds(true);
    this.physics.add.collider(this.kid, this.platforms);
    this.cursorKeys = this.input.keyboard.createCursorKeys()
}

update() {
    this.moveKid()
}

moveKid() {
    if (this.cursorKeys.left.isDown) {
        this.kid.setVelocityX(-300)
    } else if (this.cursorKeys.right.isDown) {
        this.kid.setVelocityX(300)
    } else {
        this.kid.setVelocityX(0);
        this.kid.setVelocityY(0);
    }
    if (this.cursorKeys.up.isDown && this.kid.body.touching.down) {
        this.kid.setVelocityY(-300);
    }
}

Но в настоящее время персонаж прыгает только через несколько пикселей вверх и все. Если я удалю часть touching.down, игрок будет свободно прыгать, но также подпрыгивает в воздухе и падает очень, очень медленно (независимо от силы тяжести, которую я установил для него).

Может ли кто-нибудь помочь?

1 Ответ

1 голос
/ 09 мая 2020

Вы бы хотели удалить строку в вашем коде, где вы устанавливаете скорость y символа равной нулю, когда нет ввода с клавиатуры. Он останавливает движение персонажа каждый раз, когда игра обновляется, отсюда и медленная скорость падения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...