我自己的游戏代码   因为 游戏源 盯着外面的   我们能够能够理解
/************************************************************************/
/*          登录场景                                                    */
/************************************************************************/
class CNFLoginScene : public CCLayer ,public CMsgReceiver
{
protected://标签enum {enTagLoading = 1,enTagServerNameLabel,enTagStudioLoginLayer,       //登陆层enTagStudioRegisterLayer,  //注冊层};int          m_nLoadRecNum;              //资源载入数int          m_nLoadRecTotalNum;         //资源载入总数int         m_nCurrentServerID;         //当前serverIDint         m_nServerTotalNum;          //server的总数量public:static CCScene * scene();static CNFLoginScene * CreateLayer();//消息接收virtual void RecMsg(int nMsgID,void* pInfo,int nSize);protected:virtual void onEnter();//资源预载入void LoadRec();            void OnLoadRecCallBack(CCObject *pObj);     //回调:资源载入
//  void OnLoadLastRecCallBack(CCObject *pObj); //回调:最后一个资源载入//异步载入骨骼资源的回调void OnLoadArmatureData(float percent);virtual void InitSceneUI();                 //在这里载入该图层专用的资源//---------------登录页button回调----------------void OnBtnEnterCallBack(CCObject *pSender, TouchEventType type);         //開始游戏void OnBtnServerSelectCallBack(CCObject *pSender, TouchEventType type);       //选择servervoid OnBtnSwitchToRegisterCallBack(CCObject *pSender, TouchEventType type);   //跳转到注冊页void OnBtnLoginCallBack(CCObject *pSender, TouchEventType type);            //登录void OnAccountTextFieldEvent(CCObject *pSender, TextFiledEventType type);//---------------注冊页button回调----------------void OnBackToLoginCallBack(CCObject *pSender, TouchEventType type);            //跳转到登录页void OnBtnRegisterCallBack(CCObject *pSender, TouchEventType type);         //注冊
};#endif

.cpp文件

