我想在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