如何在Phaser中重启当前场景?Scene.restart()方法不存在的解决办法
Phaser场景重启实现方案
Scene.restart()确实不是Phaser的原生方法,你看到的大概率是社区自定义实现或者旧版本的误传。- 官方推荐的重启当前场景的方式,是在场景内部直接调用
this.scene.restart()——这里的this指向当前场景实例,scene是内置的场景管理器,restart()是管理器的原生方法。 - 举个实际使用的代码例子:
// 比如在场景内的按键回调里 this.input.keyboard.on('keydown-R', () => { this.scene.restart(); }); - 如果需要给重启后的场景传递初始化参数,直接在方法里加配置对象就行:
// 重启时传参 this.scene.restart({ currentLevel: 3, playerScore: 500 }); // 在场景的init方法里接收参数 init(params) { this.level = params.currentLevel; this.score = params.playerScore; } - 要是从其他场景触发重启(比如主菜单重启游戏场景),先通过场景key获取实例再调用:
// 假设游戏场景的key是'PlayScene' this.scene.get('PlayScene').scene.restart();
内容的提问来源于stack exchange,提问作者Dumbass
相关产品推荐
相关产品推荐

