我已經有了一個基本的太空侵略者類型的遊戲,並且我無法識別何時玩家的擊球擊中了外星人。 (我只檢查Alien2 atm,從左邊一秒)。既然它們都在移動,我已經決定檢查碰撞的唯一方法是使用基於範圍的if語句(帶有2個頂部座標和一個左側座標),或者直接比較沿Y軸與Jquery的位置。檢測兩個移動物體之間的碰撞
我目前使用基於範圍的解決方案,但到目前爲止它沒有工作(不知道爲什麼)。
我迄今爲止代碼:
if (key == "87"/*&& document.getElementById('BarrelOne').id=='BarrelOne'*/){
var Invader2 = document.getElementById('Alien2');
var Shot1 = document.getElementById('ShortShot');
Shot1.style.webkitAnimationPlayState="running";
setTimeout(function(){
Shot1.style.webkitAnimationPlayState="paused";
}, 1200);
if(document.elementFromPoint(625.5, 265.5) == Shot1){
Invader2.style.visibility="hidden";
}
};
的jsfiddle:
您沒有使用的jsfiddle正確.... – bobthyasian
'的document.getElementById( 'Alien2')。style.top <=「265.5px」'不是一個很好的比較。使用jQuery並獲取該元素的'offset()。top'作爲數字。 – Blender
檢測_「衝突」_ IMO的最簡單方法是:'Math.abs()',節點的偏移量(jQuery或no)以及 - 也許是最被低估的DOM API方法文檔的組合。 getElementFromPoint':[檢查MDN在這裏](https://developer.mozilla.org/en-US/docs/DOM/document.elementFromPoint),看看它是如何工作的 –