我正在嘗試在javascript和html5畫布中執行一些簡單的碰撞。到目前爲止,我有這樣的:Javascript停止在畫布中重複碰撞檢測
checkCollision = (function(){
var l, i, ni,dis = 0;
var ob1,ob2 = {};
return function(){
//collisions is the array holding all the objects
l = collisions.length;
i = 0;
ni = 1;
while(i<l){
//grab the first object
ob1 = collisions[i];
while(ni<l){
//get the object to check against
ob2 = collisions[ni];
//find the distance between the two
dis = Math.sqrt(Math.pow((ob1.pos[0]-ob2.pos[0]),2)+Math.pow((ob1.pos[1]-ob2.pos[1]),2));
//rad is the radius
if(ob1.rad+ob2.rad >= dis){
console.log("collision")
}
//move forward second increment
ni++;
}
i++;
//keep one place ahead
ni=i+1;
}
};
})();
我這樣做是沒有任何形式的幫助,但現在我想我的大腦實在是太多了玉米粥推測這個最後一部分了。碰撞發生在每一幀,我不想要。當碰撞第一次發生時,我只想讓它發射一次。我試着給每個對象一個碰撞變量,如果已經發生了碰撞,但它不能很好地工作。有些它會發生一次,有些會不斷髮射。 有沒有人有任何指針?
順便說一句,這只是簡單的圓形碰撞 – Isaiah