2013-03-07 67 views
0

我正在創建一個帆布遊戲(概念是側滾動無盡的遊戲)。我正在嘗試進行加電,所以我有一個主要的遊戲JS文件以及powerup.js等等。此刻,我正在專注於我的無敵力量。我創建了一些簡單的代碼在理論上應該工作:Javascript函數只是不適用於帆布遊戲

在powerup.js

function powerUpInvincibility() { 
    invincible = true; 
    //window.setInterval(powerUpInvincibilityReset, this.powerUpTime[0]); 
} 

function powerUpInvincibilityReset() { 
    jet1.invincible = false; 
} 

我設置在主JS無敵可變的,但他們都聯繫在一起,我有代碼所有的JS文件都可以工作,但即使我在Chrome的控制檯中調用powerUpInvincibility函數,該變量也不會改變。

我試着讓它成爲jet和powerup的變量,但是這也不起作用,而且我已經檢查過幾次拼寫錯誤。

我迷路了,有什麼建議嗎?

+3

您可能需要給我們多一點的代碼才能正確回答這個問題。我的猜測是你遇到了某種範圍問題,但沒有整個上電文件的上下文我不確定。你的powerup.js是否包含在IIFE中? (像這樣的'(function(){...}());')你聲明無敵的上下文包裝在IIFE中嗎?無敵應該是jet1上的財產,還是全球範圍內的財產?更多的上下文將使得回答這個問題成爲可能。 – 2013-03-07 15:03:01

+2

只是爲了迴應第一條評論 - 從代碼中很難判斷您是應該使用「無敵」還是「jet1.invincible」,但很可能您需要在兩個函數中保持一致。 – uptownnickbrown 2013-03-07 15:09:14

回答

0

對不起,大家好!實際的問題是我的一個powerUp函數在它不是powerUp.prototype函數時試圖訪問這個變量。感謝您的答案!