1

我正在可汗学院为一个学校项目编写太空入侵者游戏,但我不知道如何在子弹和外星人之间进行碰撞,然后摆脱子弹与之相撞的外星人。这是非常基本的 JS,尽管我已经尝试过,但我真的不明白如何将关于这个主题的其他答案放入我的代码中。如果有人能在这方面帮助我,我将不胜感激。

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

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

4

1 回答 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 内部。

于 2012-11-28T16:11:38.223 回答