热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网游中一个技巧

当我们在开发网络游戏客户端时经常会(肯定会)开一个线程负责接收,发送网络消息,这时我们必然会碰到一些问题如:在一些对战列表中随时有玩家上下线,这时我们应该会涉及UI线程(主线程)和网络线程的同步问题:如果直接在网络线程中获得数据后直接使用

当我们在开发网络游戏客户端时经常会(肯定会)开一个线程负责接收,发送网络消息,这时我们必然会碰到一些问题如: 在一些对战列表中随时有玩家上下线,这时我们应该会涉及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;
}

推荐阅读
author-avatar
最爱7色的彩虹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有