Невозможно изменить сцену в Phaser 3 после нажатия на изображение - PullRequest
2 голосов
/ 08 марта 2020

Я пытаюсь перейти от одной сцены к другой в Phaser 3, настроив событие щелчка, но есть проблема с вызовом this.scene.start('entryLevel');, когда я нажимаю на изображение, я получаю это:

this.scene.start не является функцией

, и я не могу понять, почему, как я могу это исправить? Вот мой код:

class MainMenu extends Phaser.Scene {
    constructor() {
        super('bootGame')
    }

    preload() {
        this.load.image('menuBackground', 'assets/world/menubackground.png');
        this.load.image('play_button', 'assets/world/play_button.png');
        this.load.audio('menu_music', 'assets/music/menu_music.mp3');
    }

    onObjectClicked() {
        this.scene.start('entryLevel');
    }

    create() {
        this.add.image(400, 300, 'menuBackground');
        var playButton = this.add.image(this.game.renderer.width / 2, this.game.renderer.height / 3, 'play_button').setDepth(1);
        playButton.setInteractive();
        this.input.on('gameobjectdown', this.onObjectClicked);

        this.sound.play('menu_music', {
            loop: true
        });
    }
}

1 Ответ

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

Я думаю, что это может быть проблемой.

Попробуйте, если вам подходит следующее:

const self = this;
this.input.on('gameobjectdown', function () {
   self.scene.start('entryLevel');
});

Надеюсь, это поможет!

...