Я пытаюсь построить сетку и сохранить каждую ячейку сетки как объект в массиве с именем grid.Я определил сетку как глобальную переменную, поэтому я могу заполнить ее с помощью createGrid (), а затем прочитать ее с помощью drawGrid ().
Я хочу реализовать сетку как часть учебника по анимации холста.Мой код:
var grid = [];
function drawGrid() {
for (var i = 0; i < cols; i++) {
grid[i] = [];
for (var j = 0; j < rows; j++) {
if (grid[i][j].food === 0) {
console.log("Has a good value")
}
}
}
}
function Cell(i, ii) {
this.i = i;
this.ii = ii;
this.food = false;
}
function createGrid() {
for (var i = 0; i < cols; i++) {
grid[i] = [];
for (var j = 0; j < rows; j++) {
grid[i][j] = new Cell(i, j);
}
}
}
function mainLoop() {
clearCanvas();
drawGrid();
requestAnimationFrame(mainLoop)
}
createGrid();
mainLoop();
Я создаю сетку перед вызовом цикла, поэтому после вызова функции drawGrid () сетка уже заполнена.Я не помещаю createGrid () внутри цикла, потому что нет необходимости каждый раз создавать сетку, а также потому, что каждый раз при запуске цикла требуется много ресурсов
Браузер выдает здесь ошибку:
if (grid[i][j].food === false) {
console.log("Has a good value")
}