本文作者:IMWeb 魔, 原文出处:IMWeb社区 未经同意,禁止转载
前段时间在制作射击怪物小游戏时(如图-1所示),在检测碰撞的算法上纠结了好久。...2.由于画布的背景的是“空”的,所以如果没有其他像素(子弹元素)存在的话,获取的像素数据都是[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]……,反之,如果数组中存在[0,...可我不想那么麻烦(懒),于是想有没有其他办法能够绕开或者避免该错误?
几经查询,发现真正出错的原因是因为调用了drawImage()函数之后,再调用getImageData()就会出错。...说来也巧,在一本介绍Canvas使用的书籍中,提到了“画布状态”这个词。比如fillStyle,font等这些属性,设置过一次之后,往后相关的样式属性都会保持设置时的状态。...脚本的运行结果正如我预料的那样,在调用drawImage()函数之后,重置画布,再调用getImageData()是不会出错的。于是通过使用getImageData()函数的碰撞检测思路就成功了。