网游中一个技巧

WBOY
リリース: 2016-06-07 15:00:12
オリジナル
1227 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート