问题描述
对于一款游戏,我尝试制作能够刺穿敌人的子弹,由于使用了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,然后在您的重叠()函数中仅检查实时子弹。