范围检测

范围检测让角色检测目标是否在一个特定的范围里。和碰撞检测不同(需要物理上的碰撞箱接触),范围检测关乎感知:敌人发现玩家,炮塔锁定目标,NPC在你接近时作出反应。

**使用场景:**当玩家进入敌人五格范围内就开始追击。守卫只能在一个锥形视野内看到玩家。检测到附近炸弹的传感器。

要使用范围检测,只需在条件分歧调用:

checkRange(source, range, target, eyes, blockRegion, exception)

source:是谁在检测。

range:检测半径(圆形,单位为图块)

eyes:(可选)视野范围,单位为角度。

blockRegion:(可选)阻断视线的区域ID

exception:(可选)带有该标签的事件会被排除在检测之外

示例

在敌人的并行处理页面,调用条件分歧

checkRange(this, 5, player)

若玩家走进敌人的5格范围之内,则返回true(右侧敌人)

checkRange(this, 7, player, 90)

敌人仅能检测到玩家在格范围内,且位于朝向敌人当前方向的90度锥形区域内的位置。(左侧敌人)

checkRange(this, 7, player, 90, 10)

现在玩家可以躲在任何区域10的物体后面,即使在锥形区域内也是如此。这像一个墙体的效果。