mmo地图相关MapService



main()
{
initCfgData();//读配置数据到内存


//一堆servervice开始工作,实际每个service只有一个,为了后续的可扩展性,每个manager维护一个service容器来管理,
dbService();
globalService();
centerService();
helpService();
gameService();
....;
startMapServices();//map部分
}
MapsManager.startMap(xx);
for(allmaps)
{
NormalMapService* nms = new NormalMapService();
nms->init();//每个map对应一对配置数据,CfgMap* m_pCfgMap = xxx;初始化就是把配置数据链过去
nms->start();
}
NormalMapService:MapServiceBase:Thread
也就是说,m个地图就对应m个线程,每个独立update,
MapServiceBase::run()
{
m_running = true;
while(m_running)
{
update();//对应的maps update,当前实际是一个,一个mapservice对应一个map
checkMessage();//处理所有发到我这个线程的消息
sleep(10);
}
}
其他地方发来的消息比如
pMapService->postMessage(msg,xxxx);


//message_queue和messgae_pool相互配合
void postMessage(msg)
{
GameMsg* msg = m_pool.pop();//新消息过来,从池子取出一个钥匙,给指向的空间重新赋值,然后放入消息队列,省的频繁new
if(msg!=NULL)
{
m_msgQueue.push(msg);//放到这里面表示进入处理队列了,排队处理
}
}
void checkMessages()
{
//所有来的消息放在一个队列里面,然后我在循环里面处理这些消息,FIFO
GameMsg* msg=bull;
while((msg=m_msgQueue.pop()) != NULL)
{
dealMessage(msg);//switch case,什么msg做什么事
m_pool.push(msg);//处理完后放入池子,不delete,等新消息到来,拿出去重新赋值继续用
}
}
void map::update()
{
if(这片地图有玩家)
{
updateMonsters();//m_aliveMonsters,m_deadMonsters.update
updatePlayers();//m_players.update
updatePets();
updatePlants();
updateDropItems();//m_dropItems 
//怪物,玩家,宠物,植物,掉落物等等
。。。。
//这些update里面实际就是  map里面的成员entity每个都update
}
}
map的部分成员变量
{
m_dropItems;//当前地图上面的掉落物
m_aliveMonsters;//当前地图上面活着的怪物
xx//死了的怪物
m_players;//当前地图上的玩家角色
}
对ArcGIS REST服务进行分析、询问和故障排除的扩展。 该扩展程序可与ArcGIS Server REST页面一起使用,以收集并显示与您所看到的服务相关的其他数据。 您可以搜索相关数据,并找到相应的地图服务。 它还会检查来自服务链接的数据,什么是ArcGIS Server? 它是ESRI的产品,可帮助政府,企业和其他组织在Internet上发布地图和地理空间Web服务。 这些地图和服务可以通过网站,移动和桌面应用程序访问,用户可以在其中查看,查询地图并与之交互。 将地图或服务发布到ArcGIS Server时,服务器通过HTML,JSON和其他数据格式提供有关服务的数据。 ArcGIS Server还为开发人员提供了表单,以测试特定的REST服务请求。 此扩展为用户提供了有关服务HTML页面上的更多信息,并修改了表单以使其更易于使用。 虽然ArcGIS Server通过HTML提供有关地图服务的元数据,但是在找到所需信息之前,您通常必须访问每个链接并查看大量数据。 此扩展程序收集相关链接后面的数据,并以可读格式显示。 工具功能:*以可读格式显示地图服务元数据*搜索地图服务和相关子页面中的搜索文本*用于图层查询页面的“按属性选择”样式查询构建工具*用于地图服务“查找”的图层和字段助手。 *功能数量和功能数量(按域项目)* URL缩短查询搜索服务*自动填写打印任务计划的未来增强功能包括:*平铺地图服务测试*直接在页面上查看Web地图*将以前提交的REST请求保存在LocalStorage *还有更多... 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值