#define _LOADREC_NUM_<span style="white-space:pre">        </span>16
/************************************************************************/
/*<span style="white-space:pre">           </span>登录场景<span style="white-space:pre">                                                    </span>*/
/************************************************************************/
CCScene* CNFLoginScene::scene()
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>CCScene* pScene = CCScene::create();
<span style="white-space:pre">     </span>CC_BREAK_IF(pScene==NULL);<span style="white-space:pre">        </span>CNFLoginScene* pLayer = CNFLoginScene::CreateLayer();
<span style="white-space:pre">     </span>CC_BREAK_IF(pLayer==NULL);<span style="white-space:pre">        </span>pScene->addChild(pLayer);
<span style="white-space:pre">     </span>return pScene;<span style="white-space:pre">  </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::scene Error!");
<span style="white-space:pre"> </span>return NULL;
}CNFLoginScene * CNFLoginScene::CreateLayer()
{
<span style="white-space:pre"> </span>CNFLoginScene *pRet = new CNFLoginScene();
<span style="white-space:pre"> </span>if (pRet && pRet->init())
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>pRet->autorelease();
<span style="white-space:pre">     </span>return pRet;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::CreateLayer Error!");
<span style="white-space:pre"> </span>delete pRet;
<span style="white-space:pre"> </span>pRet = NULL;
<span style="white-space:pre"> </span>return NULL;
}void CNFLoginScene::onEnter()
{
<span style="white-space:pre"> </span>CCLayer::onEnter();
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>//创建Laoding层
<span style="white-space:pre">     </span>CNFLoadingLayer * pLoading = CNFLoadingLayer::CreateLayer();
<span style="white-space:pre">     </span>CC_BREAK_IF(pLoading==NULL);
<span style="white-space:pre">     </span>addChild(pLoading,enZOrderFront+10000,enTagLoading);
<span style="white-space:pre">     </span>
<span style="white-space:pre">     </span>m_nLoadRecNum = 0;
<span style="white-space:pre">     </span>m_nLoadRecTotalNum = _LOADREC_NUM_;<span style="white-space:pre">        </span>//预载入本层资源
<span style="white-space:pre">     </span>LoadRec();<span style="white-space:pre">      </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::onEnter Error!");
}//资源预载入
void CNFLoginScene::LoadRec()
{
<span style="white-space:pre"> </span>CCTextureCache::sharedTextureCache()->addImageAsync("ui/serverselect_bg.png",this,callfuncO_selector(CNFLoginScene::OnLoadRecCallBack));
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/kulougongshou.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/kulouzhanshi.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/mayi.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/bianyikunchong.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/bubing.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/xiaoyin.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/NewProject.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/minren1.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/kulou_arrow.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/naili.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/NPC_kakaxi.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/portal.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));<span style="white-space:pre">  </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/hited_light.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/public_casting.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
<span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/skill_light_1.ExportJson",this,schedule_selector(CNFLoginScene::OnLoadArmatureData));
}void CNFLoginScene::OnLoadArmatureData( float percent )
{
<span style="white-space:pre"> </span>//CCLog("==================%f",percent);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>m_nLoadRecNum ++;<span style="white-space:pre"> </span>//得到Laoding层
<span style="white-space:pre"> </span>CNFLoadingLayer * pLoading = dynamic_cast<CNFLoadingLayer *>(getChildByTag(enTagLoading));
<span style="white-space:pre"> </span>if(pLoading!=NULL){
<span style="white-space:pre">     </span>pLoading->SetPro( (float)m_nLoadRecNum/(float)m_nLoadRecTotalNum );
<span style="white-space:pre"> </span>}else{
<span style="white-space:pre">     </span>CCLog("Fun CNFLoginScene::OnLoadArmatureData Error!");
<span style="white-space:pre"> </span>}
<span style="white-space:pre">     </span>
<span style="white-space:pre"> </span>if(m_nLoadRecNum==m_nLoadRecTotalNum){
<span style="white-space:pre">     </span>//延迟1秒
<span style="white-space:pre">     </span>this->runAction(CCSequence::create(
<span style="white-space:pre">         </span>CCDelayTime::create(2.f),
<span style="white-space:pre">         </span>CCCallFunc::create(this,callfunc_selector(CNFLoginScene::InitSceneUI)),
<span style="white-space:pre">         </span>NULL));
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>if (percent >= 1)
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>CCLog("addArmatureFileInfoAsync over");
<span style="white-space:pre"> </span>}
}//资源载入回调
void CNFLoginScene::OnLoadRecCallBack( CCObject *pObj )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>m_nLoadRecNum ++;<span style="white-space:pre">     </span>//得到Laoding层
<span style="white-space:pre">     </span>CNFLoadingLayer * pLoading = dynamic_cast<CNFLoadingLayer *>(getChildByTag(enTagLoading));
<span style="white-space:pre">     </span>CC_BREAK_IF(pLoading==NULL);
<span style="white-space:pre">     </span>pLoading->SetPro( (float)m_nLoadRecNum/(float)m_nLoadRecTotalNum );<span style="white-space:pre">      </span>if(m_nLoadRecNum==m_nLoadRecTotalNum){
<span style="white-space:pre">         </span>//延迟1秒
<span style="white-space:pre">         </span>this->runAction(CCSequence::create(
<span style="white-space:pre">             </span>CCDelayTime::create(2.f),
<span style="white-space:pre">             </span>CCCallFunc::create(this,callfunc_selector(CNFLoginScene::InitSceneUI)),
<span style="white-space:pre">             </span>NULL));
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnLoadRecCallBack Error!");
}// //最后一个资源载入回调
// void CNFLoginScene::OnLoadLastRecCallBack( CCObject *pObj )
// {
// <span style="white-space:pre">  </span>do
// <span style="white-space:pre">  </span>{
// <span style="white-space:pre">      </span>//CCLog("==================last");
// <span style="white-space:pre">      </span>m_nLoadRecNum ++;
//
// <span style="white-space:pre">      </span>//得到Laoding层
// <span style="white-space:pre">      </span>CNFLoadingLayer * pLoading = dynamic_cast<CNFLoadingLayer *>(getChildByTag(enTagLoading));
// <span style="white-space:pre">      </span>CC_BREAK_IF(pLoading==NULL);
// <span style="white-space:pre">      </span>pLoading->SetPro( 1.f );
//
// <span style="white-space:pre">      </span>//延迟1秒
// <span style="white-space:pre">      </span>this->runAction(CCSequence::create(
// <span style="white-space:pre">          </span>CCDelayTime::create(1.f),
// <span style="white-space:pre">          </span>CCCallFunc::create(this,callfunc_selector(CNFLoginScene::InitSceneUI)),
// <span style="white-space:pre">          </span>NULL));
//
// <span style="white-space:pre">      </span>return ;
// <span style="white-space:pre">  </span>} while (false);
// <span style="white-space:pre">  </span>CCLog("Fun CNFLoginScene::OnLoadLastRecCallBack Error!");
// }void CNFLoginScene::InitSceneUI()
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>//移除Laoding层
<span style="white-space:pre">     </span>CNFLoadingLayer * pLoading = dynamic_cast<CNFLoadingLayer *>(getChildByTag(enTagLoading));
<span style="white-space:pre">     </span>if (pLoading!=NULL)
<span style="white-space:pre">     </span>removeChildByTag(enTagLoading,true);<span style="white-space:pre">        </span>/************************************************************************/
<span style="white-space:pre">     </span>/*<span style="white-space:pre">              </span>2.联网:得到serverID                                                                     */
<span style="white-space:pre">     </span>/************************************************************************/
<span style="white-space:pre">     </span>m_nCurrentServerID = 16;
<span style="white-space:pre">     </span>m_nServerTotalNum = 31;<span style="white-space:pre">        </span>//创建登录UI层
<span style="white-space:pre">     </span>UILayer* pLoginUiLayer = UILayer::create();
<span style="white-space:pre">     </span>CC_BREAK_IF(pLoginUiLayer==NULL);<span style="white-space:pre">     </span>UILayout *pLoginWidget = dynamic_cast<UILayout*>(GUIReader::shareReader()->widgetFromJsonFile("NormalLogin.json"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pLoginWidget==NULL);
<span style="white-space:pre">     </span>pLoginUiLayer->addWidget(pLoginWidget);
<span style="white-space:pre">     </span>pLoginWidget->setName("LoginLayer");
<span style="white-space:pre">     </span>pLoginWidget->setSize(getContentSize());<span style="white-space:pre">     </span>addChild(pLoginUiLayer,enZOrderBack,enTagStudioLoginLayer);<span style="white-space:pre">     </span>//设置切换serverbutton回调
<span style="white-space:pre">     </span>UIButton* pBtn_Server_Select = dynamic_cast<UIButton*>(pLoginWidget->getChildByName("MainUi")->getChildByName("Btn_Change_Server"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pBtn_Server_Select==NULL);
<span style="white-space:pre">     </span>pBtn_Server_Select->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBtnServerSelectCallBack));<span style="white-space:pre">        </span>/************************************************************************/
<span style="white-space:pre">     </span>/*<span style="white-space:pre">          </span>背景图片                                                                     */
<span style="white-space:pre">     </span>/************************************************************************/
<span style="white-space:pre">     </span>创建背景图片
<span style="white-space:pre">     </span>//CCSprite * pServerSelectBg = CCSprite::create("ui/serverselect_bg.png");
<span style="white-space:pre">     </span>//CC_BREAK_IF(pServerSelectBg==NULL);
<span style="white-space:pre">     </span>//pServerSelectBg->setScaleX( (float)CCDirector::sharedDirector()->getWinSize().width/(float)pServerSelectBg->getContentSize().width );
<span style="white-space:pre">     </span>//pServerSelectBg->setPosition(SCREEN_CENTER);
<span style="white-space:pre">     </span>//addChild(pServerSelectBg,enZOrderBack);<span style="white-space:pre">       </span>创建logo图片
<span style="white-space:pre">     </span>//CCSprite * pName = CCSprite::create("ui/logo_bg.png");
<span style="white-space:pre">     </span>//CC_BREAK_IF(pName==NULL);
<span style="white-space:pre">     </span>//pName->setPosition(ccp(SCREEN_WIDTH*0.5f,350));
<span style="white-space:pre">     </span>//addChild(pName,enZOrderBack);<span style="white-space:pre">     </span>创建server名称背景
<span style="white-space:pre">     </span>//CCScale9Sprite * pServerNameBg = CCScale9Sprite::create("ui/bg_1.png");
<span style="white-space:pre">     </span>//CC_BREAK_IF(pServerNameBg==NULL);
<span style="white-space:pre">     </span>//pServerNameBg->setContentSize(CCSizeMake(173,40));
<span style="white-space:pre">     </span>//pServerNameBg->setPosition(ccp(SCREEN_WIDTH*0.5f,220));
<span style="white-space:pre">     </span>//addChild(pServerNameBg,enZOrderBack);<span style="white-space:pre">     </span>/************************************************************************/
<span style="white-space:pre">     </span>/*<span style="white-space:pre">          </span>创建button                                                                     */
<span style="white-space:pre">     </span>/************************************************************************/
<span style="white-space:pre">     </span>//CCMenu * pMenu = CCMenu::create();
<span style="white-space:pre">     </span>//CC_BREAK_IF(pMenu==NULL);
<span style="white-space:pre">     </span>//pMenu->setPosition(CCPointZero);
<span style="white-space:pre">     </span>//addChild(pMenu,enZOrderMid);<span style="white-space:pre">      </span>选择serverbutton
<span style="white-space:pre">     </span>//CCMenuItemSprite * pBtnServerSelect = CCMenuItemSprite::create(
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>CCSprite::create("ui/btn_enter_n.png"),
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>CCSprite::create("ui/btn_enter_p.png"),
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>this,
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>menu_selector(CNFLoginScene::OnBtnServerSelectCallBack));
<span style="white-space:pre">     </span>//CC_BREAK_IF(pBtnServerSelect==NULL);
<span style="white-space:pre">     </span>//pBtnServerSelect->setScaleY(0.8f);
<span style="white-space:pre">     </span>//pBtnServerSelect->setScaleX(0.2f);
<span style="white-space:pre">     </span>//pBtnServerSelect->setPosition(ccp(pServerNameBg->getPositionX() + 63  ,pServerNameBg->getPositionY()));
<span style="white-space:pre">     </span>//pMenu->addChild(pBtnServerSelect,enZOrderFront);<span style="white-space:pre">       </span>/************************************************************************/
<span style="white-space:pre">     </span>/*<span style="white-space:pre">                  </span>label                                                                    */
<span style="white-space:pre">     </span>/************************************************************************/
<span style="white-space:pre">     </span>//CCDictionary *pDicLang = CCDictionary::createWithContentsOfFile("ui_xml/serverselect_xml.xml");
<span style="white-space:pre">     </span>//CC_BREAK_IF(pDicLang==NULL);<span style="white-space:pre">        </span>serverlabel
<span style="white-space:pre">     </span>//CCString *pStrServer = dynamic_cast<CCString*>(pDicLang->objectForKey("server"));
<span style="white-space:pre">     </span>//CCLabelTTF * pLabelServer = CCLabelTTF::create(pStrServer->m_sString.c_str(),"Arial",20);
<span style="white-space:pre">     </span>//CC_BREAK_IF(pLabelServer==NULL);
<span style="white-space:pre">     </span>//pLabelServer->setPosition(ccp(pServerNameBg->getPositionX() - 120,pServerNameBg->getPositionY()));
<span style="white-space:pre">     </span>//pLabelServer->setColor(ccBLACK);
<span style="white-space:pre">     </span>//addChild(pLabelServer,enZOrderFront);<span style="white-space:pre">     </span>server名称label
<span style="white-space:pre">     </span>//CCString *pStrServerName = dynamic_cast<CCString*>(pDicLang->objectForKey("server_name"));
<span style="white-space:pre">     </span>//char szName[NAME_LEN] = {0};
<span style="white-space:pre">     </span>//sprintf(szName,pStrServerName->m_sString.c_str(),m_nCurrentServerID);
<span style="white-space:pre">     </span>//CCLabelTTF * pLabelServerName = CCLabelTTF::create(szName,"Arial",20);
<span style="white-space:pre">     </span>//CC_BREAK_IF(pLabelServerName==NULL);
<span style="white-space:pre">     </span>//pLabelServerName->setPosition(ccp(pServerNameBg->getPositionX() - 20,pServerNameBg->getPositionY()));
<span style="white-space:pre">     </span>//addChild(pLabelServerName,enZOrderFront,enTagServerNameLabel);<span style="white-space:pre">        </span>切换label
<span style="white-space:pre">     </span>//CCString *pStrChange = dynamic_cast<CCString*>(pDicLang->objectForKey("server_change"));
<span style="white-space:pre">     </span>//CCLabelTTF * pLabelChange = CCLabelTTF::create(pStrChange->m_sString.c_str(),"Arial",15);
<span style="white-space:pre">     </span>//CC_BREAK_IF(pLabelChange==NULL);
<span style="white-space:pre">     </span>//pLabelChange->setPosition(pBtnServerSelect->getPosition());
<span style="white-space:pre">     </span>//addChild(pLabelChange,enZOrderFront);<span style="white-space:pre">     </span>
#if(NF_PLATFORM == NF_PLATFORM_NORMAL)//没接SDK版    这里调用的是前面的公共的  <span style="white-space:pre">       </span>//隐藏SDK登录模块
<span style="white-space:pre">     </span>UILayout* pSdk_Login_Panel = dynamic_cast<UILayout*>(pLoginWidget->getChildByName("MainUi")->getChildByName("Sdk_Login_Panel"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pSdk_Login_Panel==NULL);
<span style="white-space:pre">     </span>pSdk_Login_Panel->setEnabled(false);
<span style="white-space:pre">     </span>pSdk_Login_Panel->setVisible(false);<span style="white-space:pre">     </span>//显示正常登录模块
<span style="white-space:pre">     </span>UILayout* pNormalLogin_Panel = dynamic_cast<UILayout*>(pLoginWidget->getChildByName("MainUi")->getChildByName("NormalLogin_Panel"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pNormalLogin_Panel==NULL);
<span style="white-space:pre">     </span>pNormalLogin_Panel->setEnabled(true);
<span style="white-space:pre">     </span>pNormalLogin_Panel->setVisible(true);<span style="white-space:pre">        </span>//设置注冊button回调
<span style="white-space:pre">     </span>UIButton* pBtn_Register = dynamic_cast<UIButton*>(pLoginWidget->getChildByName("MainUi")->getChildByName("NormalLogin_Panel")->getChildByName("Btn_rg"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pBtn_Register==NULL);
<span style="white-space:pre">     </span>pBtn_Register->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBtnSwitchToRegisterCallBack));<span style="white-space:pre">     </span>//设置登录button回调
<span style="white-space:pre">     </span>UIButton* pBtn_Login = dynamic_cast<UIButton*>(pLoginWidget->getChildByName("MainUi")->getChildByName("NormalLogin_Panel")->getChildByName("Btn_Log"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pBtn_Login==NULL);
<span style="white-space:pre">     </span>pBtn_Login->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBtnLoginCallBack));<span style="white-space:pre">       </span>//设置注冊button回调
<span style="white-space:pre">     </span>UITextField* pAccount_TextField = dynamic_cast<UITextField*>(pLoginWidget->getChildByName("MainUi")->getChildByName("NormalLogin_Panel")->getChildByName("Account_TextField"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pAccount_TextField==NULL);
<span style="white-space:pre">     </span>pAccount_TextField->setTouchSize(CCSizeMake(161,30));
<span style="white-space:pre">     </span>pAccount_TextField->didNotSelectSelf();#else<span style="white-space:pre">     </span>进入游戏button
<span style="white-space:pre">     </span>//CCMenuItemSprite * pBtnEnter = CCMenuItemSprite::create(
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>CCSprite::create("ui/btn_enter_n.png"),
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>CCSprite::create("ui/btn_enter_p.png"),
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>this,
<span style="white-space:pre">     </span>//<span style="white-space:pre">  </span>menu_selector(CNFLoginScene::OnBtnEnterCallBack));
<span style="white-space:pre">     </span>//CC_BREAK_IF(pBtnEnter==NULL);
<span style="white-space:pre">     </span>//pBtnEnter->setPosition(ccp(SCREEN_WIDTH*0.5f,140));
<span style="white-space:pre">     </span>//pMenu->addChild(pBtnEnter,enZOrderFront);<span style="white-space:pre">      </span>进入游戏label
<span style="white-space:pre">     </span>//CCString *pStrStart = dynamic_cast<CCString*>(pDicLang->objectForKey("start"));
<span style="white-space:pre">     </span>//CCLabelTTF * pLabelStart = CCLabelTTF::create(pStrStart->m_sString.c_str(),"Arial",20);
<span style="white-space:pre">     </span>//CC_BREAK_IF(pLabelStart==NULL);
<span style="white-space:pre">     </span>//pLabelStart->setPosition(pBtnEnter->getPosition());
<span style="white-space:pre">     </span>//addChild(pLabelStart,enZOrderFront);<span style="white-space:pre">      </span>//设置进入游戏button回调
<span style="white-space:pre">     </span>UIButton* pBtn_SDK_Start = dynamic_cast<UIButton*>(pLoginWidget->getChildByName("MainUi")->getChildByName("Sdk_Login_Panel")->getChildByName("Btn_SDK_Start"));
<span style="white-space:pre">     </span>CC_BREAK_IF(pBtn_SDK_Start==NULL);
<span style="white-space:pre">     </span>pBtn_SDK_Start->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBtnEnterCallBack));<span style="white-space:pre">   </span>#endif<span style="white-space:pre">      </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::InitSceneUI Error!");
}void CNFLoginScene::OnBtnEnterCallBack( CCObject *pSender, TouchEventType type)
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{<span style="white-space:pre">       </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>人物选择场景
<span style="white-space:pre">             </span>//CCScene * pScene = CNFRoleSelectLayer::scene();
<span style="white-space:pre">             </span>//CC_BREAK_IF(pScene==NULL);
<span style="white-space:pre">             </span>//CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.f,pScene));<span style="white-space:pre">              </span>//人物选择场景
<span style="white-space:pre">             </span>CCScene * pScene = CNFTeamCreateLayer::scene();
<span style="white-space:pre">             </span>CC_BREAK_IF(pScene==NULL);
<span style="white-space:pre">             </span>CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.f,pScene));
<span style="white-space:pre">         </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBtnEnterCallBack Error!");
}void CNFLoginScene::OnBtnServerSelectCallBack( CCObject *pSender, TouchEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{<span style="white-space:pre">       </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>//创建切换server层
<span style="white-space:pre">             </span>CNFServerChangeLayer * pLayer = CNFServerChangeLayer::CreateLayer(m_nCurrentServerID,m_nServerTotalNum);
<span style="white-space:pre">             </span>CC_BREAK_IF(pLayer==NULL);
<span style="white-space:pre">             </span>pLayer->SetMsg(this);
<span style="white-space:pre">             </span>addChild(pLayer,enZOrderFront+100);<span style="white-space:pre">                </span>//创建登录UI层
<span style="white-space:pre">             </span>UILayer* pLoginUiLayer = dynamic_cast<UILayer*>(getChildByTag(enTagStudioLoginLayer));
<span style="white-space:pre">             </span>CC_BREAK_IF(pLoginUiLayer==NULL);<span style="white-space:pre">             </span>UILayout *pNormalLogin = dynamic_cast<UILayout*>(pLoginUiLayer->getWidgetByName("LoginLayer"));
<span style="white-space:pre">             </span>CC_BREAK_IF(pNormalLogin==NULL);<span style="white-space:pre">              </span>//显示正常登录模块
<span style="white-space:pre">             </span>UILayout* pNormalLogin_Panel = dynamic_cast<UILayout*>(pNormalLogin->getChildByName("MainUi")->getChildByName("NormalLogin_Panel"));
<span style="white-space:pre">             </span>CC_BREAK_IF(pNormalLogin_Panel==NULL);
<span style="white-space:pre">             </span>pNormalLogin_Panel->setEnabled(false);
<span style="white-space:pre">             </span>pNormalLogin_Panel->setVisible(false);<span style="white-space:pre">           </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBtnServerSelectCallBack Error!");
}void CNFLoginScene::RecMsg( int nMsgID,void* pInfo,int nSize )
{
<span style="white-space:pre"> </span>switch (nMsgID)
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>case enMsg_ServerSelect:
<span style="white-space:pre">     </span>{
<span style="white-space:pre">         </span>tagServerSelect * pCmd = (tagServerSelect *)pInfo;<span style="white-space:pre">         </span>m_nCurrentServerID = pCmd->nServerID;<span style="white-space:pre">           </span>//创建登录UI层
<span style="white-space:pre">         </span>UILayer* pLoginUiLayer = dynamic_cast<UILayer*>(getChildByTag(enTagStudioLoginLayer));
<span style="white-space:pre">         </span>CC_BREAK_IF(pLoginUiLayer==NULL);<span style="white-space:pre">         </span>UILayout *pLoginWidget = dynamic_cast<UILayout*>(pLoginUiLayer->getWidgetByName("LoginLayer"));
<span style="white-space:pre">         </span>CC_BREAK_IF(pLoginWidget==NULL);<span style="white-space:pre">          </span>//server名称label
<span style="white-space:pre">         </span>CCDictionary *pDicLang = CCDictionary::createWithContentsOfFile("ui_xml/serverselect_xml.xml");
<span style="white-space:pre">         </span>CC_BREAK_IF(pDicLang==NULL);
<span style="white-space:pre">         </span>CCString *pStrServerName = dynamic_cast<CCString*>(pDicLang->objectForKey("server_name"));<span style="white-space:pre">          </span>char szName[NAME_LEN] = {0};
<span style="white-space:pre">         </span>sprintf(szName,pStrServerName->m_sString.c_str(),m_nCurrentServerID);<span style="white-space:pre">            </span>UILabel* pServer_Name_Lable = dynamic_cast<UILabel*>(pLoginWidget->getChildByName("MainUi")->getChildByName("Server_Bg")->getChildByName("Server_Name_Lable"));
<span style="white-space:pre">         </span>CC_BREAK_IF(pServer_Name_Lable==NULL);<span style="white-space:pre">            </span>pServer_Name_Lable->setText(szName);<span style="white-space:pre">         </span>//显示正常登录模块
<span style="white-space:pre">         </span>UILayout* pNormalLogin_Panel = dynamic_cast<UILayout*>(pLoginWidget->getChildByName("MainUi")->getChildByName("NormalLogin_Panel"));
<span style="white-space:pre">         </span>CC_BREAK_IF(pNormalLogin_Panel==NULL);
<span style="white-space:pre">         </span>pNormalLogin_Panel->setEnabled(true);
<span style="white-space:pre">         </span>pNormalLogin_Panel->setVisible(true);<span style="white-space:pre">        </span>}break;
<span style="white-space:pre"> </span>}
}void CNFLoginScene::OnBtnSwitchToRegisterCallBack( CCObject *pSender, TouchEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>//创建登录UI层
<span style="white-space:pre">             </span>UILayer* pRegisterUiLayer = UILayer::create();
<span style="white-space:pre">             </span>CC_BREAK_IF(pRegisterUiLayer==NULL);<span style="white-space:pre">              </span>UILayout *pRegisterWidget = dynamic_cast<UILayout*>(GUIReader::shareReader()->widgetFromJsonFile("NormalRegister.json"));
<span style="white-space:pre">             </span>CC_BREAK_IF(pRegisterWidget==NULL);
<span style="white-space:pre">             </span>pRegisterUiLayer->addWidget(pRegisterWidget);
<span style="white-space:pre">             </span>pRegisterWidget->setName("RegistLayer");
<span style="white-space:pre">             </span>pRegisterWidget->setSize(getContentSize());<span style="white-space:pre">              </span>//设置返回登录button回调
<span style="white-space:pre">             </span>UIButton* pBtn_Back = dynamic_cast<UIButton*>(pRegisterWidget->getChildByName("MainUi")->getChildByName("Btn_Return"));
<span style="white-space:pre">             </span>CC_BREAK_IF(pBtn_Back==NULL);
<span style="white-space:pre">             </span>pBtn_Back->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBackToLoginCallBack));<span style="white-space:pre">             </span>//注冊button回调
<span style="white-space:pre">             </span>UIButton* pBtn_rg = dynamic_cast<UIButton*>(pRegisterWidget->getChildByName("MainUi")->getChildByName("NormalRegister_Panel")->getChildByName("Btn_rg"));
<span style="white-space:pre">             </span>CC_BREAK_IF(pBtn_rg==NULL);
<span style="white-space:pre">             </span>pBtn_rg->addTouchEventListener(this,toucheventselector(CNFLoginScene::OnBtnRegisterCallBack));<span style="white-space:pre">               </span>addChild(pRegisterUiLayer,enZOrderBack,enTagStudioRegisterLayer);<span style="white-space:pre">           </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBtnRegisterCallBack Error!");
}void CNFLoginScene::OnBtnLoginCallBack( CCObject *pSender, TouchEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>//读取角色信息
<span style="white-space:pre">             </span>CNFServerRoleSelectInfoVec RoleSelectInfoVec;
<span style="white-space:pre">             </span>CNFServerDataManager::SharedData()->GetRoleSelectInfo(RoleSelectInfoVec);
<span style="white-space:pre">             </span>CNFServerRoleSelectInfoVec::iterator itRole=RoleSelectInfoVec.begin();<span style="white-space:pre">             </span>for (;itRole!=RoleSelectInfoVec.end();itRole++)
<span style="white-space:pre">             </span>{
<span style="white-space:pre">                 </span>if (itRole->nState>=0)
<span style="white-space:pre">                 </span>{
<span style="white-space:pre">                     </span>//人物选择场景
<span style="white-space:pre">                     </span>CCScene * pScene = CNFRoleSelectLayer::scene();
<span style="white-space:pre">                     </span>CC_BREAK_IF(pScene==NULL);
<span style="white-space:pre">                     </span>CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.f,pScene));<span style="white-space:pre">                        </span>return;
<span style="white-space:pre">                 </span>}
<span style="white-space:pre">             </span>}<span style="white-space:pre">               </span>//人物选择场景
<span style="white-space:pre">             </span>CCScene * pScene = CNFTeamCreateLayer::scene();
<span style="white-space:pre">             </span>CC_BREAK_IF(pScene==NULL);
<span style="white-space:pre">             </span>CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(1.f,pScene));<span style="white-space:pre">            </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBtnLoginCallBack Error!");
}void CNFLoginScene::OnAccountTextFieldEvent( CCObject *pSender, TextFiledEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{<span style="white-space:pre">       </span>return;
<span style="white-space:pre"> </span>} while (false);}/************************************************************************/
/*<span style="white-space:pre">           </span>注冊模块<span style="white-space:pre">                                                    </span>*/
/************************************************************************/void CNFLoginScene::OnBackToLoginCallBack( CCObject *pSender, TouchEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>removeChildByTag(enTagStudioRegisterLayer);<span style="white-space:pre">         </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBackToLoginCallBack Error!");
}void CNFLoginScene::OnBtnRegisterCallBack( CCObject *pSender, TouchEventType type )
{
<span style="white-space:pre"> </span>do
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>switch (type)
<span style="white-space:pre">     </span>{
<span style="white-space:pre">     </span>case TOUCH_EVENT_ENDED:
<span style="white-space:pre">         </span>{<span style="white-space:pre">               </span>CCLog("CNFLoginScene::OnBtnRegisterCallBack");<span style="white-space:pre">            </span>}break;
<span style="white-space:pre">     </span>default:
<span style="white-space:pre">         </span>break;
<span style="white-space:pre">     </span>}<span style="white-space:pre">       </span>return ;
<span style="white-space:pre"> </span>} while (false);
<span style="white-space:pre"> </span>CCLog("Fun CNFLoginScene::OnBtnRegisterCallBack Error!");
}


