位置: 编程技术 - 正文
推荐整理分享cocos2dx3.2开发 RPG《Flighting》(十二)让怪物智能点——怪物仇恨值(cocos creator rpg),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:cocos开发游戏,cocos开发游戏,cocos2d用什么语言开发游戏,cocos游戏开发教程,cocos2d开发app,cocos2d-js游戏开发,cocos开发游戏,cocos2dx游戏开发,内容如对您有帮助,希望把文章链接给更多的朋友!
一、前言
人工智能,这是一个很深奥的话题。我们这里的怪物也要智能一点,至少会自动找英雄来打吧。
二、正文
现在我才开始看怪物的头文件
同样,Monster也有一个initWithMessage方法来用MonsterMessage来初始化属性。
下面我们讲一讲如何实现关于怪物对英雄的仇恨在头文件里面,我们只需要关注一个成员变量
std::map<Role_Ptr,int> hateMap;
键就是攻击者的二级指针,就是仇恨
还有这几个函数。
1.initHateMap 初始化仇恨map
也是通过m_layer获取全部的role,并且将是英雄的放进来2.updateMonsterAttackTarget 在update函数中被调用
大概就是获取仇恨最高的(getHatest),设置为攻击目标,如果没有最高的,就随机找一个英雄3.refreshHateMap
将死了的英雄的仇恨记录清理掉4.getHateset
获取仇恨最高的5.addHateValue
有没有发现一个问题?哪里来的仇恨呢?哪里有调用过addHateValue?
这里我把仇恨的添加放到子弹里面了,可以说,是一颗颗带着仇恨的子弹
新的子弹update函数,除了会触发目标的injured函数之外,如果目标是一个怪物的话,还会为调用其addHateValue()现在真相大白了。
越攻击一个怪物,怪物对你的仇恨就会越高,就会先攻击你。
好的,现在我们的怪物是不是有点智能了呢。
我的csdn地址:
cocos2dx3.2开发 RPG《Flighting》(十一)角色分类——英雄与怪物 一、前言先补充一下,英雄的死亡英雄的死亡,我们要在FlightLayer对m_rolesArray进行清除操作voidFlightLayer::cleanNullPtrInArray(){autoit=m_rolesArray.begin();while(it!=m_ro
cocos2dx3.2开发 RPG《Flighting》(十四)暂停按钮 一、前言整个教程快接近尾声了。还有一个暂停功能需要添加二、正文首先,我们要在右上方添加一个按钮boolFlightLayer::init(){MenuItemImage*pauseBtnItem=MenuItem
cocos2dx3.2开发 RPG《Flighting》(十五)最后的总结说明,以及源码分享 一、前言这次的Flighting系列教程一口气写了2天,到这里就要结束了。接下来我说明补充一下一些前面没有提到,但是我觉得有必要讲一下的。二、正文1
上一篇:cocos2dx3.2开发 RPG《Flighting》(十三)让英雄炫酷点—技能以及技能效果(cocos2d开发app)
下一篇:cocos2dx3.2开发 RPG《Flighting》(十一)角色分类——英雄与怪物(cocos2d用什么语言开发游戏)
友情链接: 武汉网站建设