您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

网游中一个技巧

2024/7/31 5:10:17发布30次查看
当我们在开发网络游戏客户端时经常会(肯定会)开一个线程负责接收,发送网络消息,这时我们必然会碰到一些问题如: 在一些对战列表中随时有玩家上下线,这时我们应该会涉及ui线程(主线程)和 网络线程的同步问题: 如果直接在网络线程中获得数据后直接使用
当我们在开发网络游戏客户端时经常会(肯定会)开一个线程负责接收,发送网络消息,这时我们必然会碰到一些问题如:
在一些对战列表中随时有玩家上下线,这时我们应该会涉及ui线程(主线程)和 网络线程的同步问题:
如果直接在网络线程中获得数据后直接使用的话,肯定会出现各种奇怪的问题。所以一个通用的做法是:
用一个变量来判断:m_bfresh
void userlist::visit(void)
{
    cclayer::visit();
    if ( m_bfresh ) {
        updatauserlist();
    }
    m_bingame = true;
}
因为visit 会一直调用所以当判断可以刷新时直接刷就行了。
void userlist::updatauserlist()
{
    m_puserlist = net_manager->getuserlist();    这个是最新的数据
    m_ptableview->reloaddata();
    m_bfresh = !m_bfresh;
}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product