Heim  >  Artikel  >  Datenbank  >  网游中一个技巧

网游中一个技巧

WBOY
WBOYOriginal
2016-06-07 15:00:121239Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:数据库系列之查询(5)Nächster Artikel:AdventureWorks数据库的安装