文档详情

游戏开发引擎cocosd-x怪物智能AI怪物也有智商--之游戏开发《赵云要格斗》.doc

发布:2018-06-04约7.18千字共17页下载文档
文本预览下载声明
Cocos?2d-x怪物智能?AI怪物也?有智商--之游戏开发?《赵云要格斗?》(6) 本文将主要?来讲讲游戏?开发中的怪?物智能,一个好的游?戏一般怪物?都要分等级?,这样我们游?戏玩起来才?有意思,怪物如果智?商太高,游戏难度大?。怪物如果智?商太低,游戏玩起来?又没有意思?。一般好的游?戏低级怪物?和中级怪物?占大部分,高级怪物一?般是BOS?S级怪物。下面我来讲?讲自己对怪?物AI的一?些见解吧。本文接上一?节《Cocos?2d-x血条跟随?怪物运动--之游戏开发?《赵云要格斗?》(5)》 Cocos?2d-x版本:2.2.5 工程环境:Windo?ws7+VS201?0 打开方式:将工程放在?Cocos?2d-x安装目录?下的pro?ject文?件夹下用V?S打开 先看看效果?: 一、怪物智能A?I思路讲解? 低级怪物---一般是不能?动的怪物,固定在原处?,不断的发动?攻击,然后根据英?雄的方位,不断改变子?弹的朝左还?是朝向,如游戏中的?炮台等。 中级怪物----初步有一些?智商了,主要表现在?当英雄在它?的攻击范围?内,能够知道英?雄的位置,就以一定的?比例判断是?否进行攻击?。如若不然,平时都是自?己按照一定?的路线进行?行走,又或者是随?机走动。然后攻击随?机出动,只有当英雄?在它的攻击?范围内,它才会不再?走动,原地以概率?判断是否要?进行攻击 高级怪物-----BOSS级?怪物,它有自己的?可视范围区?,当英雄陷入?它的可视范?围区时,它就追着英?雄跑。可视范围区?内,还有个攻击?范围区,当英雄陷入?攻击范围区?内时,怪物就按一?定的概率出?动攻击,这个概率一?般比较大。然后,如果英雄不?在怪物的可?视范围区内?时,怪物它有自?己的巡逻路?线,它按照这个?路线不断的?走,总会发现到?英雄,英雄你再怎?么跑,它都会跟着?你。 当然,上面说的都?是比较简单?的了,实际游戏中?怪物还会分?得更细,比如有的怪?物能自动加?血,有的怪物还?能召唤等,这里就不再?详细讲下去?了,若有兴趣,自己再去百?度下等,怪物智能这?个涉及到人?工智能,深入下去就?是算法的问?题了。 (这是我用P?S自己弄的?,哈哈,还可以吧,程序员PS?真应该也稍?微学点!) 本文主要是?要设置一个?高级怪物A?I的一个算?法,下面是它的?流程图: 下面是本文?的一个效果?: 二、Monst?er类增加?函数 在上一讲的Mon?ster类?的增加函数?,3秒计算要?怎么来实现?呢?其实很简单?,就开一个3?秒的计数器?事件不就完?了么? 1 this-sched?ule(sched?ule_s?elect?or(Monst?er::updat?eMons?ter),3.0f);//每隔3秒计?算距离 然后就是计?算怪物和英?雄的距离了?,这中间涉及?到很多判断?,具体可以看?上面的算法?流程图,然后再参考?下代码,注意, 1 Start?Liste?n(CCNod?e*?m_her?o,CCNod?e*?m_map?) 这是开始启?动怪物监听?英雄的函数?。 首先是在M?onste?r.h中添加: publi?c: 1 2 3 4 5 6 7 8 9 10 11 12 //在可视范围?内,怪物跟随英?雄运动 void?Follo?wRun(CCNod?e*?m_her?o,CCNod?e*?m_map?); //判断是否攻?击 void?Judeg?eAtta?ck(); //怪物巡逻路?线 void?Monst?erSee?Run(); //怪物启动监?听英雄 void?Start?Liste?n(CCNod?e*?m_her?o,CCNod?e*?m_map?); //监听函数,每隔3秒检?测下,计算英雄与?怪物的距离? void?updat?eMons?ter(float??delta?); //更新函数,如果英雄在?可视范围内?,不断触发 void?updat?e(float??delta?); priva?te: 1 2 3 CCNod?e*?my_he?ro;//当前英雄 CCNod?e*?my_ma?p;//当前地图 float????dis;//当前怪物和?英雄的距离? 然后这是它?的实现Mo?nster?.cpp: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
显示全部
相似文档