Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 改变路线在第三阶段打破游戏?_Javascript_Reactjs_React Router Dom_Phaser Framework - Fatal编程技术网

Javascript 改变路线在第三阶段打破游戏?

Javascript 改变路线在第三阶段打破游戏?,javascript,reactjs,react-router-dom,phaser-framework,Javascript,Reactjs,React Router Dom,Phaser Framework,当我刷新/游戏路线时,它通常会创建游戏。但如果我切换到另一条路线,然后再次回到同一条/游戏路线。画布显示空白屏幕,数组中的最后一个场景运行,而不是第一个场景 static createGame() { console.log('game creation phaser called with config'); game = new Phaser.Game(CONFIG); return game; } static destroyGame(game) {

当我刷新/游戏路线时,它通常会创建游戏。但如果我切换到另一条路线,然后再次回到同一条/游戏路线。画布显示空白屏幕,数组中的最后一个场景运行,而不是第一个场景

  static createGame() {
    console.log('game creation phaser called with config');
    game = new Phaser.Game(CONFIG);
    return game;
  }

  static destroyGame(game) {
    console.log("destroying game")
    game.destroy();
    game = null;
  }
}
我试图在组件卸载时破坏游戏,但什么也没发生

这是我的相位器配置


const CONFIG = {
  type: Phaser.WEBGL,
  width: 720 * window.devicePixelRatio,
  height: 500 * window.devicePixelRatio,
  scene: [ModeSelectScene, PreLoadScene, PlayGame, GameOverScene],
  backgroundColor: 0x0c88c7,
  parent: 'game',
  scale: {
    mode: Phaser.Scale.FIT,
    autoCenter: Phaser.Scale.CENTER_BOTH,
    parent: 'game',
    width: 1334,
    height: 750,
  },
  physics: {
    default: 'arcade',
  },
};
它首先运行游戏场景,idk为什么!我已经试过了,但我总是在加载最后一个场景时看到相同的空白屏幕(我在控制台中进行了检查)


有什么建议吗?

我不认为销毁游戏是一种好方法,你真的需要这样做吗?@nazimboudeffa感谢你的回复,但我确实在componentWillUnmount()时销毁了游戏,然后在路径发生变化时重新安装游戏,幸运的是成功了:)这是我的组件安装问题,这就是我出错的原因。现在它很有趣,很高兴看到它运行我不认为销毁游戏是一个好方法,你真的需要这样做吗?@nazimboudeffa感谢你的回复,但我确实在componentWillUnmount()时销毁了游戏,然后在路径改变时重新安装游戏,幸运的是成功了:)这是我的组件安装问题,这就是我出错的原因。现在它很有趣,很高兴看到它工作