2016-06-15 2 views
0

Я создаю простую клона прорыва с использованием холста HTML5 и столкнулся с функцией loadHitGrid(), но мне трудно понять, что он делает.Создание массива Javascript breakout game

Похоже, его создания массивов в пределах массива 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

вы могли бы, если NUM_ROWS и NUM_COLS всегда 5. Можно также использовать 'новый массив (NUM_COLS) .Нанести (1)' для внутреннего вместо цикла. –

+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 d был пустой массив, то результат будет выглядеть как:

[[1,1,1,1,1], 
[1,1,1,1,1], 
[1,1,1,1,1], 
[1,1,1,1,1]] 
+0

Спасибо всем, что сейчас имеет смысл – stckpete

+0

Несомненно! :) Обязательно подтвердите ответы, которые вам нравятся, или выберите ответы, если они решают вашу проблему. Важность репутации пользователей в переполнении стека! –

Смежные вопросы