因为这一款游戏的server代码不公开  没办法分析 但是,现有的点代码已经够我分析

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4645476.html

分析Cocos2d-x横版ACT手游源 1、登录相关推荐

  1. 分析Cocos2d-x横版ACT手游源码 1、公共

    直接上代码 不说什么 这一款源码 凝视及多 PublicDef.h 公共头文件 #define NF_PLATFORM 1 //当前版本号(默觉得普通版)//版本号列表 #define NF_PLAT ...

  2. 手机2d横版游戏服务器位置同步,分析Cocos2d-x横版ACT手游源 2、server场景

    仍然一样 直接在代码 资源 下一个 上传 你可以看到自己NFServerChangeLayer.h /************************************************* ...

  3. cocos2d中getasynckeystate android,分析Cocos2d-x横版ACT手游源代码 4、场景

    .h文件 #ifndef _CM_GAME_SCENE_H_ #define _CM_GAME_SCENE_H_ #include "../publicdef/PublicDef.h&quo ...

  4. 分析Cocos2d-x横版ACT手游源代码 1、登录

    我就自己上游戏代码来 因为 这个游戏源代码 注释十分的 都可以看得懂 /**************************************************************** ...

  5. 分析Cocos2d-x横版ACT手游源代码 1、公共

    直接上代码 不说什么 这一款源代码 注释及多 PublicDef.h 公共头文件 #define NF_PLATFORM 1 //当前版本(默认为普通版)//版本列表 #define NF_PLATF ...

  6. 分析Cocos2d-x横版ACT手游源代码 4、场景

    .h文件 #ifndef _CM_GAME_SCENE_H_ #define _CM_GAME_SCENE_H_#include "../publicdef/PublicDef.h" ...

  7. 手机2d横版游戏服务器位置同步,分析Cocos2d-x横版ACT手游源代码 2、服务器场景...

    还是一样 直接上代码 源代码 下一篇 上传 大家可以自己看 NFServerChangeLayer.h /*********************************************** ...

  8. 分析Cocos2d-x横版ACT手游源代码 3、人物选择界面

    .h文件 #ifndef _NF_ROLE_SELECT_SCENE_HEAD_ #define _NF_ROLE_SELECT_SCENE_HEAD_#include "../public ...

  9. 分析Cocos2d-x横版ACT手游源代码 5、3D世界

    .h文件 #ifndef _NF_3D_WORLD_LAYER_HEAD_ #define _NF_3D_WORLD_LAYER_HEAD_#include "../publicdef/Pu ...

最新文章

  1. 应用session对象实现用户登录
  2. dblink传输clob字段
  3. springmvc的执行流程详解
  4. word文档打印 自动编码_办公室文件打印有哪些技巧 办公室文件打印技巧介绍【图文】...
  5. 解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题...
  6. linux getline参数,[置顶]linux getline()函数
  7. 根据年月查询每月数据并渲染到页面,支持数据的展示与折叠隐藏
  8. JSP电子病历管理系统
  9. gvf snake matlab,GVF Snake 学习的分析总结
  10. 微信小程序页面实现防抖
  11. 使用keras实现YOLO v3报错‘str‘ object has no attribute ‘decode‘
  12. 欢迎西南大学人工智能学院加入RICAI !!
  13. 海尔计算机无法装win7系统,海尔Haier电脑预装win8换win7系统BIOS设置及安装教程
  14. 从虚拟主机迁移数据至VPS/云主机/独立服务器的方法
  15. 纳米结构的仿真和分析
  16. 综合布线中的配线架与理线架
  17. 如何根据自己的需要培养游戏开发技能?又一篇游戏编程入门指南
  18. linux cgi 更改网络配置,惨绝人寰的蓝点linux2.0配置perl cgi-CGI教程,CGI文档
  19. java se中的se指什么,什么是Java SE?
  20. 中文分词jieba python 学习

热门文章

  1. css修改图片形状,css定位图形改(原创)
  2. poll函数_如何理解IO多路复用的三种机制Select,Poll,Epoll?
  3. rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
  4. oracle不弹出另存为,Oracle另存为~
  5. php手势解锁,Appium-实现手势密码登陆
  6. ionic滚动条返回顶部
  7. 华为新系统鸿蒙和ios,鸿蒙系统呼之欲出 华为上线新功能和苹果iOS相比如何
  8. android百度地图根据点路线规划,Android 百度地图路径规划一直都是搜索不到结果...
  9. yum如何卸载mysql_linux下 yum 安装mysql和卸载
  10. c# 数组中的空值_C# 数据操作系列 - 1. SQL基础操作