作为一个非常缺乏经验的程序员,我正在尝试编写一个游戏来检测玩家何时与画布上的某些颜色发生碰撞。我有一个黑色方块,坐标为“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");
}
}
}
我半意识到这不是检测红色像素的最有效方法,但我想在将代码发布到此处之前简化代码。该功能是否有明显问题?
问题可能在于调用函数的方式。它在另一个函数的末尾被调用,该函数检测用户输入并更改“玩家”方块的坐标。在画布上绘制所有内容之前调用该函数。
提前感谢您的帮助!