Phaser game.states没有加载

时间:2016-12-13 06:15:03

标签: javascript phaser-framework

这是我的JavaScript文件之一。我的所有其他文件都有效,除了这个。当我运行堆栈时,它给我一个引用错误,我的over.js文件没有定义。

我已经加载了其他几个页面。我不知道为什么只是这个没有加载。

这是我的over.js文件:

var over = {

  preload: function() {
    game.load.spritesheet('button', 'assets/button.png', 215, 53, 8);
  },

  create: function() {
    this.btnplayAgain = game.add.button(110, 400, 'button', this.playAgain, this, 2, 3, 2);
  },

  playAgain: function() {
    game.state.start("main");
  },

  update: function() {},
};

我的main.js代码的结尾是这样的:

var game = new Phaser.Game(480, 640, Phaser.AUTO);
game.state.add('over', over); //<----------------This one doesn't work

game.state.add('main', MainState);
game.state.add('stateTitle', stateTitle);
game.state.start('stateTitle');

我做错了什么?

2 个答案:

答案 0 :(得分:0)

在使用Phaser状态时,请确保在加载主状态的javascript文件之前加载状态的javascript文件。像这样编辑HTML文件

<script type="text/javascript" src="js/phaser.js"></script> 
<script src="js/stateTitle.js"></script> 
<script src="js/stateOver.js"></script>
<script src="js/main.js"></script> 

这将删除您遇到的错误。导致错误的主要原因是首先加载main.js文件并检查状态over。由于尚未加载包含状态over的文件,因此抛出了未定义状态的异常。

答案 1 :(得分:0)

只需重新安排我的加载脚本,我的问题就解决了,我的main.js就在我的over.js前面,这使得它无法正常工作。