跳到主要内容
← 全部概念
游戏系统 / 21

攻击判定框与受击判定框

哪里能打中,哪里会受击

交互演示

交互演示 · 移动指针或点击画面,观察变化

攻击判定框是攻击造成伤害的区域,只在攻击的有效帧内存在。受击判定框是角色能够受到伤害的区域。只有两者重叠才算命中,因此演示中的防守方通过蹲下,让每两次挥击中的第二次落空。

适用场景

当动画时机很重要时,应分开设置攻击区域和受击区域。每次攻击实例都应记录自己已命中过哪些目标,这项记录独立于防守方的无敌计时器。

实现示例

不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。

if attack.isActive:
  for target in overlaps(attack.hitbox):
    if target not in attack.hitTargets:
      applyHit(target)
      attack.hitTargets.add(target)

常见错误

开始新一次挥击时才重置已命中目标集合,不要每帧重置。精灵的外接矩形往往包含空白区域,通常不适合作为战斗碰撞形状。

内容原作 Nicolas Zullo · 中文整理与交互改编