我正在汗学院(Khan Academy)上为一个学校项目编写一个太空侵略者游戏,但我不知道如何使子弹与外星人发生碰撞,然后摆脱与子弹相撞的外星人。这是非常基本的JS,尽管我已经尝试过很多,但我真的不明白如何将关于该主题的其他答案放入我的代码中。如果有人可以帮助我,我将非常感激。

这是游戏的链接:http://www.khanacademy.org/cs/space-invaders/1087897437

我在这里有另一个有相同问题的游戏:http://www.khanacademy.org/cs/brick/1176464164

最佳答案

在这两种情况下,游戏都需要在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的内部。

10-07 21:35