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
我使用打字稿在 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