Phaser 3 穿甲弹多次命中

问题描述

对于一款游戏,我尝试制作能够刺穿敌人的子弹,由于使用了overlap() 函数,这本身就很容易了。 我的问题是子弹多次击中敌人并最终立即杀死他们。

有没有办法说“每个敌人只命中/碰撞一次”?

我的碰撞:

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,然后在您的重叠()函数中仅检查实时子弹。