Phaser 3 可点击精灵无法启动场景

Phaser 3 clickable sprite can't start scene

我使用打字稿在 Phaser 3 中创建了一个可点击的精灵。 我想在点击精灵时切换场景:

export class BMO extends Phaser.GameObjects.Sprite {

    constructor(scene) {
        super(scene, 100,150, "bmo")
        this.scene.add.existing(this)
        this.setInteractive()

        this.on('pointerdown', function (pointer) {
            this.scene.start('GameOver');
        }, this);
    }
}

在 运行 游戏中点击精灵时,我得到:

this.scene.start is not a function

完全相同的代码在场景而不是精灵中时确实有效:

export class GameScene extends Phaser.Scene {

    constructor() {
        super({key: "GameScene"})
    }

    create(): void {
        this.input.once('pointerdown', function (pointer) {
            this.scene.start('GameOver');
        }, this);
    }
}

如何从 Phaser 3 中的可点击精灵更改场景?

您应该在 scene 属性 对象上调用方法 start,就像您在第二个示例中所做的那样:

this.scene.scene.start('GameOver');

scene 属性 on Scene object 引用 ScenePlugin, 查看 docs