2016-06-15 11 views
0

HTML5 Canvasを使用して簡単なブレークアウトクローンを作成していますが、loadHitGrid()関数が出てきましたが、その機能の理解に問題があります。配列を作成するJavaScriptブレイクアウトゲーム

そのがhitgrid配列 内の配列を作成し、その後でこれを満たすように見えます1の

誰かが助けたり、これを引き出すことはできますか?

function loadHitGrid() { 
    for (var i = 0; i < NUM_ROWS; i++) { 
    hitGrid[i] = new Array; 

    for (var j = 0; j < NUM_COLS; j++) { 
     hitGrid[i][j] = 1; 
    } 
    } 

} 


//Can i replace hitGrid with the following? 


hitGrid = [ 
    1, 1, 1, 1, 1, // is this the same as the above???? 
    1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1 
] 





function drawblocks() { 
    for (var i = 0; i < NUM_ROWS; i++) { // loops trough number of rows 
     for (var j = 0; j < NUM_COLS; j++) { // loops thgrough number of cols 
     if (hitGrid[i][j] == 1) { // for each row/col check for 1 
      ctx.beginPath(); // Satrts a new path used when drawing! 
      ctx.fillStyle = colours[i]; 
      ctx.fillRect(j * (blockW + SPACING) + SPACING, 
         i * (blockH + SPACING) + SPACING, blockW, blockH); 
     } 
     } 
    } 
+1

:dは空の配列だった、出力はより多くのようになります。ループの代わりに部分。 –

+0

ちょっとした注意:あなたのコードに 'console.log(JSON.stringify(hitGrid、null、2))'という行を追加することで、あなた自身でこの質問に答えることができました。 'JSON.stringify'はあなたのために結果をきれいに表示します。 –

答えて

0

これは次のようになります。もちろん

hitGrid = [[1, 1, 1, 1, 1], // is this the same as the above???? 
      [1, 1, 1, 1, 1], 
      [1, 1, 1, 1, 1], 
      [1, 1, 1, 1, 1], 
      [1, 1, 1, 1, 1]]; 

NUM_ROWS、およびNUM_COLUMNSは5 :)

0

チェックアウト以下のコードで私のコメントであることを意味している:

 function loadHitGrid() {  
      for(var i = 0 ; i < NUM_ROWS ; i ++) { 
       hitGrid[i] = new Array; //Creating an empty array NUM_ROWS amount of times 

       for(var j = 0; j < NUM_COLS; j ++) { 
        hitGrid[i][j] = 1 ; //Populating each newly created empty array with NUM_COLS amount of ones. 
       } 
      } 
     } 

NUM_ROWSとNUM_COLSの両方が5に等しく、hitGri ; `インナーため

あなたは、NUM_ROWSとNUM_COLSは常に5である場合にも、`新しい配列(NUM_COLS).fill(1)を使用することができます可能性があり
[[1,1,1,1,1], 
[1,1,1,1,1], 
[1,1,1,1,1], 
[1,1,1,1,1]] 
+0

ありがとうございました、それは今意味があります – stckpete

+0

確かに! :)あなたが好きな答えをアップヴォートしたり、あなたの問題を解決したら答えを選んでください。スタックオーバーフローのユーザーの評判は重要です! –

関連する問題