我正在使用HTML5的canvas API製作遊戲,並且遇到了障礙。Javascript遊戲麻煩
其中一種遊戲效果是沿y軸向上傳播的導彈,受到風向(由渦輪發出)的陣風影響,導致其沿着x軸移動。製造其中一臺渦輪機我沒有問題,但是當它們的數量增加到3時,我遇到了麻煩。 在一個新的水平,我舉例說明這些渦輪機作爲對象,然後將其推到一個數組,因爲在這裏可以看到:
function gameStateNewLevel(){
for (var i = 0; i < 2; i++){
turbine = {};
turbine.width = 10;
turbine.height = Math.floor(Math.random()*200); //turbine height
turbine.y = Math.floor(Math.random()*600) //turbine y-axis
if (Math.random()*10 > 5){ //indicates turbine side of canvas
turbine.side = leftSide;
}else{
turbine.side = rightSide;
}
if(turbine.height <= 100){ //Increases turb. size if it's too small
turbine.height += Math.floor(Math.random()*100);
}
turbines.push(turbine);
}
context.fillStyle = "#FFFFFF"
switchGameState(GAME_STATE_PLAYER_START);
}
現在,他們正在渲染之前,他們還通過updateTurbine功能更新。所有這些功能應該做的是確保渦輪機不會相互重疊,並根據需要將它們向上或向下移動(通過循環訪問陣列並比較其中的每個對象)。我已經完成了這個功能,但是我在所有的循環之間完全失敗了。這是關於據我已經得到了,我有一種感覺,我在錯誤的軌道上:
function updateTurbines(){
tempTurbine = {}
turbinePositionTop = tempTurbine.y;
turbinePositionBottom = tempTurbine.y + tempTurbine.height;
for (var i = turbineArrayLength; i < 2; i++){
tempTurbine = turbines[i];
for (var i = turbineArrayLength; i < 2; i++){
if (tempTurbine !== tempTurbines[i]){
while(){
}
}
}
}
}
你可以找到源代碼,我沒有這個東西打破在www.techgoldmine了最遠。 com
建議:你的'如果(turbine.height <= 100){'應該是一個'而(turbine.height <= 100){'在情況下,新數仍在100 – 2012-02-07 19:58:13
把它在jsfiddle.net – 2012-02-07 19:59:28
@Jeffrey或從一開始就使用'100 + Math.random()* 100' ... – Andrew 2012-02-07 20:05:13