Как очень неопытный программист, я пытаюсь написать игру, которая определяет, когда игрок сталкивается с определенными цветами на холсте. У меня есть черный квадрат с координатами «player.x» и «player.y» и размерами 50x50, который перемещается при нажатии клавиш со стрелками. У меня также есть неподвижный красный квадрат (255,0,0) в другом месте на холсте.
Функция ниже должна захватывать немного больший квадрат вокруг квадрата «игрока» и выяснять, есть ли в нем красный цвет. Если есть, он отправит предупреждение. Проблема в том, что это, похоже, не работает.
function collideTest(){
var canvas = document.getElementById("canvas");
var c = canvas.getContext("2d");
var whatColor = c.getImageData(player.x - 5, player.y - 5,60,60);
for (var i = 0; i < 3600; i++) {
if (whatColor.data[i] == 255) {
alert("red");
}
}
}
Я частично понимаю, что это не самый эффективный способ обнаружения красных пикселей, но я хотел упростить код, прежде чем публиковать его здесь. Что-то явно не так с функцией?
Проблема может заключаться в способе вызова функции. Она вызывается в конце другой функции, которая обнаруживает пользовательский ввод и изменяет координаты квадрата «игрока». ЭТА функция вызывается прямо перед тем, как все будет нарисовано на холсте.
Заранее благодарю за любую помощь!