NPC AI驱动最基本过程 NPCmgr中比较重要的是加载NPC和一个NPCAI的一个指针 他利用map那个线程的定时到底做了啥呢 void NPCmgr::npcAITimer() { time_t tb = GetTickCount(); m_spNpcAI->run();//[...]测试 time_t te = GetTickCount() - tb; } void NpcAI::run() { //毫秒级随机数(不能放循环里) srand(GetTickCount()); for(auto it : m_map->m_map_objs) { //时间控制 if(!it.second->isRunAI()) continue; //被动行为 if(it.second->passivity()) continue; //状态控制 if(!it.second->action()) continue; //执行动作 it.second->execute(); } } 主要就是做了run这个动作,这是整个地图上所有NPC,所以这个做的事情是相当多的,每次压测这个压力是很大的
时间: 2024-10-16 13:02:42