You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Phaser 3(TypeScript)中Scene无start方法,场景切换失败求助

Phaser 3 场景切换正确方法

你遇到的问题是调用方式错误——Phaser 3 中场景管理的方法(如start、switch)并不直接属于Phaser.Scene类本身,而是通过场景实例的scene属性(指向SceneManager)来调用。

正确调用方式

在你的场景类内部,使用以下方法切换场景:

  • 启动新场景(停止当前场景):
    this.scene.start('目标场景的key');
    
  • 切换场景(保留当前场景,切换到另一个场景):
    this.scene.switch('目标场景的key');
    
  • 额外常用方法:
    • 启动场景但不停止当前场景:this.scene.launch('目标场景的key')
    • 停止指定场景:this.scene.stop('目标场景的key')

关键前提:给场景设置正确的Key

确保你定义场景类时,在super()中指定了场景key,这样SceneManager才能识别:

class MazeScene extends Phaser.Scene {
  constructor() {
    super({ key: 'maze' }); // 设置场景key为'maze'
  }
  // 场景逻辑...
}

class MainScene extends Phaser.Scene {
  constructor() {
    super({ key: 'main' }); // 设置场景key为'main'
  }
  // 场景逻辑...
}

示例:在MazeScene中切换到MainScene

比如在MazeScene的某个事件(比如点击触发)中调用:

// 点击屏幕切换到MainScene
this.input.on('pointerdown', () => {
  this.scene.start('main');
});

内容的提问来源于stack exchange,提问作者Joseph Cannella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:10:33