2017-04-06 107 views
0

所以我正在開發一款遊戲,我正在嘗試做一個關卡選擇器。不過我只希望球員能夠在他們擊敗的關卡上進行比賽。 所以我有一個標有「ELD.js」 .js文件,它包含:如何更改外部.js文件中的變量數據值?

var Levels = 0; 

我真的不關心如何(在編程式的方面)。但是我希望每次贏得關卡都能夠改變「關卡」的數據值。 每個級別都有自己的單獨html文件,所有級別文件與「ELD.js」文件位於同一個文件中。

我已經找了一個這個答案,但他們都沒有匹配我所需要的。

雖然我在這個問題上(糾正我,如果我錯了),但我可以簡單地測試使用這個權利的「級別」數據值?

<script type="text/javascript" src="ELD.js"></script> 
    <script> 
    if(Levels =< X) 
    { 
     } 
    </script> 

X僅代表未定義的數字,我將在稍後選擇。

+0

每個級別是不同的HTML文件?那麼你如何在不同層次之間轉換? –

+0

如果我正確地理解了這個問題,您需要爲每個玩家提供一個'ELD.js'文件。您應該使用數據庫來跟蹤每個用戶的進度。 – jeroen

+0

@ jeroen有道理。然而,遊戲不是一個在線遊戲,所以我不明白爲什麼這是必要的。 –

回答

2

你可以建立JavaScript文件的類和變量定義的類,例如:

class GameLevel { 
    constructor (level) { 
     this.level = level; 
    } 

    get_level() { 
     return this.level; 
    } 

    set_level (level) { 
     this.level = level; 
    } 
} 

然後在整個遊戲中,你有你的對象:

var cur_level = 1; 
var level = new GameLevel (cur_level); 

然後,賽後毆打你只需撥打電話

level.set_level (++cur_level) 

我相信你甚至可以只說level.le vel = cur_level + 1;

編輯

而且因爲你想你的JavaScript數據傳遞到另一個HTML文件 還有一種方式將該以及傳給你。您可以使用此邏輯:

  1. 打開一個新標籤
  2. 新的水平傳遞數據
  3. 關閉當前窗口和重點新打開的窗口

這就像一個奇怪的方式做到這一點,但我相信它可以工作:)做到這一點,你運行下面的代碼:

var newLevel  = window.open (<URL TO HTML FILE>, '_blank'); 

// passing thejavascript data 
newLevel.new_level = level.get_level ; // This is the data to pass or you can use the variable you had declared 

// focus on new window 
newLevel.focus(); 

// close current window 
window.close(); 

編輯

,然後在所有的HTML文件,你可以得到使用新級別的數據的價值window.new_level 當打開的窗口就會有你通過設置的值。

+0

所以我會將「class」編碼放在單獨的.js文件中,然後使用

相關問題