[英]JavaScript Collision Detection doesn't seem to be working?
所以我正試圖在我的外星入侵者演繹中設置碰撞檢測。 但它幾乎不起作用。 而且我的意思是,我從來沒有得到有效的打擊或true
回報。 我甚至嘗試了一些不同的方法,但無論出於何種原因,我都無法得到正確的答案。
碰撞檢測是針對玩家向異形船發射的子彈,只是為了澄清,如果重要的話:D。
這是碰撞檢測代碼:(我試圖讓它容易出錯,希望有一個命中,雖然沒有方法似乎工作)
var isCollidingWithAlien = function(shot){
var alienImg = document.getElementById('alien');
for(var i = 0; i < aliens.length; i++){
return shot.x < aliens[i].x + alienImg.width &&
shot.x + shot.img.width > aliens[i].x &&
shot.y < aliens[i].y + alienImg.height &&
shot.y + shot.img.height > aliens[i].y;
}
};
這不是代碼沒有被調用,也不是一些奇怪的技術錯誤。 它永遠不會回歸真實。
此外,如果你想查看所有代碼,這里是一個JSFiddle
@Update:一直在玩代碼,它似乎正確地注冊了第一個Alien創建的,如果你看看JSFiddle就在左上角。 不知道為什么
問題是,你只返回列表中第一個外星人的碰撞。 如果你對某些外星人都是真的,你應該返回true,或者在所有外星人沒有碰撞后返回false:
var isCollidingWithAlien = function(shot){
var alienImg = document.getElementById('alien');
for(var i = 0; i < aliens.length; i++){
var result = shot.x < aliens[i].x + alienImg.width &&
shot.x + shot.img.width > aliens[i].x &&
shot.y < aliens[i].y + alienImg.height &&
shot.y + shot.img.height > aliens[i].y;
if(result)
return true;
}
return false;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.