如题:
在游戏中野怪有自己的巡游范围,也有自己的识别角色范围。当游戏角色进入野怪识别范围,野怪会被激活;野怪在屏幕之外时,角色进入识别范围同样会激活。
这样的机制在cocos2dx中是怎么实现的?
这个东西和cocos本身没啥关系
- 最根本的是要怪物身上有状态机, 最少有激活和非激活状态, 激活状态下有闲逛/物理攻击/魔法攻击/追击等子状态
- 在激活和非激活状态判断角色和怪物之间的距离是否在一屏之内, 进行大状态之间转换, 子状态就取决于自身逻辑了
- 整个状态机由schedulea驱动
另外一般来说如果是网络游戏, 这种状态机是放在服务器组里的怪物服务器进行操作, 纯单机游戏当我这句话没说
不错,给了我一个方向
楼上正解!!!!
写个ai,设定个时间间隔,每个间隔去检测当前所有在屏幕上的怪物的攻击区域有没有与玩家有交集的,有的话就切换到追踪状态,跑到玩家身边切换攻击状态(在追踪过程中还要不停的检测玩家还在不在攻击范围内或者改变追踪目标–就近原则),没有就继续巡逻