于是乎我开始考虑有没有一种计算方式,只要循环判断每个怪物是否被子弹碰撞就好了,就这样,getImageData()函数引起了我的注意。
?...图示-1
使用getImageData()函数计算碰撞的思路是:
1.在Canvas绘制当前帧的时候,先绘制好子弹路径,然后将怪物的位置坐标以及宽高参数传递给getImageData()函数,即context.getImageData...2.由于画布的背景的是“空”的,所以如果没有其他像素(子弹元素)存在的话,获取的像素数据都是[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]……,反之,如果数组中存在[0,...当然,如果将游戏放到本地服务器上调试是不会报错的。可我不想那么麻烦(懒),于是想有没有其他办法能够绕开或者避免该错误?...将原来获取的矩形区域,改成获取矩形的四条边,像素为1即可。原理就是只要子弹触碰到了边,即可视为碰撞。
结果这样的算法又带来了一个坑,那就是,如果某一帧子弹刚好绘制在空心矩形内部,岂不是捕捉不到了?