- 我就自己上游戏代码来 因为 这个游戏源代码 注释十分的 都可以看得懂
- /************************************************************************/
- /* 登录场景 */
- /************************************************************************/
- class CNFLoginScene : public CCLayer,public CMsgReceiver
- {
- protected:
- //标签
- enum
- {
- enTagLoading = 1,enTagServerNameLabel,enTagStudioLoginLayer,//登陆层
- enTagStudioRegisterLayer,//注册层
- };
-
- int m_nLoadRecNum; //资源加载数
- int m_nLoadRecTotalNum; //资源加载总数
-
- int m_nCurrentServerID; //当前服务器ID
- int m_nServerTotalNum; //服务器的总数量
-
- 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(); //在这里加载该图层专用的资源
-
- //---------------登录页按钮回调----------------
- void OnBtnEnterCallBack(CCObject *pSender,TouchEventType type); //开始游戏
- void OnBtnServerSelectCallBack(CCObject *pSender,TouchEventType type); //选择服务器
- void OnBtnSwitchToRegisterCallBack(CCObject *pSender,TouchEventType type); //跳转到注册页
- void OnBtnLoginCallBack(CCObject *pSender,TouchEventType type); //登录
- void OnAccountTextFieldEvent(CCObject *pSender,TextFiledEventType type);
-
-
-
-
- //---------------注册页按钮回调----------------
- 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",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/kulouzhanshi.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/mayi.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/bianyikunchong.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/bubing.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/xiaoyin.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/NewProject.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/minren1.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
-
-
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/kulou_arrow.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
-
-
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/naili.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/NPC_kakaxi.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/portal.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
-
-
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/hited_light.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/public_casting.ExportJson",schedule_selector(CNFLoginScene::OnLoadArmatureData));
- <span style="white-space:pre"> </span>CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("armature/skill_light_1.ExportJson",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,<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,// <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.联网:得到服务器ID */
- <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>//设置切换服务器按钮回调
- <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>////创建服务器名称背景
- <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>创建按钮 */
- <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>////选择服务器按钮
- <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>////服务器label
- <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>////服务器名称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,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(),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>//设置注册按钮回调
- <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>//设置登录按钮回调
- <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>//设置注册按钮回调
- <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>////进入游戏按钮
- <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>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(),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>//设置进入游戏按钮回调
- <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>//创建切换服务器层
- <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,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>//服务器名称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,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>//设置返回登录按钮回调
- <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>//注册按钮回调
- <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,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!");
- }
-
-
- 由于这一款游戏的服务器代码没有公开 没有办法分析 但是现有点代码已经够我分析的了