2016-11-14 80 views
0

我正在創建一個掃雷遊戲,我正在根據遊戲板中的行數設置用戶所擁有的標誌數量。我在不同的模塊中有這兩樣東西,我不確定爲什麼我不能讓模塊正確通信。很明顯,我做錯了什麼,但我無法弄清楚什麼。在不同模塊中更改變量

var gameboard = (function() { 

var initialize = function(rows, cols) { 
    var flags = 0; 
    for(var x = 0; x < rows; x++) { 
      flags++; 
      for(var y = 0; y < cols; y++) { 
       var unit = $("<div class='unit'></div>"); 
       unit.width(($('#gameboard').width()/cols) - 2).height(($('#gameboard').height()/rows) - 2).appendTo('#gameboard'); 
      } 
     } 

    addId(rows, cols); 
    gatherMines(rows); 
    setFlags(flags); 
}; 

var setFlags = function(number) { 
    gamePlay.flagCount = number; 
} 

return { 
    initialize: initialize, 
    flags: setFlags 
}; 

}()); 

var gamePlay = (function() { 

var flagCount; 

return { 
    go: go, 
    flagCount: flagCount 
}; 

}()); 

回答

0

考慮gamePlay對象:

var Gameplay = function(flagCount) { 
    this.flagCount = flagCount; 
}; 

現在,您可以只需在您的遊戲鍵盤對象創建GamePlay對象的實例。例如您initialize方法內:

var gp = {}; 

var initialize = function(){ 
    gp = new Gameplay(0); 
} 

您現在可以使用gp任何地方,只要initialize()已被執行。

+0

感謝您的回覆。無論如何,直接從我的遊戲板模塊設置標誌計數?我的遊戲播放模塊中還有其他功能,爲簡潔起見我省略了,無論出於何種原因,此解決方案讓我感到困惑 –

+0

我在我的答案下添加了我的評論以提高可讀性。 – Koen