Phaser 3 穿甲弹多次击中

Phaser 3 piercing bullet hit multiple times

对于一款游戏,我尝试制作能穿透敌人的子弹,由于 overlap() 函数,这本身很容易。 我的问题是,子弹多次击中敌人,最后瞬间秒杀。

有没有办法说“hit/collide每个敌人只有一次”?

我的碰撞:

this.scene.physics.add.overlap(
     this.scene.enemyGroup, 
     this.scene.playerProjectiles_PierceEnemies, 
     function (enemy, projectile) {
          enemy.health -= projectile.dmg;
          if (enemy.health == 0) {
              enemy.destroy();
          }
     });

您可以向子弹添加“is_live”属性,并在发生碰撞时将该属性更新为 false,然后在您的 overlap() 函数中仅检查实时子弹。