예제 #1
0
void CGroupInfoScene::menuEnterGroupGameRoomCallback(CCObject* pSender)
{
	CCMenuItemImage *pItem = (CCMenuItemImage*)pSender; 
	if( !pItem )
	{
		CCLog("ERROR, item is null");
		return ;
	}

	CGameRoomInfo *room = (CGameRoomInfo*)pItem->getUserData();
	CCLog( "room: %s:%d %d", room->ip.c_str(), room->port, room->roomid );

	CGameManager::Instance().SetCurGameRoom( room );
	if( CNetManager::Instance().Start( room->ip.c_str(), room->port ) )
	{
		CNetManager::Instance().SetState( CNetManager::E_State_Connecting_GameServer_ByGroup );
		CCLog( "++++++ connect to game server" );

		// 播放loading动画
		CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
		cocos2d::CCSprite *pSpriteLoading = CCSprite::create( PATCH_RES_DIR("loading.png") );
		float w = (visibleSize.width) / 2;
		float h = (visibleSize.height) / 2;
		pSpriteLoading->setPosition( ccp(w, h) );

		CCActionInterval *actionBy = CCRotateBy::create( 0.8, 360 );
		CCActionInterval *seq = (CCActionInterval*)( CCSequence::create(actionBy, NULL) );
		CCAction *act = CCRepeatForever::create( seq );
    
        addChild( pSpriteLoading, 1 );
		pSpriteLoading->runAction( act );
	}
	else
	{
		CGameManager::Instance().SetCurGameRoom( NULL );
	}
}