我確定了一個碰撞檢測系統,但現在我試圖做一個系統,使得當調用函數時,參數中的項不能互相觸及。我對JavaScript很陌生,它的第一個語言真的很想學習。矩形繪製的方式是讓x和y位於矩形的中間,而不是位於矩形的左上角。我製作的系統技術上的作品,但只有當它是一個完美的廣場,由於某種原因矩形是越野車,我不知道。即使它是一個完美的正方形,它似乎笨重,真的很不好,這是我習慣的,這是code.org的item1.collide(item2);這完美,完全如何我想要的,但我不能找到背後的代碼。順便說一句,我正在使用p5.js。我該如何改進JavaScript中的碰撞攔截系統?
這裏是如何我畫我的矩形:
rect(this.x-this.width/2,this.y-this.height/2,this.width,this.height);
這裏是blockCollision函數我目前有:
function blockCollision(a,b){
if(a.x+a.width/2 > b.x-b.width/2 &&
a.x-a.width/2 < b.x+b.width/2 &&
a.y-a.height/2 < b.y+b.height/2 &&
a.y+a.height/2 > b.y-b.height/2) {
if(a.x<b.x-b.width/2) a.x=b.x-b.width/2-a.width/2;
if(a.x>b.x+b.width/2) a.x=b.x+b.width/2+a.width/2;
if(a.y<b.x-b.height/2) a.y=b.x-b.height/2-a.height/2;
if(a.y>b.x+b.height/2) a.y=b.x+b.height/2+a.height/2;
}
}
而且,這裏是整個代碼下載,如果有幫助: https://drive.google.com/open?id=0B-F5CHOIQvvGVlR3Njd1M1NLS1E