碰撞检测
碰撞检测能够实时检测事件是否与另一个玩家的碰撞箱发生了物理接触。这是战斗系统的核心:投射物击中敌人,敌人击中玩家,挥剑,陷阱……这些都通过碰撞检测实现。
使用场景:一个检测是否触碰到备注标签<enemy>的火球事件。一个通过检测是否触碰到玩家来造成伤害的敌人。一个检测玩家是否踏入的陷阱。
如何创建碰撞检测?
只需在条件分歧中调用:
checkCollide(target, tags, cooldown)
target - 被检测的对象。
tags - 碰撞检测的目标。
cooldown - (可选)碰撞冷却时间,以帧为单位。
要理解target、tags、cooldown的概念,请看the Manual page。
示例
击中敌人的火球
在火球预置事件中,加入一个条件分歧。
checkCollide(this, <enemy>)
当火球事件本身触碰到带有<enemy>备注标签的事件时,这个条件分歧会返回true,但只有一次。
checkCollide(this, <enemy>, 1)
只要火球一直触碰着<enemy>,它就会每隔一帧返回true。
例如:一个火墙在地上持续燃烧。如果敌人站在里面,就会每隔一帧持续受到伤害。
那么,如果希望每个事件都有各自不同的冷却时间,并且只使用一个条件分歧checkCollide?只需在事件加入备注标签<cooldown: 帧数>。然后,在checkCollide中,不要写 1,而是写 ‘cooldown’。