void CChangeHeadImg::addGridCell(unsigned int uIdx, CGridViewCell* pCell) { CLayout *lay = UICloneMgr::cloneLayout(m_cell); for (int i=1; i<=2; i++) { CCNode *child = lay->getChildByTag(i); lay->removeChild(child); pCell->addChild(child); if (i==1) { if (m_headIconList.at(uIdx)>0) { CImageView* pHead = CImageView::create(CCString::createWithFormat("headImg/%d.png", m_headIconList.at(uIdx))->getCString()); if(!pHead) { pHead = CImageView::create("headImg/null.png"); CCLOG("ERROR_____CChangeHeadImg::addGridCell"); } child->addChild(pHead); NodeFillParent(pHead); } else { UserData *data = DataCenter::sharedData()->getUser()->getUserData(); string fbName = data->getFbId() +".jpg"; string fullName = CCFileUtils::sharedFileUtils()->fullPathForFilename(fbName.c_str()); bool isFileExist = CCFileUtils::sharedFileUtils()->isFileExist(fullName); if(isFileExist) { CCSprite* spr =CCSprite::create(fullName.c_str()); child->addChild(spr); NodeFillParent(spr); } } } else if(i==2) { CImageView* pBtn = (CImageView*)child; pBtn->setTouchEnabled(true); pBtn->setUserData(&m_headIconList.at(uIdx)); pBtn->setOnClickListener(this,ccw_click_selector(CChangeHeadImg::onChangHeadImg)); } } }
void CMainCityUI::onEnter() { BaseLayer::onEnter(); UserData *user = DataCenter::sharedData()->getUser()->getUserData(); //角色信息相对位置处理 CLayout* headPart = (CLayout*)m_ui->findWidgetById("head_part"); headPart->setPosition(m_ui->convertToNodeSpace(ccp(VLEFT+headPart->getContentSize().width/2, VTOP-headPart->getContentSize().height/2))); //显示角色名,等级,体力,金币 CLabel *nameLabel = (CLabel*)headPart->getChildByTag(10); nameLabel->setString(user->getRoleName().c_str()); nameLabel->setColor(RGB_ROLE_COLOR); CLabel *level = (CLabel*)(headPart->findWidgetById("level")); level->setString(CCString::createWithFormat("Lv%d",user->getLevel())->getCString()); CProgressBar *progressBar = (CProgressBar*)(headPart->getChildByTag(11)); progressBar->setMaxValue(user->getNextExp()); progressBar->startProgress(user->getExp(),0.3f); CLabelAtlas *vip_level = (CLabelAtlas*)(headPart->findWidgetById("level_vip")); vip_level->setString(ToString(user->getVip())); if (user->getVip()==0) { vip_level->setVisible(false); CLabelAtlas *vip_font = (CLabelAtlas*)(headPart->findWidgetById("vip_font")); vip_font->setVisible(false); } CImageView *headbg = (CImageView *)(headPart->findWidgetById("headbg")); headbg->setTouchEnabled(true); headbg->setOnClickListener(this, ccw_click_selector(CMainCityUI::onHeadImgBtn)); CButton *button = nullptr; int i = 1; for (; i<=9; ++i) { CCNode *lay = dynamic_cast<CCNode*>( m_ui->getChildByTag(i)); button = dynamic_cast<CButton*>(lay->getChildByTag(i)); // button->setEnabled(false); button->setOnClickListener(this, ccw_click_selector(CMainCityUI::onClickBtn)); button->setSelectedTexture(((CCSprite*)(button->getNormalImage()))->getTexture()); button->getSelectedImage()->setScale(1.1f); m_btnPos[i] = button->getPosition(); } CCSprite* head = (CCSprite*)headPart->getChildByTag(15); if (user->getThumb()>0) { CCTexture2D *texture = CCTextureCache::sharedTextureCache() ->addImage(CCString::createWithFormat("headIcon/%d.png", user->getThumb())->getCString()); if (texture) { head->setTexture(texture); } } else { string fbName = user->getFbId()+".jpg"; string fullName = CCFileUtils::sharedFileUtils()->fullPathForFilename(fbName.c_str()); bool isFileExist = CCFileUtils::sharedFileUtils()->isFileExist(fullName); if(isFileExist) { CCSprite *headBg = (CCSprite *)(headPart->findWidgetById("headbg")); CCSprite *sp = CCSprite::create(fbName.c_str()); CCSprite* spr = MakeFaceBookHeadToCircle(sp); spr->setPosition(headBg->getPosition()); headPart->removeChild(head); spr->setTag(15); headPart->addChild(spr); } else { HttpLoadImage::getInstance()->bindUiTarget(this); CCString *imgUrl = CCString::createWithFormat(FACEBOOKIMG_106,user->getFbId().c_str()); HttpLoadImage::getInstance()->requestUrlImage(imgUrl->getCString(),user->getFbId().c_str()); } } CImageView* vip = (CImageView*)headPart->findWidgetById("vip"); vip->setTouchEnabled(true); vip->setOnClickListener(this,ccw_click_selector(CMainCityUI::onVip)); //添加签到,充值等其他入口 CAccessLayer* pAccess = CAccessLayer::create(); this->addChild(pAccess, 99); CSceneManager::sharedSceneManager()->addMsgObserver(UPDATE_HERO,this,GameMsghandler_selector(CMainCityUI::updateRoleProperty)); CSceneManager::sharedSceneManager()->addMsgObserver(TASK_NOTICE,this,GameMsghandler_selector(CMainCityUI::updateTaskNotice)); CSceneManager::sharedSceneManager()->addMsgObserver(MAIL_NOTICE,this,GameMsghandler_selector(CMainCityUI::updateMailNotice)); CSceneManager::sharedSceneManager()->addMsgObserver(UPDATE_FUNCTIONOPEN,this,GameMsghandler_selector(CMainCityUI::updateFuctionOpen)); CSceneManager::sharedSceneManager()->addMsgObserver(UPDATE_GAMETIP,this,GameMsghandler_selector(CMainCityUI::updateGameTip)); CSceneManager::sharedSceneManager()->addMsgObserver(SHOW_HEAD,this,GameMsghandler_selector(CMainCityUI::showHead)); CCSprite *red = (CCSprite*)(m_ui->findWidgetById("redPoint")); CCSprite *mailPoint = (CCSprite*)(m_ui->findWidgetById("mailPoint")); if (user->getRoleAction()<user->getActionLimit()) { this->schedule(schedule_selector(CMainCityUI::updateActionTime),user->getInterval()*60); } GetTcpNet->registerMsgHandler(FriendReqNumMsg,this,CMsgHandler_selector(CMainCityUI::processNetMsg)); GetTcpNet->registerMsgHandler(CBExchangeMsg,this,CMsgHandler_selector(CMainCityUI::exchangeMsg)); //正在引导,不自动弹窗 if(user->getNewStep()==2||user->getNewStep()==17/*CGuideManager::getInstance()->getIsRunGuide()*/) { DataCenter::sharedData()->setCityActionType(CA_None); } else if(user->getNewStep()<=0 || user->getNewStep()>=100) { //自动弹签到 runAction(CCSequence::createWithTwoActions(CCDelayTime::create(0.7f), CCCallFunc::create(this, callfunc_selector(CMainCityUI::autoShowSign)))); } switch (DataCenter::sharedData()->getCityActionType()) { case CA_Levelup: { CButton *btn = (CButton*)m_ui->getChildByTag(HeroInfo_Btn); btn->runAction(CCSequence::create(CCDelayTime::create(0.6f), CCCallFuncN::create(this, callfuncN_selector(CMainCityUI::onTimeWaitCityAction)), NULL)); DataCenter::sharedData()->setCityActionType(CA_None); } break; case CA_GoToChapater: { CButton *btn = (CButton*)m_ui->getChildByTag(Battle_Btn); btn->runAction(CCSequence::create(CCDelayTime::create(0.2f), CCCallFuncN::create(this, callfuncN_selector(CMainCityUI::onTimeWaitCityAction)), NULL)); m_bShowChapterFlag = true; DataCenter::sharedData()->setCityActionType(CA_None); } break; case CA_GoToStage: { this->runAction(CCSequence::create(CCDelayTime::create(0.8f), CCCallFunc::create(this, callfunc_selector(CMainCityUI::runTollgatepreviewCallBack)), NULL)); DataCenter::sharedData()->setCityActionType(CA_None); }break; default: break; } //绑定场景隐藏和显示的消息 NOTIFICATION->addObserver(this, callfuncO_selector(CMainCityUI::show), SHOW_MAIN_SCENE, nullptr); NOTIFICATION->addObserver(this, callfuncO_selector(CMainCityUI::hide), HIDE_MAIN_SCENE, nullptr); NOTIFICATION->addObserver(this, callfuncO_selector(CMainCityUI::checkShowActivity), "CheckShowActivity", nullptr); CCNode *lay = dynamic_cast<CCNode*>( m_ui->getChildByTag(6)); button = dynamic_cast<CButton*>(lay->getChildByTag(6)); CCAnimation *batAnim = AnimationManager::sharedAction()->getAnimation("9015"); batAnim->setDelayPerUnit(0.1f); CCSprite *batLight = createAnimationSprite("skill/9015.png",button->getPosition(),batAnim,true); batLight->setScale(1.4f); m_ui->addChild(batLight); showNoticeTip(CTaskControl::getInstance()->getGameTips()); // CCSprite *spr = CCSprite::create("headImg/506.png"); // spr->setScale(1.2f); // CCSprite *sp = maskedSprite(spr); // CCSprite *headBg = (CCSprite *)(headPart->findWidgetById("headbg")); // sp->setPosition(headBg->getPosition()); // headPart->addChild(sp); //在线礼包 int iNexTime = user->getOnlinePrizeTime(); if (iNexTime!=-1) { if (m_pTimeGift==nullptr) { m_pTimeGift = CTimeGift::create(); m_pTimeGift->setTouchPriority(-3); this->addChild(m_pTimeGift, 2); } m_pTimeGift->setTime(iNexTime); } }
void CMainCityUI::updateRoleProperty(const TMessage& tMsg) { UserData *user = DataCenter::sharedData()->getUser()->getUserData(); CLayout* headPart = (CLayout*)m_ui->findWidgetById("head_part"); CLabel *nameLabel = (CLabel*)headPart->getChildByTag(10); nameLabel->setString(user->getRoleName().c_str()); CLabel *level = (CLabel*)(headPart->findWidgetById("level")); level->setString(CCString::createWithFormat("Lv%d",user->getLevel())->getCString()); CLabelAtlas *vip = (CLabelAtlas*)(headPart->findWidgetById("level_vip")); vip->setString(ToString(user->getVip())); if (user->getVip()==0) { vip->setVisible(false); CLabelAtlas *vip_font = (CLabelAtlas*)(headPart->findWidgetById("vip_font")); vip_font->setVisible(false); } CCSprite* head = (CCSprite*)headPart->getChildByTag(15); if (user->getThumb()>0) { // CCTexture2D *texture = CCTextureCache::sharedTextureCache() // ->addImage(CCString::createWithFormat("headIcon/%d.png", user->getThumb())->getCString()); // if (texture) // { // head->setTexture(texture); // } // head->setFlipY(false); CCSprite *headBg = (CCSprite *)(headPart->findWidgetById("headbg")); CCString *strnName = CCString::createWithFormat("headIcon/%d.png", user->getThumb()); CCSprite *sp = CCSprite::create(strnName->getCString()); sp->setPosition(ccpAdd(headBg->getPosition(),ccp(0,10))); sp->setScale(0.75f); headPart->removeChild(head); sp->setTag(15); headPart->addChild(sp); } else { string fbName = user->getFbId()+".jpg"; string fullName = CCFileUtils::sharedFileUtils()->fullPathForFilename(fbName.c_str()); bool isFileExist = CCFileUtils::sharedFileUtils()->isFileExist(fullName); if(isFileExist) { CCSprite *headBg = (CCSprite *)(headPart->findWidgetById("headbg")); CCSprite *sp = CCSprite::create(fullName.c_str()); CCSprite* spr = MakeFaceBookHeadToCircle(sp); spr->setPosition(headBg->getPosition()); headPart->removeChild(head); spr->setTag(15); headPart->addChild(spr); } else { HttpLoadImage::getInstance()->bindUiTarget(this); CCString *imgUrl = CCString::createWithFormat(FACEBOOKIMG_106,user->getFbId().c_str()); HttpLoadImage::getInstance()->requestUrlImage(imgUrl->getCString(),user->getFbId().c_str()); } } CProgressBar *progressBar = (CProgressBar*)(headPart->getChildByTag(11)); progressBar->setMaxValue(user->getNextExp()); progressBar->startProgress(user->getExp(),0.3f); }