今天实现的内容是怪物AI,看了一些网上的AI,不是特别符合我的需求,于是就自己研究了一种AI,大致和魔兽类的RPG游戏效果差不多。
AI效果如下:
1. 将怪物分为如下几个状态:
待机状态(该状态内有3种行为:原地呼吸、原地观察、和游走,可通过权重配置待机状态下三种行为发生的比例);
警戒状态(怪物向玩家发出警告,并持续盯着玩家);
追击状态(怪物跑向玩家)
返回状态(跑回出生位置,该状态下不再理会玩家)
2. 可以为怪物配置各项状态的数值
游走半径,待机状态下,怪物游走时不会超出这个范围,根据出生点计算
警戒半径,当玩家与怪物之间距离小于警戒半径时进入警戒状态,根据怪物实时位置计算
自卫半径,当玩家与怪物之间距离小于自卫半径时进入追击状态
追击半径,怪物追击玩家时,自身不会超出这个范围,超出后跑回出生点,可以理解为最大活动范围
攻击距离,当玩家与怪物之间的距离小于攻击距离时触发战斗(我这边是进入之前做好的回合制战斗场景)
3. 各项数值设定的关系如下
比较合理的关系是:追击半径>警戒半径>自卫半径>攻击距离,游走半径只需要小于追击半径即可
1)自卫半径不建议大于警戒半径,否则就无法触发警戒状态,直接开始追击了
2)攻击距离不建议大于自卫半径,否则就无法触发追击状态,直接开始战斗了
3)游走半径不建议大于追击半径,否则怪物可能刚刚开始追击就返回出生点
我这边自己测试时,设置的属性如下: