← 全部概念
游戏系统 / 21
攻击判定框与受击判定框
哪里能打中,哪里会受击
交互演示
交互演示 · 移动指针或点击画面,观察变化
攻击判定框是攻击造成伤害的区域,只在攻击的有效帧内存在。受击判定框是角色能够受到伤害的区域。只有两者重叠才算命中,因此演示中的防守方通过蹲下,让每两次挥击中的第二次落空。
适用场景
当动画时机很重要时,应分开设置攻击区域和受击区域。每次攻击实例都应记录自己已命中过哪些目标,这项记录独立于防守方的无敌计时器。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
if attack.isActive:
for target in overlaps(attack.hitbox):
if target not in attack.hitTargets:
applyHit(target)
attack.hitTargets.add(target)常见错误
开始新一次挥击时才重置已命中目标集合,不要每帧重置。精灵的外接矩形往往包含空白区域,通常不适合作为战斗碰撞形状。
内容原作 Nicolas Zullo · 中文整理与交互改编