位置: 编程技术 - 正文

cocos2dx3.2开发 RPG《Flighting》(十二)让怪物智能点——怪物仇恨值(cocos creator rpg)

编辑:rootadmin

推荐整理分享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,并且将是英雄的放进来

cocos2dx3.2开发 RPG《Flighting》(十二)让怪物智能点——怪物仇恨值(cocos creator rpg)

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

本文链接地址:https://www.jiuchutong.com/biancheng/372690.html 转载请保留说明!

上一篇:cocos2dx3.2开发 RPG《Flighting》(十三)让英雄炫酷点—技能以及技能效果(cocos2d开发app)

下一篇:cocos2dx3.2开发 RPG《Flighting》(十一)角色分类——英雄与怪物(cocos2d用什么语言开发游戏)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络