//宠物AI流程
.刚开始添加宠物
Monster被动State:EnumMonster被NULL
MonsterStat:EnumPet跟随
.附近有怪物就改成攻击模式(相关的收尾工作)
void PetObj::cancle_follow()
{
m_trace_line.clear();
is_move = false;
MonsterStat = EnumMonsterStat::EnumMonster追击;//将怪物的状态改成EnumMonster追击
}
//如果线路没有走完他会向客户端发送移动包和附近玩家通知包
.当把怪度打死并且目标列表中为空时就把气状态置为跟随
void PetObj::cancle_attached()
{
m_is_attached = false;//玩家已死,取消攻击记录
m_attach_objs.clear();//取消攻击记录
m_trace_line.clear();
is_move = false;
MonsterStat = EnumMonsterStat::EnumPet跟随;
}
.如果宠物在追击或者跟随的过程中和主人的距离超过20格子则会传送
void PetObj::传送()//这个函数写的有问题
{
MonsterStat = EnumMonsterStat::EnumPet跟随;//将状态置为跟随,传送之后其状态回到原始状态就是跟随 auto owner_map_pos = m_map->m_spBase->getMapPos(owner->tgtPos);
int mx = owner_map_pos.x;
int my = owner_map_pos.y; pos2d mPos = {mx, my};
int dir = ;
for(dir = ; dir < ; dir ++)
{
switch(dir)
{
case DIR_UP:
case DIR_LEFT:
case DIR_LEFTUP:
mPos.y++;
break;
case DIR_RIGHTUP:
mPos.x++;
break;
case DIR_RIGHT:
case DIR_RIGHTDOWN:
mPos.y--;
break;
case DIR_DOWN:
case DIR_LEFTDOWN:
mPos.x--;
break;
}
if(m_map->is_out_of_range(mPos.x, mPos.y) || !is_pet_stand(mPos))
continue;
if(m_map->m_vec_collsion[mPos.x][mPos.y] != )
break;
}
if(dir >= )
{
return;
} //给附近玩家 和 角色发送消息信息
for(auto it : map_nearby_player)
{
it.second->nearby_monsters.erase(objId.id);
std::vector<ObjecInfo> 远离的;
远离的.push_back(*this);
it.second->send_obj_leave(远离的);
}
for(auto it : map_nearby_objs)
{
it.second->map_nearby_objs.erase(objId.id);
}
//m_map->m_move_objs.erase(objId.id);//移除对象
m_map->m_move_mgr.del_mask(objId); pos2d bpos = _getBlockPos();
m_map->m_map_blocks[bpos.x][bpos.y].del(objId); map_nearby_objs.clear();
map_nearby_player.clear(); curPos = tgtPos = m_map->m_spBase->getPos(mx, my); auto cur_block_pos = m_map->m_spBase->getBlockPos(curPos);
block_x = cur_block_pos.x;
block_y = cur_block_pos.y; base_mpos.x = mx;
base_mpos.y = my; //加载到Map::的blockobj容器中
m_map->m_vec_collsion[mx][my] = ;//当前点设置为1 //加入到容器中
m_map->m_map_objs[objId.id] = this;
m_map->m_map_blocks[block_x][block_y].add(this);
init();
return;
}

宠物AI(个人觉得有问题)的更多相关文章

  1. Lua Behavior Tree For Unity3D(Lua描述行为树For Unity3D)

    行为树(BTTree)笔记 为什么是Lua版本的行为树 目前国内的手机游戏都标配热更新功能,而游戏AI自然也是MMO游戏的一个标配,比如说挂机的AI,宠物的AI等等. 说起如何用更简单的方式开发AI功 ...

  2. MMORPG战斗系统随笔(三)、AI系统简介

    在设计一款游戏的时候,如果我们是玩家,是希望自己能够操作角色畅玩游戏的.在一款MMORPG游戏中,大部分的实际游戏角色,是需要玩家来操作的,通过在游戏大世界相互完成游戏中的任务等等来体验游戏.在大世界 ...

  3. AI产品经理成长路

    AI产品经理成长路 https://www.jianshu.com/p/4b98314ad3c0 以下都是自己平时知识的一些总结,只是一些个人的愚见,下面出现的公司.书籍.视频.网站都是自己看过体验过 ...

  4. AI超越人类大脑,或许是场“别有用心者”的骗局

    ​ 谷歌.微软.苹果.特斯拉.百度.腾讯.阿里等互联网巨头企业,以及纳德拉.马斯克.扎克伯格.马云等互联网大佬,近年来一直都对人工智能--AI非常上心.在众多场合对AI给予了或肯定,或恐惧的评价.但无 ...

  5. Fetch.AI 首席技术官Toby Simpson参与AMA活动

    感谢7月11日在YouTube上参与 Fetch.AI AMA的所有人.我们收到了大量的问题,遗憾的是我们没有时间回答其中的多数问题.如果你错过了现场AMA,你可以在下面观看全部内容: 在本文中,我们 ...

  6. 马里奥AI实现方式探索 ——神经网络+增强学习

    [TOC] 马里奥AI实现方式探索 --神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典 ...

  7. 普通程序员如何转向AI方向

    眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 本文的目的是给出一个简单的,平 ...

  8. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  9. 游戏AI系列内容 咋样才能做个有意思的AI呢

    游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...

随机推荐

  1. PHP MYSQLI中事务处理

    MYSQL事务处理让所有sql语句执行成功后才去处理,如果有一条没有成功或者报错就会回滚事务,防止敏感操作处理失败.MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其它类型是不支持的 ...

  2. 【Delphi】从内存(MemoryStream)使用WMP(WindowsMediaPlayer)控件播放视频音频(Play Video with WMP from MemoryStream)

    关键字: MemoryStream.WMP.WindowsMediaPlayer.Play .Load. Delphi.C++.C#.ActiveX控件 作  者: CaiBirdy 问  题:正常使 ...

  3. hdu 4631Sad Love Story<计算几何>

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4631 题意:依次给你n个点,每次求出当前点中的最近点对,输出所有最近点对的和: 思路:按照x排序,然后用s ...

  4. MIFARE系列3《卡能源和数据传递》

    在MIFARE卡中,能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯片上,不再需要额外的组件.线圈嵌入塑料中,形成了一个无源的非接触卡. 读卡器向IC发一组固定频率的电磁波,卡内有一个IC串联 ...

  5. Linux ls -l内容详解

    ls -l是列出当前目录下所有文件信息 以下是实例: 具体的文字描述如下: 第1字段:  文件属性字段文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文 ...

  6. UITextField使用的相关方法

    1.设置占位符 textField.placeholder = @“”; 2.设置暗文输入 textField.secureTextEntry = YES;   3.设置键盘类型 textField. ...

  7. listview 优化

    ListView的优化: (前两点都是利用ListView的自身优化机制优化[缓存优化]) 1.利用ListView自身的缓存机制,他会缓存条目中的一个条目item,当listview第一屏显示完成之 ...

  8. 九度oj 1554 区间问题

    原题链接:http://ac.jobdu.com/problem.php?pid=1554 由数列的前缀和:$\begin{align*}\Large{} S_n &=\Large{}\sum ...

  9. Java之NIO传输数据

    NIO可谓陈词旧调,不值一提. 但之前都是泛泛而谈, 现在深入应用才知道秘诀所在. 对于SocketChannel有read()与write(),但由于"非阻塞IO"本质, 这二个 ...

  10. aliyun install php apache mysql nginx

    yum install httpd -y yum install mysql mysql-server -y yum install php-mysql php-pgsql php-pecl-mong ...