两个不同类中的两个数组中的对象之间的hitTestObject

时间:2013-04-11 16:44:39

标签: actionscript-3

在我的Main类中,我有一个Enemy对象数组,在我的Player类中,我有一个Bullet对象数组。在其中的某个地方,我需要一种方法来测试任何玩家子弹和敌人之间的碰撞,并且当检测到碰撞时,请调用子弹的destroyBullet()方法和敌人的destroyEnemy()方法。

如果两个数组都在同一个类中,我可能会弄清楚如何做到这一点,否则我会感到难过。

1 个答案:

答案 0 :(得分:1)

我认为没有理由不在你的主类中保留你的项目符号数组,但如果你想要这样做,你需要公开访问Player.bullets

这应该适用于您的主要课程。你需要将它放在游戏循环中运行的checkCollisions函数中。

//loop through bullets first, because if no bullets are fired, no point in checking
for each(var bullet:Bullet in player.bullets) {
  for each(var enemy:Enemy in enemies) {
    if(bullet.hitTestObect(enemy)) {
      bullet.destroyBullet();
      enemy.destroyEnemy();
    }
  }
}

请记住,摧毁子弹或敌人不仅仅需要移除精灵和清理。您还需要拼接存储每个对象的数组。