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

khic 发布于 2019-03-09 最后更新 2019-03-09 14:41 2 浏览

在我的Main类中,我有一个Enemy对象数组,在我的Player类中有一个Bullet对象数组。在这之间的某处,我需要一种方法来测试任何玩家子弹和敌人之间的碰撞,并且当检测到碰撞时,调用Bullet的destroyBullet()方法和Enemy的destroyEnemy()方法。 如果两个阵列都在同一个班级中,我可能会弄清楚这将如何完成,但否则我会难住。

已邀请:

oqui

赞同来自:

我认为没有理由不在你的主类中保留你的子弹阵列,但如果你想要这样做,你需要公共访问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();
    }
  }
}
请记住,摧毁子弹或敌人不仅仅需要移除精灵和清理。您还需要拼接存储每个对象的数组。