博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怪物AI
阅读量:6035 次
发布时间:2019-06-20

本文共 608 字,大约阅读时间需要 2 分钟。

      关于怪物AI,我思考了很长时间,前些日子一直在思考,如何将AI系统做成线程独立。由于是在找不到方案,最终放弃。之前有网友给我推荐说,可是讲AI当做客户端来处理。不错的方案,可是有很多逻辑思考不同,最终放弃。

      我再参考了几个游戏的代码之后,决定AI系统就坐在逻辑线程里面好了,就不单独出来了。

     大概的思路是,在逻辑线程运行的时候 ,保持每一个循环在处理N条消息的情况下,更新M只怪物的信息!这样既能及时响应客户端的需求,也能及时更新怪物的状态!!

     代码:

void GameEngine::run(){	for(;;)	{		this->pre_process();				this->AIprocess();				this->Msgprocess();				this->post_process();			}}void GameEngine::AIprocess(){	T* monster;	EntityPtrList::NodeType* node;	for(int i=0;i
updateState(); } node->next(); }}void GameEngine::Msgprocess(){ for(int i=0;i

    

转载于:https://www.cnblogs.com/archy_yu/archive/2013/04/03/2997591.html

你可能感兴趣的文章
生产管理软件改进生产流程
查看>>
MaxCompute新功能发布
查看>>
3.文件拷贝
查看>>
Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
查看>>
100. bootstrap 弹出对话框bootbox.confirm
查看>>
wps怎么转图片?
查看>>
多人聊天
查看>>
科略教育—企业管理运营八大基本法
查看>>
I/O多路转接之select
查看>>
IPScan的作用
查看>>
我的友情链接
查看>>
mysql主从复制
查看>>
etc目录下配置文件详解
查看>>
配置 yum 源的两种方法
查看>>
A10 负载均衡模拟器下载安装及license免费激活详细介绍
查看>>
SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?...
查看>>
双向链表的几种实现
查看>>
我的友情链接
查看>>
Ubuntu快捷键
查看>>
RGBA是什么
查看>>