2016-12-13 29 views
0

這是我的一個JavaScript文件。除了這一個,我所有的其他文件都能正常工作。當我運行堆棧時,它給了我一個參考錯誤,我的over.js文件沒有被定義。Phaser game.states未加載

我已經加載了其他幾個頁面。我不知道爲什麼只是這個沒有加載。

這是我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'); 

我在做什麼錯?

+0

當您想要調試錯誤時,請將基準錯誤信息複製到您的問題中;否則很難幫助你。謝謝! – MayorMonty

+0

小內容和樣式編輯可提高質量。 – jacefarm

+0

您可以向我們展示加載各種.js文件的HTML嗎?我的第一個猜測是,你最終沒有加載'over.js'文件出於某種原因。 –

回答

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的文件尚未加載,因此它會引發狀態未定義的異常。

+0

我正要寫,我想通了,我做到了,現在我的遊戲工作! –

0

簡單地通過重新安排我的加載腳本我的問題得到了解決我的main.js是在我的over.js的前面,使它無法正常工作。