九宫格广播
2014-02-12 14:34
363 查看
///////////////////////////////////////////////////////// //// 九宫格广播,广播给周围九宫范围内的对象 ///////////////////////////////////////////////////////// BOOL CGameWorld::Broadcast9GridMessage(POINTS ptCurTile, int nGridWidth, int nGridHeight, DWORD dwMsg, LPCSTR buf, int nLen) { static WORD s_wCreateMsgID = MAKE_MSGID(MAINACTION_CIRCULTYPE_BCM, MAINACTION_MSGID_CREATE); static WORD s_wDestroyMsgID= MAKE_MSGID(MAINACTION_CIRCULTYPE_BCM, MAINACTION_MSGID_DESTROY); MapItemEnumMsgData Data; Data.buf=buf; Data.dwMsg=dwMsg; Data.nLen=nLen; RECT rcBroadcast; POINT pt; pt.x=ptCurTile.x; pt.y=ptCurTile.y; m_9GridMan.GetScreenAll9Grid(pt,nGridWidth,nGridHeight,rcBroadcast); m_BroadcastMonitor.BroadCast(pt.x/16,pt.y/16); int nListCount = 4096; SNAP_ITEM snap[4096]; if(dwMsg == s_wCreateMsgID || dwMsg == s_wDestroyMsgID) { if(!m_MapContainerDecorate.SnapshotRectItem(rcBroadcast, nListCount, snap)) { return FALSE; } } else { if(!m_MapContainerDecorate.SnapshotRectActorItem(rcBroadcast, nListCount, snap)) { return FALSE; } } for(int i = 0; i < nListCount; i++) { if(!(m_MapContainer.GetTile(snap[i].ptTile).FindItem(snap[i].pItem))) { continue; } m_MapItemEnumSink.OnEnumMapItemMessage(snap[i].ptTile, snap[i].pItem, &Data); } return TRUE; }
相关文章推荐
- spoj 694. Distinct Substrings(后缀数组)
- android startActivityForResult的用法
- linux中的jrtp编程
- 大多数人不行动
- selenium-webdriver(python) (六)
- 历届试题 买不到的数目 (扩展的欧几里得算法)
- selenium-webdriver(python) (五)
- ADT Android开发环境搭建小记
- jquery查找父元素 子元素(个人总结)
- Activity的启动模式_打开其它应用中的Activity
- LINUX PPP拨号永久在线保障机制
- selenium-webdriver(python) (四)
- android项目遇见的问题
- div显示隐藏
- IE6下<a href="#">与<a href="javascript:void(0);">的区别
- Git:常用命令(二)
- Java静态方法是否可以被继承
- Nginx交互式管理脚本--自助添加虚拟主机 推荐
- selenium-webdriver(python) (三)
- 《我为喜剧狂》:台上台下两台戏 戏里欢乐戏外心酸