我想在JavaScript中做一个蛇的游戏,但我正在努力与碰撞检测。到目前为止,我已经尝试了各种方法,但是在绝望中,已经解决了存储每个帧的所有位置,然后在动画下一个之前检查是否有任何重复。不幸的是,这种方法尚未证明是成功的。Javascript碰撞检测
也许这是由于对JS如何对待数组的误解。有一段时间我正在使用if(x in y)
,但从我可以告诉,如果完全相同的对象是在一个数组中返回。
下面是现场演示:http://jsfiddle.net/AScYw/2/
下面是代码更容易阅读:http://pastebin.com/ygj73me6
有问题的代码是在蛇的对象,作为函数collide
。
this.collide = function(){
for(var z=0; z<this.positions.length-1; z++){
for(var q=z+1; q<this.positions.length-1; q++){
return this.positions[z][0] == this.positions[q][0] && this.positions[z][1] == this.positions[q][1];
}
}
这个游戏肯定很容易与碰撞检测禁用! – bgw
@PiPeep是啊不是很棒?! – danem