“ACTION GAME MAKER”中的“攻击”与“受击”
攻击命中
您是否还记得玩家对象中的 HitArea2D/HitCollision 和 AttackArea2D/AttackCollision?
在“ACTION GAME MAKER”中,当 AttackArea2D 的 AttackCollision 与 HitArea2D 的 HitCollision 发生碰撞时,系统会自动执行伤害处理。
此外,借助 Godot 的 CollisionLayer(碰撞层)和 CollisionMask(碰撞掩码)功能,可以调整“是否发生碰撞”的行为。
CollisionLayer 与 CollisionMask
在前一部分的“墙壁判定”中已有所说明,在 Godot 中,碰撞行为可以通过 CollisionLayer 和 CollisionMask 功能进行控制。正如名称所示,这些功能为碰撞判定引入了“层级”概念。
您可以在如下设置面板中配置层级和掩码:
理解起来最直观的方式是:层级表示对象位于哪一层,掩码表示对象希望与哪些层级发生碰撞。
例如,如果 AttackCollision 的掩码设置为 1 和 2,而 HitCollision 的层级仅设置为 3,则前者无法命中后者。利用这一机制,可以避免自身攻击判定误伤自身等情况。
伤害处理
当攻击命中时,系统会自动执行伤害处理。具体而言,会从防御方对象的 HP 中扣除攻击方对象在 BaseSetting 中设定的攻击力数值。
随后,通过在 BaseSettings 中设置“无敌”状态,可使对象在一定时间内免受伤害。



