开发者问题收集

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

2019-03-20
1076

我使用 typescript 在 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 中从可点击的精灵更改场景?

1个回答

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

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

Scene 对象上的 scene 属性引用 ScenePlugin ,请查看 docs

Krzysztof Grzybek
2019-03-21