私はHTML5のキャンバスAPIを使用してJavascriptでゲームを作成しており、ロードブロッキングを達成しました。JavaScriptのゲームの問題
ゲームの効果の1つは、y軸に沿って上向きに移動するミサイルであり、これはx軸に沿って移動する風の吹き出し(タービンによって放出される)の影響を受けます。私はこれらのタービンの1つを作ることに問題はなかったが、それらの数が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機能により更新されます。ここで見ることができるよう は、新しいレベルの時に、私は、その配列の中に押し込まれているオブジェクト、これらのタービンをインスタンス化します。このすべての機能は、タービンが互いに重なり合っていないことを確認し、必要に応じて(軸を循環してその中の各オブジェクトを比較することによって)y軸の上下に動かすようにします。私は機能を作ったが、すべてのループの間に完全に失われている。これは、約限り私が持っているようであり、私は私が間違ってトラックによ感があります:あなたは、ソースコードと私はwww.techgoldmineで壊すこの事なし得た遠いを見つけることができます
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(){
}
}
}
}
}
を。 com
提案:あなた '(turbine.height <= 100)場合、{' 'しばらく(turbine.height <= 100)でなければなりません{'場合には、新たな数が100 –
の下にまだあるそれを置きますjsfiddle.net –
@ジェフリーか、最初から '100 + Math.random()* 100'を使用してください... – Andrew