2012-11-28 23 views
1

我正在爲可持續學院項目編寫一個空間侵略者遊戲,我無法弄清楚如何在子彈和外星人之間發生碰撞,然後擺脫子彈相撞的外星人。這是非常基本的JS,儘管我已經嘗試過了,但我不太瞭解如何將此主題的其他答案放入我的代碼中。如果有人能幫助我,我會很感激。在javascript中的for循環中的碰撞/重疊

下面是遊戲的鏈接:http://www.khanacademy.org/cs/space-invaders/1087897437

我有另一場比賽同樣的問題在這裏:http://www.khanacademy.org/cs/brick/1176464164

+2

+1的內部空間侵略者 –

回答

0

在這兩種情況下,遊戲需要在while循環運行。基本上,每次迭代都會使遊戲向前移動一個「框架」。從一幀到下一幀計算的一件事就是子彈是否觸及了外星人。

子彈和外星人都佔據了物理空間。所以你可以有效地遍歷所有的子彈,並有一個函數來檢查子彈是否擊中了外星人。

function has_hit_alien(bullet) { 
    for(var i = aliens.size; i > 0; i--){ 
    if(same_space(bullet, aliens[i]) { 
     return aliens[i] 
    } 
    } 
} 

現在你需要實現same_space功能檢查,如果任何參數1外像素是論點2