我已经使用打字稿在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不是函数
完全相同的代码在场景中而不是精灵中时起作用:
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中的可单击精灵更改场景?
答案 0 :(得分:1)
您应该像在第二个示例中所做的那样,在start
对象的scene
属性的Scene
属性上调用方法this.scene.scene.start('GameOver');
:
scene
Scene
对象上的 ScenePlugin
属性引用了router-outlet
,请看docs