void taskLayer::testMessage(Ref * message) { BaseSprite * sprite = dynamic_cast<BaseSprite *> (message); std::string name = sprite->getM_name(); ValueMap taskMap = DataXML::getInstence()->getTask(); for (auto taskName : taskMap) { std::string taskKey = taskName.first.c_str(); if (name == taskKey) { for(auto v :allCondition){ std::string key = v.first.c_str(); if (name == key && allCondition.at(name).asInt() < taskMap.at(name).asInt()) { //增加吃到道具数量达到任务要求后的处理!!!!!!!!!!!!!!!!!!!!别忘了 int number = allCondition.at(name).asInt() + 1; allCondition[key] = number; //更改Label显示,更换黄匡 changeDisplay(name); } } } } }
void GongJiang_EquipSelect::select() { CCTableViewCell* lastCell = mTableView->cellAtIndex(0); if (lastCell) { BaseSprite* bg = (BaseSprite*)lastCell->getChildByTag(TAG_EquipBaseBody_TABLE_ITEM); bool isFirstIn = false; // 先不管是否点击了图片 if(GameGuideManager::getManager()->isGuideNow(GameGuideManager::GID_GongJiang_QiangHua)) { //GameGuideManager::getManager()->setOneGuideStart(GameGuideManager::GID_GongJiang_SelectZhuangBei); //GameGuideManager::getManager()->setOneGuideEnd(GameGuideManager::GID_GongJiang_SelectZhuangBei); if (bg) { CCPoint pos = bg->getParent()->convertToWorldSpace(bg->getPosition()); GuideLayerBase *guideLayer1 = new GuideLayer_SimpleLayer; guideLayer1->init(bg->getContentSize(), ccp(pos.x,pos.y + bg->getContentSize().height / 2) , LFStrings::getValue("qiangxuanzezhuangbei"), NULL, false); //((GuideLayer_SimpleLayer*)guideLayer1)->setCallBack(this,SEL_CallFunc(&JiuGongGeLayer::GuiDeLayerCallBack)); CCDirector::sharedDirector()->getRunningScene()->addChild(guideLayer1, 128); } } } }
BaseSprite* BaseSprite::create(string fileName) { BaseSprite* s = new BaseSprite(); s->initWithFile(fileName.c_str()); s->autorelease(); return s; }
BaseSprite* BaseSprite::create() { BaseSprite* s = new BaseSprite(); s->init(); s->autorelease(); return s; }
BaseSprite * BaseSprite::create( const char *fileName ) { BaseSprite *bs = new BaseSprite(); if(bs&&bs->initWithFile(fileName)) { bs->autorelease(); return bs; } return NULL; }
void UIButton::correctSize() { Rect32 rect; BaseSprite *img = nullptr; if (_image) { img = _image; } else if (_imageDisable) { img = _imageDisable; } else if (_imageHover) { img = _imageHover; } else if (_imagePress) { img = _imagePress; } else if (_imageFocus) { img = _imageFocus; } if (_width <= 0) { if (img) { img->getBoundingRect(&rect, 0, 0); _width = rect.right - rect.left; } else { _width = 100; } } if (_height <= 0) { if (img) { img->getBoundingRect(&rect, 0, 0); _height = rect.bottom - rect.top; } } if (_text) { int textHeight; if (_font) { textHeight = _font->getTextHeight((byte *)_text, _width); } else { textHeight = _gameRef->getSystemFont()->getTextHeight((byte *)_text, _width); } if (textHeight > _height) { _height = textHeight; } } if (_height <= 0) { _height = 100; } if (_back) { _back->correctSize(&_width, &_height); } }
void SpriteSystem::itemCallback(Ref* pSender, int Num) { m_itItem[Num]->setEnabled(false); CCLOG("Num%d", Num); BaseSprite* hero = m_vHeros.at(Num); hero->setCurPower(0); hero->startAction(SPRITESTATE_MAGIC); //释放大招 Magic* bigMagic = Magic::create(m_magConf[hero->getSpConf().magicGroup.magic2]); bigMagic->startMagic(hero, hero->getMagicTargetSP(), 0); this->addChild(bigMagic,2); // this->startMagic(m_bsSp[Num], m_bsSp[Num]->getSpConf().magicGroup.magic2, 3); }
BaseSprite* BaseSprite::create() { BaseSprite* pRet = new(std::nothrow) BaseSprite(); if (pRet && pRet->init()) { pRet->autorelease(); return pRet; } else { delete pRet; pRet = nullptr; return nullptr; } }
void MainFooterLayer::messageMoveDone(CCNode* pInfoStr) { BaseSprite *messageBar = (BaseSprite*)this->getChildByTag(Tag_MessageInfoBar); if (messageBar) { // NetLabelTTF* pLable = (NetLabelTTF*)messageBar->getChildByTag(Tag_MessageTipStr); // if (!pLable) // { if (SystemPushMessagePool::getPool()->getCurMsgCount() < 1) { messageBar->removeFromParent(); } // } } }
bool AdSentence::update(TDirection dir) { if (!_talkDef) { return STATUS_OK; } uint32 currentTime; // if sound is available, synchronize with sound, otherwise use timer /* if (_sound) CurrentTime = _sound->GetPositionTime(); else CurrentTime = _gameRef->_timer - _startTime; */ currentTime = _gameRef->_timer - _startTime; bool talkNodeFound = false; for (uint32 i = 0; i < _talkDef->_nodes.size(); i++) { if (_talkDef->_nodes[i]->isInTimeInterval(currentTime, dir)) { talkNodeFound = true; BaseSprite *newSprite = _talkDef->_nodes[i]->getSprite(dir); if (newSprite != _currentSprite) { newSprite->reset(); } _currentSprite = newSprite; if (!_talkDef->_nodes[i]->_playToEnd) { break; } } } // no talk node, try to use default sprite instead (if any) if (!talkNodeFound) { BaseSprite *newSprite = _talkDef->getDefaultSprite(dir); if (newSprite) { if (newSprite != _currentSprite) { newSprite->reset(); } _currentSprite = newSprite; } else { _currentSprite = NULL; } } return STATUS_OK; }
bool AdEntity::setSprite(const char *filename) { if (_currentSprite == _sprite) { _currentSprite = nullptr; } delete _sprite; _sprite = nullptr; BaseSprite *spr = new BaseSprite(_gameRef, this); if (!spr || DID_FAIL(spr->loadFile(filename))) { delete _sprite; _sprite = nullptr; return STATUS_FAILED; } else { _sprite = spr; _currentSprite = _sprite; return STATUS_OK; } }
PointerList<BaseSprite*>* Spritesheet::ExtractSprites() { assert(this->ConfigFilePath != ""); assert(this->SpritesheetFilePath != ""); assert(this->Graphics != NULL); PointerList<BaseSprite*>* spriteList = new PointerList<BaseSprite*>(); XmlReader configReader = XmlReader(); configReader.LoadFile(this->ConfigFilePath); PointerList<XmlNode*>* nodes = configReader.FindNodes("sprite"); auto it = nodes->GetContainer()->begin(); while (it != nodes->GetContainer()->end()) { XmlNode* node = (*it); std::string spriteName = node->GetAttribute("n").AttributeValue; int spriteSubTextureX = std::atoi(node->GetAttribute("x").AttributeValue); int spriteSubTextureY = std::atoi(node->GetAttribute("y").AttributeValue); int spriteSubTextureW = std::atoi(node->GetAttribute("w").AttributeValue); int spriteSubTextureH = std::atoi(node->GetAttribute("h").AttributeValue); FRectangle subRec = FRectangle(spriteSubTextureX, spriteSubTextureY, spriteSubTextureW, spriteSubTextureH); BaseSprite* newSprite = Graphics->CreateSpriteInstance(); newSprite->Ident = spriteName; BaseTexture* newSpriteTexture = spritesheetTexture->GetSubTexture(subRec); newSprite->SetTexture(newSpriteTexture); newSpriteTexture->TextureName = spriteName; newSpriteTexture->TexturePath = this->SpritesheetFilePath; spriteList->Add(newSprite); it++; } nodes->Release(); delete(nodes); return spriteList; }
void ChuanqiduanzaoItem::rsp_DuanZao(CCObject *msg_f) { CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, MSG_DuanzaoRsp_F); GameDirector::getDirector()->hideWaiting(); Flat_DuanzaoRsp *data = (Flat_DuanzaoRsp*)((Flat_MSG_Rsp*)msg_f)->getData(); if (data->err_code != Success) { if (data->err_code == CEC_NoMoreFreeSpaceToStoreEquip) { EquipBagNotEnoughDialog *layer = new EquipBagNotEnoughDialog; layer->showGoToFenJieDialog(); } else { MessageDisplay *layer = MessageDisplay::create(CmdHelper::getHelper()->getMessage(data->err_code)); CCDirector::sharedDirector()->getRunningScene()->addChild(layer); } return; } //刷新头部金币 { int gold = 0; WuPin* wp = WuPinManager::getManager()->getWuPin(ItemsType_Gold); if (wp != NULL) { gold = wp->getCount(); } BaseSprite* header = MainLayerBase::getCurrentMainBase()->getHeader()->getHeaderContent(); CCLabelTTF* lable = (CCLabelTTF*)header->getChildByTag(STORE_FRAM_TAG_HEAD_JINBI); char str[64]; sprintf(str, "%d", gold); lable->setString(str); } ShenBingShangDianDuanZao *layer = new ShenBingShangDianDuanZao(data->equips); CCDirector::sharedDirector()->getRunningScene()->addChild(layer, 1000); layer->release(); }
// 06-15 11:43:50.179: D/cocos2d-x debug info(1716): Get data from file(tabulation_armor_helmet_1.png) failed! MainLayerZhuangBeiBaseBody::MainLayerZhuangBeiBaseBody(ZhuangbeiXiangQingFrom from) { mFrom = from; mTableView = CCTableView::create(this, CCSizeMake(624,678)); addChild(mTableView); mTableView->setDirection(kCCScrollViewDirectionVertical); mTableView->setVerticalFillOrder(kCCTableViewFillTopDown); mTableView->setPosition(ccp(8,74)); mTableView->setDelegate(this); mFooterForPop = NULL; mClickedIdx = 0; BaseSprite *bar = BaseSprite::create("mianban_zhuangbeishuliang_bg.png"); addChild(bar, 10); bar->setPosition(ccp(320, 43)); CCString temp; temp.initWithFormat("%s: %d/%u", LFStrings::getValue("zhuangbei").c_str() , MyselfManager::getManager()->getAllEquipmentsWithOutEquipedOrChuanQi().size(), MAX_COUNTS_IN_KNAPSACK); m_zbTotalLabel = CCLabelTTF::create(temp.getCString(), fontStr_kaiti, 20); m_zbTotalLabel->setAnchorPoint(ccp(1, 0.5)); m_zbTotalLabel->setPosition(ccp(bar->getContentSize().width-20, bar->getContentSize().height/2)); bar->addChild(m_zbTotalLabel); //分解提示 m_zbFenJieTiShi = CCLabelTTF::create(LFStrings::getValue("ZBCountMax_GanKuaiQuFenJieBa").c_str(), fontStr_kaiti, 20); bar->addChild(m_zbFenJieTiShi); m_zbFenJieTiShi->setPosition(ccp(bar->getContentSize().width/2, bar->getContentSize().height/2)); m_zbFenJieTiShi->setColor(fonColor_JingGao); m_zbFenJieTiShi->setVisible(false); m_zbFenJieMenu = CCMenu::create(); bar->addChild(m_zbFenJieMenu); m_zbFenJieMenu->setPosition(ccp(0,0)); m_zbFenJieMenu->setVisible(false); CCMenuItemImage *fenjie = CCMenuItemImage::create( "mianban_zhuangbei_qufenjie.png", "mianban_zhuangbei_qufenjie_select.png", this, menu_selector(MainLayerZhuangBeiBaseBody::menuitemClicked_GotoFenJie)); m_zbFenJieMenu->addChild(fenjie); fenjie->setPosition(ccp(m_zbTotalLabel->getPositionX()-fenjie->getContentSize().width/2, m_zbTotalLabel->getPositionY())); if (mFrom != From_ZhuangBeiList) { m_zbFenJieMenu->removeFromParent(); } }
void MainLayerHerosBaseBody::menuItemClicked_choseHero(CCObject* pSender) { BaseSprite* bg = (BaseSprite*)((CCMenuItemImage*)pSender)->getParent()->getParent(); CCTableViewCell* cell = (CCTableViewCell*)bg->getParent(); int idx = cell->getIdx(); if(mChoseHeroState[idx]>=1 && mChoseHeroState[idx]<=4) { mChoseHeroState[idx] = 0; --mChoseNum; // mTableView->reloadData(); for(int i=0; i!=mHerosVec.size(); ++i) mTableView->updateCellAtIndex(i); } else if(mChoseHeroState[idx] == 0 && mChoseNum<3) { int temp[4] = {false}; int chessboard; for(int i=0; i!=mChoseHeroState.size(); ++i) if(mChoseHeroState[i]>=1 && mChoseHeroState[i]<=4) temp[mChoseHeroState[i]-1] = true; for(int i=0; i!=4; ++i) if(! temp[i]) { if(MyselfManager::getManager()->getMyZhuJueData()->getChessBoardPos() == i+1) continue; chessboard = i+1; break; } mChoseHeroState[idx] = chessboard; ++mChoseNum; // mTableView->reloadData(); for(int i=0; i!=mHerosVec.size(); ++i) mTableView->updateCellAtIndex(i); } }
void MainFooterLayer::getNewMessageInfo(CCNode* pInfoStr) { if (pInfoStr) { pInfoStr->removeFromParent(); } BaseSprite *messageBar = (BaseSprite*)this->getChildByTag(Tag_MessageInfoBar); if (messageBar) { NetLabelTTF* pLable = (NetLabelTTF*)messageBar->getChildByTag(Tag_MessageTipStr); if (!pLable) { if (SystemPushMessagePool::getPool()->getCurMsgCount() < 1) { messageBar->removeFromParent(); } else { MarqueeMessage info; if (SystemPushMessagePool::getPool()->getOneMessage(info)) { showMessageBar(info); } } } } else { MarqueeMessage info; // info.uid=186384394; // info.type = 5; // info.count=1; // sprintf(info.subject, "%s", "assdf"); if (SystemPushMessagePool::getPool()->getOneMessage(info)) { showMessageBar(info); } } }
void ClassicScene::initBg() { CCSprite *bg = SPRITE(images/stage_classic/stage_bg_RETINA.png); bg->setPosition(VisibleRect::center()); addChild(bg); CCSprite *bgWood = SPRITE(images/stage_classic/stage_tree_RETINA.png); CCSprite *floor = SPRITE(images/stage_classic/stage_tree_grass_RETINA.png); floor->setPosition(ccp(VisibleRect::center().x,44)); bgWood->setPosition(ccp(VisibleRect::center().x,-400)); CCActionInterval *moveAct = CCMoveTo::create(0.6f,ccp(VisibleRect::center().x,400)); CCCallFunc *showBirdLayerHandler = CCCallFunc::create(this,callfunc_selector(ClassicScene::showBirdLayer)); bgWood->runAction(CCSequence::create(moveAct,showBirdLayerHandler,NULL)); addChild(bgWood); birdLayer = BirdLayer::create(); birdLayer->setPosition(ccp(VisibleRect::center().x,-400)); addChild(birdLayer); addChild(floor); BaseSprite *pauseBtn = BaseSprite::createFromFile("images/stage_classic/stage_dimm2_RETINA.png","sounds/SFX/pausebuttonclick.mp3"); pauseBtn->setPosition(ccp(50,VisibleRect::top().y-50)); pauseBtn->setOpacity(0); pauseBtn->setBeganTarget(this,menu_selector(ClassicScene::pauseGame)); addChild(pauseBtn); }
void GongJiang_EquipSelect::tableCellTouched(CCTableView* table, CCTableViewCell* cell) { BaseSprite* bg = (BaseSprite*)cell->getChildByTag(TAG_EquipBaseBody_TABLE_ITEM); // 先不管是否点击了图片 // 先移除上一个点击的 if (selectedIndex >= 0) { CCTableViewCell* lastCell = table->cellAtIndex(selectedIndex); if (lastCell) { lastCell->getChildByTag(TAG_EquipBaseBody_TABLE_ITEM)->removeChildByTag(TAG_BG_MASK_PIC); } } // 再次选自己,代表取消 if (selectedIndex == cell->getIdx()) { selectedIndex = -1; } else { selectedIndex = cell->getIdx(); BaseSprite* addEff = BaseSprite::create("mianban_zhuangbei_xiangxi_select.png"); bg->addChild(addEff,10,TAG_BG_MASK_PIC); addEff->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2)); } if(selectedIndex < 0) { mMenuItemMakeSure->setEnabled(false); } else { mMenuItemMakeSure->setEnabled(true); } bool isFirstIn = false; // 先不管是否点击了图片 if(GameGuideManager::getManager()->isGuideNow(GameGuideManager::GID_GongJiang_QiangHua)) { //GameGuideManager::getManager()->setOneGuideStart(GameGuideManager::GID_GongJiang_QhHt); GameGuideManager::getManager()->setOneGuideEnd(GameGuideManager::GID_GongJiang_QiangHua); if (mMenuItemMakeSure) { CCPoint pos = mMenuItemMakeSure->getParent()->convertToWorldSpace(mMenuItemMakeSure->getPosition()); GuideLayerBase *guideLayer1 = new GuideLayer_SimpleLayer; guideLayer1->init(mMenuItemMakeSure->getContentSize(),pos , LFStrings::getValue("DingjiQueding"), NULL, false); //((GuideLayer_SimpleLayer*)guideLayer1)->setCallBack(this,SEL_CallFunc(&JiuGongGeLayer::GuiDeLayerCallBack)); CCDirector::sharedDirector()->getRunningScene()->addChild(guideLayer1, 128); } } }
BaseSprite* GongJiang_EquipSelect::getItemContentByIndex(unsigned int index) { BaseSprite* ret = MainLayerZhuangBeiBaseBody::getItemContentByIndex(index); if (selectedIndex == index) { BaseSprite* addEff = BaseSprite::create("mianban_zhuangbei_xiangxi_select.png"); ret->addChild(addEff,10,TAG_BG_MASK_PIC); addEff->setPosition(ccp(ret->getContentSize().width/2,ret->getContentSize().height/2)); } return ret; }
CCTableViewCell* TanSuoLayer::tableCellAtIndex(CCTableView *table, unsigned int idx) { CCTableViewCell *cell = table->dequeueCell(); if (cell != NULL) { cell->removeAllChildren(); } else { cell = new CCTableViewCell(); cell->autorelease(); } if (table->getParent() != NULL) { CCSize cellSize = tableCellSizeForIndex(table, idx); Profession profId = mHeros.at(idx)->getCurrentProperty().profession; //head Profession 1-10 BaseSprite *headImg = BaseSprite::create(ImageManager::getManager()->getImageData_ProfessionHead(profId).getCurrentImageFile()); cell->addChild(headImg); headImg->setPosition(ccp(cellSize.width/2, 92)); //menu FXScrollMenu *menu = FXScrollMenu::create( table->getParent()->convertToWorldSpace(table->getPosition()), table->getViewSize()); cell->addChild(menu, 1); menu->setPosition(ccp(0,0)); CCMenuItemImage *item = CCMenuItemImage::create( "renxing_renwu_touxiang.png", "renxing_renwu_touxiang_select.png", "renxing_renwu_touxiang_select.png", this, menu_selector(TanSuoLayer::menuItemClicked_JieFenHeroSelect)); menu->addChild(item, 0, profId); m_lMenuItemList.push_back(item); item->setPosition(headImg->getPosition()); //name CCLabelTTF *nameLabel = CCLabelTTF::create(BaseActorPropertyParser::getParser()->getExtraProerty(profId).nameInChinese.c_str() , fontStr_kaiti, m_nFontSize); cell->addChild(nameLabel); nameLabel->setPosition(ccp(headImg->getPositionX() , headImg->getPositionY()-headImg->getContentSize().height/2-nameLabel->getContentSize().height/2)); nameLabel->setColor(ccc3(195, 145, 96)); } return cell; }
void MainLayerHerosBaseBody::menuItemClicked_jiesuoHero(CCObject *pSender) { int idx = ((CCMenuItemImage*)pSender)->getTag(); char buf[128]; if (mHerosVec.at(idx)->canUnlock()) { mJieSuo_HeroId = mHerosVec.at(idx)->getId(); //弹框背景 BaseSprite* dialog = BaseSprite::create("shangpin_goumai_tishikuang.png"); dialog->setPosition(ccp(mWinSize.width/2, mWinSize.height/2)); dialog->setTag(Tag_Window_JieSuo); //label CCString temp; //解锁此助手需要花费\n%d荣誉值\n(当前荣誉:%d) temp.initWithFormat(LFStrings::getValue("JieSuoZhuShouXuYao_RongYuZhi").c_str(), CS::AssistantUnLockNeedHonor(MyselfManager::getManager()->getTeamActors_ZhenShen(Actor_All, LF_Locked).size()), MyselfManager::getManager()->getEdiableArenaTeamBasicInfo()->jifen); CCLabelTTF *label = CCLabelTTF::create(temp.getCString(), fontStr_kaiti, 30, CCSize(400, 0), kCCTextAlignmentCenter); dialog->addChild(label); label->setAnchorPoint(ccp(0.5, 1)); label->setPosition(ccp(dialog->getContentSize().width/2, 278)); //按键 CCMenu* menu; { CCMenuItemImage* menuItemMakeSure = CCMenuItemImage::create( "shangpin_goumai_queren.png", "shangpin_goumai_queren_select.png", this,SEL_MenuHandler(&MainLayerHerosBaseBody::menuItemClicked_LockHero_OkCancel)); CCMenuItemImage* menuItemCacel = CCMenuItemImage::create( "shangpin_goumai_quxiao.png", "shangpin_goumai_quxiao_select.png", this,SEL_MenuHandler(&MainLayerHerosBaseBody::menuItemClicked_LockHero_OkCancel)); menu = CCMenu::create(menuItemMakeSure, menuItemCacel, NULL); menu->setPosition(CCPointZero); menuItemMakeSure->setTag(10); menuItemCacel->setTag(20); menuItemMakeSure->setPosition(ccp(dialog->getContentSize().width/3*2,70)); menuItemCacel->setPosition(ccp(dialog->getContentSize().width/3, 70)); } //弹框 { LFAlert* lfAlert = new LFAlert(); lfAlert->setTag(Tag_Window_JieSuo); lfAlert->setBaseContainer(dialog,menu); CCDirector::sharedDirector()->getRunningScene()->addChild(lfAlert, 128, Tag_Window_JieSuo); lfAlert->release(); } } else { sprintf(buf, LFStrings::getValue("XuYaoZhuJueDengJi_jiesuo").c_str(), 15); MessageDisplay *layer = MessageDisplay::create(buf); CCDirector::sharedDirector()->getRunningScene()->addChild(layer); return; } }
BaseSprite* MainLayerHerosBaseBody::getItemContentByIndex(unsigned int index) { BaseSprite* bg = BaseSprite::create("duiwu_yingxiong_bg.png"); bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2)); //图片 { ImageData data = ImageManager::getManager()->getImageData_ProfessionHead((Profession)mHerosVec[index]->getActorType()); CCLOG("----------------->%s",data.getCurrentImageFile().c_str()); BaseSprite *sprite = BaseSprite::create( data.getCurrentImageFile()); BaseSprite *sprite2 = BaseSprite::create( data.getCurrentImageFile()); BaseSprite *sprite3 = BaseSprite::create( data.getCurrentImageFile()); CCMenuItemSprite* heroItem = CCMenuItemSprite::create(sprite, sprite2, sprite3, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_heroImg)); CCMenu* menu = CCMenu::create(heroItem, NULL); bg->addChild(menu, 0, TAG_BaseBody_TABLE_HERO_IMG); heroItem->setPosition(ccp(74, bg->getContentSize().height/2)); menu->setPosition(CCPointZero); BaseSprite *biankuang = BaseSprite::create("renxing_renwu_touxiang_select.png"); bg->addChild(biankuang, 1); biankuang->setPosition(heroItem->getPosition()); BaseSprite *item = NULL; Profession iType = (Profession)mHerosVec[index]->getActorType(); if (iType == Profession_Yemanren) { item = BaseSprite::create("touxiang_jiaobiao_3.png"); } else if (iType == Profession_Chike) { item = BaseSprite::create("touxiang_jiaobiao_2.png"); } else if (iType == Profession_Fashi) { item = BaseSprite::create("touxiang_jiaobiao_1.png"); } else if (iType == Profession_Qishi) { item = BaseSprite::create("touxiang_jiaobiao_3.png"); } else if (iType == Profession_ShenJianShou) { item = BaseSprite::create("touxiang_jiaobiao_4.png"); } else if (iType == Profession_MiShu) { item = BaseSprite::create("touxiang_jiaobiao_1.png"); } else if (iType == Profession_WuSeng) { item = BaseSprite::create("touxiang_jiaobiao_5.png"); } else if (iType == Profession_YouXia) { item = BaseSprite::create("touxiang_jiaobiao_2.png"); } else if (iType == Profession_LieShou) { item = BaseSprite::create("touxiang_jiaobiao_4.png"); } else if (iType == Profession_WuShi) { item = BaseSprite::create("touxiang_jiaobiao_6.png"); } if (item) { item->setAnchorPoint(ccp(1, 0)); biankuang->addChild(item); item->setPosition(ccp(biankuang->getContentSize().width, 0)); } } //name HeroFixedPro info = BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mHerosVec[index]->getActorType()); LF::lable(bg, info.nameInChinese,ccp(140, 106),22,fontStr_kaiti)->setTag(TAG_BaseBody_LABLE_NAME); // 英雄介绍 { Profession profId = mHerosVec[index]->getActorType(); CCLabelTTF *directionLabel = CCLabelTTF::create(getHeroDirectionByProfessionId(profId).c_str(), fontStr_kaiti, 20, CCSize(380, 0), kCCTextAlignmentLeft); bg->addChild(directionLabel, 1, Tag_Label_HeroDirection); directionLabel->setColor(ccc3(165, 125, 76)); directionLabel->setAnchorPoint(ccp(0, 1)); directionLabel->setPosition(ccp(140, 94)); } if (mFlag == 1) { CCMenuItemImage* chose = CCMenuItemImage::create( "duiwu_yingxiong_weixuanzhong.png" , "duiwu_yingxiong_weixuanzhong.png" , this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero)); chose->setPosition(558, 83); CCMenu* menu = CCMenu::create(chose, NULL); menu->setPosition(CCPointZero); bg->addChild(menu, 0, TAG_Menu); CCSprite* unlock = CCSprite::create("duiwu_yingxiong_unlock.png", CCRect(0, 0, 610, 129)); bg->addChild(unlock, 0, TAG_Unlock); unlock->setOpacity(200); unlock->setPosition(bg->getPosition()); int state = mChoseHeroState.at(index); if(state>=1 && state<=4) //已选中的 { chose->initWithNormalImage( "duiwu_yingxiong_xuanzhong.png" , "duiwu_yingxiong_xuanzhong.png" , "duiwu_yingxiong_xuanzhong.png" , this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero)); unlock->setVisible(false); } else if(state == 0 && mChoseNum<3) //未选中 可选的 { chose->initWithNormalImage( "duiwu_yingxiong_daixuan.png" , "duiwu_yingxiong_daixuan.png" , "duiwu_yingxiong_daixuan.png" , this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero)); unlock->setVisible(false); } else //选满了、不能选的 { bg->initWithFile("duiwu_yingxiong_bg_suoding.png"); } } else if (mFlag == 2) { if (mHerosVec.at(index)->canUnlock()) { //可解锁 CCMenuItemImage* kjsItem = CCMenuItemImage::create( "duiwu_yingxiong_jiesuo.png" , "duiwu_yingxiong_jiesuo.png" , this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_jiesuoHero)); kjsItem->setPosition(558, 83); kjsItem->setTag(index); CCMenu* menu = CCMenu::create(kjsItem, NULL); menu->setPosition(CCPointZero); bg->addChild(menu, 0, TAG_Menu); } else //还不能解锁 { //不能解锁 CCMenuItemImage* kjsItem = CCMenuItemImage::create( "duiwu_yingxiong_suoding.png" , "duiwu_yingxiong_suoding.png" , this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_jiesuoHero)); kjsItem->setPosition(558, 83); kjsItem->setTag(index); CCMenu* menu = CCMenu::create(kjsItem, NULL); menu->setPosition(CCPointZero); bg->addChild(menu, 0, TAG_Menu); CCSprite* unlock = CCSprite::create("duiwu_yingxiong_unlock.png", CCRect(0, 0, 610, 129)); bg->addChild(unlock, 0, TAG_Unlock); unlock->setOpacity(200); unlock->setPosition(bg->getPosition()); } } return bg; }
bool ChatLayer::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayerColor::initWithColor(ccc4(0,0,0,160)) ); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //board CCSprite* board = CCSprite::create("juqing_duihuakuang.png"); addChild(board, 2, TAG_Board); board->setAnchorPoint(ccp(0.5, 0)); board->setPosition(ccp(winSize.width/2, 0)); board->setOpacity(0); //next img BaseSprite *nextImg = BaseSprite::create("sphc_anniu_fanye.png"); board->addChild(nextImg, 0, Tag_ImgNext); nextImg->setPosition(ccp(597,37)); nextImg->setOpacity(0); nextImg->runAction(CCSequence::create( CCFadeIn::create(0.15f), CCRepeat::create(CCSequence::create(CCFadeOut::create(0.75f), CCFadeIn::create(0.75f), NULL), -1), NULL)); //npc string npcFileName = getFileByName(m_chatContext.at(0).name).second; //////////////////////////////////////////// if(npcFileName.empty()) { CCLog("Error: %s [can't found npc imgine]", __FUNCTION__); npcFileName = "juqing_duihua_NPC_shenmiren.png"; } //////////////////////////////////////////// CCSprite* actorA = CCSprite::create(npcFileName.c_str()); addChild(actorA, 1, TAG_ActorA); actorA->setAnchorPoint(ccp(0,0)); actorA->setPosition(ccp(0, board->getContentSize().height-14)); actorA->setOpacity(0); //actor //yemanren cike fashi string actorFileName = getFileByName("zhujue").second; CCSprite* actorB = CCSprite::create(actorFileName.c_str()); addChild(actorB, 1, TAG_ActorB); actorB->setAnchorPoint(ccp(1,0)); actorB->setPosition(ccp(winSize.width, board->getContentSize().height-14)); // actorB->setScale(0.9); actorB->setOpacity(0); //label name CCLabelTTF *namelabel = CCLabelTTF::create("", fontStr_kaiti, 24); addChild(namelabel, 5, Tag_Label_Name); namelabel->setAnchorPoint(ccp(0, 0.5)); namelabel->setPosition(ccp(20, board->getContentSize().height-42)); namelabel->setColor(fonColor_PuTong); namelabel->setOpacity(0); //label content CCLabelTTF* label = CCLabelTTF::create("", fontStr_kaiti, 24, CCSize(610, 0), kCCTextAlignmentLeft); addChild(label, 5, TAG_label); label->setAnchorPoint(ccp(0,1)); label->setColor(fonColor_FaGuang); label->setPosition(ccp(20, board->getContentSize().height-76)); label->setOpacity(0); ////////////start chat if(m_chatContext.at(0).name == "zhujue") actorB->runAction(CCFadeIn::create(0.1f)); else actorA->runAction(CCFadeIn::create(0.1f)); board->runAction(CCFadeIn::create(0.1f)); label->runAction(CCFadeIn::create(0.1f)); namelabel->runAction(CCFadeIn::create(0.1f)); nextImg->runAction(CCFadeIn::create(0.15f)); scheduleOnce(schedule_selector(ChatLayer::showChatContext), 0.05f); { mTimeEnd = false; mLabelFadeInEnd = false; ++m_index; } bRet = true; }while(0); return bRet; }
GetAwardLayer::GetAwardLayer(CCString info, vector<ItemInfo> items, vector<Flat_DuanzaoGroupZBInfo> equips) { CCLayerColor::initWithColor(ccc4(0,0,0,255)); CCSize visSize = CCDirector::sharedDirector()->getWinSize(); mBoard = BaseSprite::create("shangpin_goumai_tishikuang.png"); addChild(mBoard); mBoard->setPosition(ccp(visSize.width/2, visSize.height/2)); //label 提示 { CCLabelTTF* label = CCLabelTTF::create(info.getCString(), fontStr_kaiti, 20, CCSize(425, 0), kCCTextAlignmentLeft); label->setColor(ccWHITE); mBoard->addChild(label, 1); if (items.size() == 0 && equips.size() == 0) { label->setAnchorPoint(ccp(0.5, 0.5)); label->setPosition(ccp(mBoard->getContentSize().width/2, 222)); } else { label->setAnchorPoint(ccp(0.5, 1)); label->setPosition(ccp(mBoard->getContentSize().width/2, 326)); } } //材料 int label_size = 20; ccColor3B label_color = ccWHITE; int allNum = items.size() + equips.size(); int posIdx = 0; for (int i=0; i < items.size(); ++i, ++posIdx) { BaseSprite* cailiaoImg = BaseSprite::create("daoju_kuang_bg.png"); mBoard->addChild(cailiaoImg); int pos_x = mBoard->getContentSize().width/2; int delta = posIdx - allNum/2; if(allNum % 2 == 0) { float del = delta + 0.5; pos_x += del * (cailiaoImg->getContentSize().width + 10); } else { pos_x += delta * (cailiaoImg->getContentSize().width + 10); } cailiaoImg->setPosition(ccp(pos_x, mBoard->getContentSize().height/2+24)); //item img BaseSprite * itemImg = BaseSprite::create( ImageManager::getManager()->getItemFilename(items.at(i).type)); // .count .type cailiaoImg->addChild(itemImg); itemImg->setPosition(ccp(cailiaoImg->getContentSize().width/2, cailiaoImg->getContentSize().height/2)); //数量 char buf[20]; sprintf(buf, "\nx%u", items.at(i).count); string temp = CS::getItemName(items.at(i).type); temp += buf; CCLabelTTF *labelShuliang = CCLabelTTF::create(temp.c_str(), fontStr_kaiti, label_size , CCSize(0,0), kCCTextAlignmentCenter); cailiaoImg->addChild(labelShuliang); labelShuliang->setPosition(ccp(cailiaoImg->getContentSize().width/2, -labelShuliang->getContentSize().height/2)); labelShuliang->setColor(label_color); } for (int i=0; i<equips.size(); ++i, ++posIdx) { BaseSprite* diwenImg = BaseSprite::create( ImageManager::getManager()->getImageData_DiWen_WithBianKuang(equips.at(i).zhuangbei_colour)); // .count .type mBoard->addChild(diwenImg); int pos_x = mBoard->getContentSize().width/2; int delta = posIdx - allNum/2; if(allNum % 2 == 0) { float del = delta + 0.5; pos_x += del * (diwenImg->getContentSize().width + 10); } else { pos_x += delta * (diwenImg->getContentSize().width + 10); } diwenImg->setPosition(ccp(pos_x, mBoard->getContentSize().height/2+24)); //equip pic string equipfile = equips.at(i).zhuangbei_pic; equipfile = "minute_" + equipfile + ".png"; BaseSprite *s = BaseSprite::create(equipfile); diwenImg->addChild(s); s->setScale(0.23f); s->setPosition(ccp(diwenImg->getContentSize().width/2,diwenImg->getContentSize().height/2)); //数量 char buf[20]; sprintf(buf, "\nx%d", 1); string temp = equips.at(i).zhuangbei_name; temp += buf; CCLabelTTF *labelShuliang = CCLabelTTF::create(temp.c_str(), fontStr_kaiti, label_size , CCSize(0,0), kCCTextAlignmentCenter); diwenImg->addChild(labelShuliang); labelShuliang->setPosition(ccp(diwenImg->getContentSize().width/2, -labelShuliang->getContentSize().height/2)); labelShuliang->setColor(label_color); } // this->setTag(TAG_GetAward_Layer); this->setZOrder(1025); }
void GameGrid::Setup() { blockTexture = Engine->Graphics->CreateTexture(); blockTexture->Initalize(BlockSize, BlockSize); blockTexture->SetSolidColor(0xFF0000FF); rng = new WeightedNumberGenerator(); rng->AddBucket(0, 0.20); rng->AddBucket(1, 0.75); rng->AddBucket(2, 0.05); for (int i = 0; i < SquareSize; i++) // Y { for (int j = 0; j < SquareSize; j++) // X { GridTile* newTile = new GridTile(rng->GetNext(), this->Engine); newTile->MoveTo(j * BlockSize + (j * SpaceSize) + GridOffsetPosX, i * BlockSize + (i * SpaceSize) + GridOffsetPosY); this->Tiles->Add(newTile); this->Engine->AttachActor(newTile); } } // Placing the InfoTiles for the rows (at the right) for (int i = 0; i < SquareSize; i++) { BaseSprite* rightMostTile = this->Tiles->Get(i * SquareSize + SquareSize - 1)->TileSprite; FPosition rightMostPosition = rightMostTile->GetOffsetPos(); FPosition posOffset = rightMostPosition; posOffset.X += rightMostTile->GetWidth() + 10; InfoTile* info = new InfoTile(GetZeroesOfRow(i), GetSumOfRow(i), this->Engine); InfoTiles->Add(info); Engine->AttachActor(info); info->MoveTo(posOffset.X, posOffset.Y); } // Placing the InfoTiles for the columns (at the bottom) for (int j = 0; j < SquareSize; j++) { BaseSprite* bottomMostTile = this->Tiles->Get(SquareSize * SquareSize - SquareSize + j)->TileSprite; FPosition bottomMostPosition = bottomMostTile->GetOffsetPos(); FPosition posOffset = bottomMostPosition; posOffset.Y += bottomMostTile->GetHeight() + 10; InfoTile* info = new InfoTile(GetZeroesOfColumn(j), GetSumOfColumn(j), this->Engine); InfoTiles->Add(info); Engine->AttachActor(info); info->MoveTo(posOffset.X, posOffset.Y); } gameTitleText = Engine->CreateText("Down & Across"); gameTitleText->SetCharacterSize(32); gameTitleText->SetPos(10, 0); gameTitleText->SetColor(0xFFFFFFFF); currentLevelLabel = Engine->CreateText("Level 1"); currentLevelLabel->SetCharacterSize(32); currentLevelLabel->SetPos(300, 0); currentLevelLabel->SetColor(0xFFFFFFFF); currentLevelScore = Engine->CreateText("0"); currentLevelScore->SetCharacterSize(72); currentLevelScore->SetPos(0, 520); currentLevelScore->SetColor(0xFFFFFFFF); currentLevelScoreExplain = Engine->CreateText("Current Level Score"); currentLevelScoreExplain->SetCharacterSize(12); currentLevelScoreExplain->SetPos(5, 525); currentLevelScoreExplain->SetColor(0xFFFFFFFF); totalScoreText = Engine->CreateText("0"); totalScoreText->SetCharacterSize(72); totalScoreText->SetPos(300, 520); totalScoreText->SetColor(0xFFFFFFFF); totalScoreExplain = Engine->CreateText("Total Score"); totalScoreExplain->SetCharacterSize(12); totalScoreExplain->SetPos(305, 525); totalScoreExplain->SetColor(0xFFFFFFFF); btnNextLevel = Engine->CreateSprite("btnNextLevel", "assets\\Button_NextLevel.png"); btnNextLevel->SetScale(0.5); FPosition targetPos = InfoTiles->Get(InfoTiles->Count() - 1)->BackgroundSprite->GetOffsetPos(); targetPos.X += 64 + 10; btnNextLevel->SetPos(targetPos); // Message setup LevelCompleteMessage = new GameMessageWindow(); LevelCompleteMessage->WindowSprite = Engine->CreateSprite("LevelCompleteMsg", "assets\\DefaultDialogBackground.png"); LevelCompleteMessage->WindowSprite->SetScale(2.0); LevelCompleteMessage->WindowText = Engine->CreateText("Level Complete\n !"); LevelCompleteMessage->SetDialogPosition(FPosition(200, 200)); LevelCompleteMessage->Close(); }
void TanSuoLayer::menuItemClicked_TanSuo(CCObject *pSender) { int tag = ((CCMenuItem*)pSender)->getTag(); if (tag == Tag_MenuItem_YiJianTanSuo) { if (m_bIsJieFeng) { string infoStr = LFStrings::getValue("XuYaoJieFeng"); UnblockWarnDialog* pDlg = UnblockWarnDialog::create(infoStr); CCDirector::sharedDirector()->getRunningScene()->addChild(pDlg, 300); return; } if (MyselfManager::getManager()->getMyZhuJueData()->getVipLevel() < 3) { FXToast *layer = FXToast::create(LFStrings::getValue("XunBao_VipNeed")); CCDirector::sharedDirector()->getRunningScene()->addChild(layer); return; } m_bDiscoverAll = true; addObserver(callfuncO_selector(TanSuoLayer::rsp_tansuo), MSG_discoverRsp); mCmdHlp->cmdDiscover(m_bDiscoverAll); } else if (tag == Tag_MenuItem_TanSuo) { m_bDiscoverAll = false; addObserver(callfuncO_selector(TanSuoLayer::rsp_tansuo), MSG_discoverRsp); mCmdHlp->cmdDiscover(m_bDiscoverAll); } else if (tag == Tag_MenuItem_JieFen) { if (mDestroyCount >= m_nMaxCountDestroy) { m_bIsJieFeng = true; m_nSelectProId = -1; if (! EquipmentManager::getManager()->isSpareEnoughToSaveEquip(1)) { EquipBagNotEnoughDialog *layer = new EquipBagNotEnoughDialog; layer->showGoToFenJieDialog(); } CCSize visSize = CCDirector::sharedDirector()->getWinSize(); BaseSprite* dialog = BaseSprite::create("juqing_duihuakuang.png"); dialog->setPosition(ccp(visSize.width/2, visSize.height/2)); //label 提示 { /*CCLabelTTF* label = CCLabelTTF::create(LFStrings::getValue("XunBao_XuanZeHeroTiShi").c_str(), fontStr_kaiti, m_nFontSize, CCSize(425, 0), kCCTextAlignmentLeft); label->setAnchorPoint(ccp(0.5, 1)); label->setPosition(ccp(dialog->getContentSize().width/2, 250)); dialog->addChild(label, 1);*/ CCLabelTTF *title = CCLabelTTF::create(LFStrings::getValue("JieChuFengYin").c_str(),fontStr_kaiti,m_nFontSize); title->setAnchorPoint(ccp(0.5,1)); title->setPosition(ccp(dialog->getContentSize().width/2, 250)); dialog->addChild(title, 1); CCLabelTTF *chuanqi = CCLabelTTF::create(LFStrings::getValue("ChuanQiZhuangBei").c_str(),fontStr_kaiti,m_nFontSize); chuanqi->setAnchorPoint(ccp(0.5,1)); chuanqi->setPosition(ccp(title->getPositionX() - title->getContentSize().width / 2 + m_nFontSize * 7 + chuanqi->getContentSize().width / 2, 250)); dialog->addChild(chuanqi, 1); chuanqi->setColor(ccc3(235,106,12)); } { m_lMenuItemList.clear(); //mHeros = MyselfManager::getManager()->getTeamActors_ZhenShen(Actor_All, LF_UnLock); mHeros = MyselfManager::getManager()->getTeamActors_ZhenShen(Actor_ShangZheng, LF_UnLock); //tabel view CCTableView *tabelView = CCTableView::create(this, CCSizeMake(560, 158)); tabelView->setDirection(kCCScrollViewDirectionHorizontal); tabelView->setPosition(ccp(41, 44)); tabelView->setDelegate(this); dialog->addChild(tabelView); tabelView->reloadData(); } //确认 取消按键 CCMenu* menu = CCMenu::create(); menu->setPosition(CCPointZero); menu->setTag(0); // { LFAlert* lfAlert = new LFAlert(); lfAlert->setTag(TAG_AwardDisplayer_Layer); lfAlert->setBaseContainer(dialog,menu); lfAlert->setZoneCanotTouch(); CCDirector::sharedDirector()->getRunningScene()->addChild(lfAlert,128, TAG_AwardDisplayer_Layer); lfAlert->release(); } return; } else { MessageDisplay* layer = MessageDisplay::create("ERROR!"); CCDirector::sharedDirector()->getRunningScene()->addChild(layer); return; } } }
void ZhuangbeiXilianOverOption::onEnter() { CCSprite::onEnter(); if (m_nLevel != -1) { BaseSprite *bgSpr = BaseSprite::create("zhuangbei_xiangxi_xilian_shuxing.png"); addChild(bgSpr); this->setContentSize(bgSpr->getContentSize()); BaseSprite *xingxingImg = BaseSprite::create(CCString::createWithFormat("gongming_anniu_%d.png",m_nLevel)->getCString()); bgSpr->addChild(xingxingImg); xingxingImg->setPosition(ccp(40, bgSpr->getContentSize().height / 2)); xingxingImg->setScale(0.58f); ZBAttr zb_attr; zb_attr.attr_type = m_nAtter_type_index; zb_attr.attr_value = m_nPercent; string attrStr = GetMoFaShuXing_ByZBAttr(zb_attr, true); CCLabelTTF *label = CCLabelTTF::create(attrStr.c_str(), fontStr_kaiti, 20); bgSpr->addChild(label); label->setColor(ccc3(255,255,255)); label->setPosition(ccp(bgSpr->getContentSize().width / 2, bgSpr->getContentSize().height / 2)); bgSpr->setPosition(ccp(bgSpr->getContentSize().width / 2,bgSpr->getContentSize().height / 2)); if (m_bIsBiger) { CCSprite *spr = CCSprite::create("renxing_zhuangbeitisheng.png"); spr->setPosition(ccp(230,this->getContentSize().height / 2)); bgSpr->addChild(spr); } if (m_bIsFirst) { CCSprite *spr = CCSprite::create("zhuangbei_xiangxi_xilian_shuxing_xiaoguo.png"); spr->setPosition(ccp(this->getContentSize().width / 2,this->getContentSize().height / 2)); bgSpr->addChild(spr); float time = 0; float minTime = 0.5f; float maxTime = 1.2f; time = CCRANDOM_0_1()*(maxTime - minTime) + minTime; Blink(spr,time); } } else { BaseSprite *xingxingImg = BaseSprite::create("zhuangbei_xiangxi_xilian_shuxing_suoding.png"); addChild(xingxingImg); xingxingImg->setPosition(ccp(xingxingImg->getContentSize().width / 2,xingxingImg->getContentSize().height / 2)); this->setContentSize(xingxingImg->getContentSize()); } }
////////////////////////////////////////////////////////////////////////// // high level scripting interface ////////////////////////////////////////////////////////////////////////// bool AdTalkHolder::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name) { ////////////////////////////////////////////////////////////////////////// // SetSprite ////////////////////////////////////////////////////////////////////////// if (strcmp(name, "SetSprite") == 0) { stack->correctParams(1); ScValue *val = stack->pop(); bool setCurrent = false; if (_currentSprite && _currentSprite == _sprite) { setCurrent = true; } delete _sprite; _sprite = nullptr; if (val->isNULL()) { _sprite = nullptr; if (setCurrent) { _currentSprite = nullptr; } stack->pushBool(true); } else { const char *filename = val->getString(); BaseSprite *spr = new BaseSprite(_gameRef, this); if (!spr || DID_FAIL(spr->loadFile(filename))) { script->runtimeError("SetSprite method failed for file '%s'", filename); stack->pushBool(false); } else { _sprite = spr; if (setCurrent) { _currentSprite = _sprite; } stack->pushBool(true); } } return STATUS_OK; } ////////////////////////////////////////////////////////////////////////// // GetSprite ////////////////////////////////////////////////////////////////////////// else if (strcmp(name, "GetSprite") == 0) { stack->correctParams(0); if (!_sprite || !_sprite->getFilename()) { stack->pushNULL(); } else { stack->pushString(_sprite->getFilename()); } return STATUS_OK; } ////////////////////////////////////////////////////////////////////////// // GetSpriteObject ////////////////////////////////////////////////////////////////////////// else if (strcmp(name, "GetSpriteObject") == 0) { stack->correctParams(0); if (!_sprite) { stack->pushNULL(); } else { stack->pushNative(_sprite, true); } return STATUS_OK; } ////////////////////////////////////////////////////////////////////////// // AddTalkSprite ////////////////////////////////////////////////////////////////////////// else if (strcmp(name, "AddTalkSprite") == 0) { stack->correctParams(2); const char *filename = stack->pop()->getString(); bool ex = stack->pop()->getBool(); BaseSprite *spr = new BaseSprite(_gameRef, this); if (!spr || DID_FAIL(spr->loadFile(filename))) { stack->pushBool(false); script->runtimeError("AddTalkSprite method failed for file '%s'", filename); } else { if (ex) { _talkSpritesEx.add(spr); } else { _talkSprites.add(spr); } stack->pushBool(true); } return STATUS_OK; } ////////////////////////////////////////////////////////////////////////// // RemoveTalkSprite ////////////////////////////////////////////////////////////////////////// else if (strcmp(name, "RemoveTalkSprite") == 0) { stack->correctParams(2); const char *filename = stack->pop()->getString(); bool ex = stack->pop()->getBool(); bool setCurrent = false; bool setTemp2 = false; if (ex) { for (uint32 i = 0; i < _talkSpritesEx.size(); i++) { if (scumm_stricmp(_talkSpritesEx[i]->getFilename(), filename) == 0) { if (_currentSprite == _talkSpritesEx[i]) { setCurrent = true; } if (_tempSprite2 == _talkSpritesEx[i]) { setTemp2 = true; } delete _talkSpritesEx[i]; _talkSpritesEx.remove_at(i); break; } } } else { for (uint32 i = 0; i < _talkSprites.size(); i++) { if (scumm_stricmp(_talkSprites[i]->getFilename(), filename) == 0) { if (_currentSprite == _talkSprites[i]) { setCurrent = true; } if (_tempSprite2 == _talkSprites[i]) { setTemp2 = true; } delete _talkSprites[i]; _talkSprites.remove_at(i); break; } } } stack->pushBool(true); if (setCurrent) { _currentSprite = _sprite; } if (setTemp2) { _tempSprite2 = _sprite; } return STATUS_OK; } ////////////////////////////////////////////////////////////////////////// // SetTalkSprite ////////////////////////////////////////////////////////////////////////// else if (strcmp(name, "SetTalkSprite") == 0) { stack->correctParams(2); const char *filename = stack->pop()->getString(); bool ex = stack->pop()->getBool(); bool setCurrent = false; bool setTemp2 = false; BaseSprite *spr = new BaseSprite(_gameRef, this); if (!spr || DID_FAIL(spr->loadFile(filename))) { stack->pushBool(false); script->runtimeError("SetTalkSprite method failed for file '%s'", filename); } else { // delete current if (ex) { for (uint32 i = 0; i < _talkSpritesEx.size(); i++) { if (_talkSpritesEx[i] == _currentSprite) { setCurrent = true; } if (_talkSpritesEx[i] == _tempSprite2) { setTemp2 = true; } delete _talkSpritesEx[i]; } _talkSpritesEx.clear(); } else { for (uint32 i = 0; i < _talkSprites.size(); i++) { if (_talkSprites[i] == _currentSprite) { setCurrent = true; } if (_talkSprites[i] == _tempSprite2) { setTemp2 = true; } delete _talkSprites[i]; } _talkSprites.clear(); } // set new if (ex) { _talkSpritesEx.add(spr); } else { _talkSprites.add(spr); } stack->pushBool(true); if (setCurrent) { _currentSprite = spr; } if (setTemp2) { _tempSprite2 = spr; } } return STATUS_OK; } else { return AdObject::scCallMethod(script, stack, thisStack, name); } }
bool UIWindow::display(int offsetX, int offsetY) { // go exclusive if (_mode == WINDOW_EXCLUSIVE || _mode == WINDOW_SYSTEM_EXCLUSIVE) { if (!_shieldWindow) { _shieldWindow = new UIWindow(_gameRef); } if (_shieldWindow) { _shieldWindow->_posX = _shieldWindow->_posY = 0; _shieldWindow->_width = _gameRef->_renderer->getWidth(); _shieldWindow->_height = _gameRef->_renderer->getHeight(); _shieldWindow->display(); } } else if (_isMenu) { if (!_shieldButton) { _shieldButton = new UIButton(_gameRef); _shieldButton->setName("close"); _shieldButton->setListener(this, _shieldButton, 0); _shieldButton->_parent = this; } if (_shieldButton) { _shieldButton->_posX = _shieldButton->_posY = 0; _shieldButton->setWidth(_gameRef->_renderer->getWidth()); _shieldButton->setHeight(_gameRef->_renderer->getHeight()); _shieldButton->display(); } } if (!_visible) { return STATUS_OK; } if (_fadeBackground) { Graphics::PixelFormat format = _gameRef->_renderer->getPixelFormat(); byte fadeR, fadeG, fadeB, fadeA; // First convert from the internal format to the screen-format uint32 fadeColor = format.ARGBToColor(RGBCOLGetA(_fadeColor), RGBCOLGetR(_fadeColor), RGBCOLGetG(_fadeColor), RGBCOLGetB(_fadeColor)); // Then get components format.colorToARGB(fadeColor, fadeA, fadeR, fadeG, fadeB); _gameRef->_renderer->fadeToColor(fadeR, fadeG, fadeB, fadeA); } if (_dragging) { _posX += (_gameRef->_mousePos.x - _dragFrom.x); _posY += (_gameRef->_mousePos.y - _dragFrom.y); _dragFrom.x = _gameRef->_mousePos.x; _dragFrom.y = _gameRef->_mousePos.y; } if (!_focusedWidget || (!_focusedWidget->canFocus() || _focusedWidget->isDisabled() || !_focusedWidget->isVisible())) { moveFocus(); } bool popViewport = false; if (_clipContents) { if (!_viewport) { _viewport = new BaseViewport(_gameRef); } if (_viewport) { _viewport->setRect(_posX + offsetX, _posY + offsetY, _posX + _width + offsetX, _posY + _height + offsetY); _gameRef->pushViewport(_viewport); popViewport = true; } } UITiledImage *back = _back; BaseSprite *image = _image; BaseFont *font = _font; if (!isFocused()) { if (_backInactive) { back = _backInactive; } if (_imageInactive) { image = _imageInactive; } if (_fontInactive) { font = _fontInactive; } } if (_alphaColor != 0) { _gameRef->_renderer->_forceAlphaColor = _alphaColor; } if (back) { back->display(_posX + offsetX, _posY + offsetY, _width, _height); } if (image) { image->draw(_posX + offsetX, _posY + offsetY, _transparent ? nullptr : this); } if (!BasePlatform::isRectEmpty(&_titleRect) && font && _text) { font->drawText((byte *)_text, _posX + offsetX + _titleRect.left, _posY + offsetY + _titleRect.top, _titleRect.right - _titleRect.left, _titleAlign, _titleRect.bottom - _titleRect.top); } if (!_transparent && !image) { _gameRef->_renderer->addRectToList(new BaseActiveRect(_gameRef, this, nullptr, _posX + offsetX, _posY + offsetY, _width, _height, 100, 100, false)); } for (uint32 i = 0; i < _widgets.size(); i++) { _widgets[i]->display(_posX + offsetX, _posY + offsetY); } if (_alphaColor != 0) { _gameRef->_renderer->_forceAlphaColor = 0; } if (popViewport) { _gameRef->popViewport(); } return STATUS_OK; }
BaseSprite* MainLayerZhuangBeiBaseBody::getItemContentByIndex(unsigned int index) { BaseSprite* bg = BaseSprite::create("mianban_zhuangbei_xiangxi.png"); CCString tempStr; CCPoint picPos = ccp(75.0f, bg->getContentSize().height/2); { ImageData diWenData = ImageManager::getManager()->getImageData_DiWen_List( mEquipmentVec[index]->getEquipColor(), false, mEquipmentVec[index]->isPartOfSuit(), mEquipmentVec[index]->haveZhuanke()); BaseSprite* diWen = BaseSprite::create(diWenData.getCurrentImageFile()); diWen->setScale(diWenData.scale); diWen->setPosition(picPos); bg->addChild(diWen,0,TAG_BaseBody_TABLE_ITEM_DiWen); { BaseSprite *sprite = ImageManager::getManager()->getSpriteOfZhuangbei(mEquipmentVec[index],true,true); //sprite->setScale(data.scale); sprite->setScale(0.43f); sprite->setPosition(picPos); bg->addChild(sprite,0,TAG_BaseBody_TABLE_ITEM_Image); } //封印 if (mEquipmentVec[index]->isInFengYin()) { BaseSprite *fyImg = BaseSprite::create("shenbing_fengyin_suo.png"); bg->addChild(fyImg, 0, TAG_BaseBody_TABLE_FengYin_Img); fyImg->setPosition(diWen->getPosition()); fyImg->setScale(diWen->getContentSize().width*diWen->getScale() / fyImg->getContentSize().width); } } // 添加图片识别区 { ImageData selecedData = ImageManager::getManager()->getImageData_DiWen_Selected( mEquipmentVec[index]->getEquipColor(), false,//mEquipmentVec[index]->isShenBing(), mEquipmentVec[index]->isPartOfSuit()); BaseSprite* menuItemSel = BaseSprite::create(selecedData.getCurrentImageFile()); menuItemSel->setScale(selecedData.scale); CCSprite* menuRect = CCSprite::createWithTexture(menuItemSel->getTexture()); menuRect->setScale(0.0f); FXScrollMenu *menu = FXScrollMenu::create( mTableView->getParent()->convertToWorldSpace(mTableView->getPosition()), mTableView->getViewSize()); bg->addChild(menu, 0, TAG_BaseBody_MENU); menu->setPosition(ccp(0,0)); CCMenuItemSprite* t = CCMenuItemSprite::create(menuRect,menuItemSel,this,SEL_MenuHandler(&MainLayerZhuangBeiBaseBody::itemImageClicked)); menu->addChild(t, 0, index); t->setPosition(picPos); } float left_x_start = 160 - 4; //名称 { CCLabelTTF* label; char str[64]; if (mEquipmentVec[index]->getEquipData().qianghua_data.qianghua_count != 0) { sprintf(str, "%s", mEquipmentVec[index]->getName().c_str()); } else { sprintf(str, "%s", mEquipmentVec[index]->getName().c_str()); } label = LF::lable(bg,str,ccp(left_x_start,190),24,fontStr_kaiti); label->setTag(TAG_BaseBody_LABLE_NAME); ccColor3B color = ImageManager::getManager()->getShowColor(mEquipmentVec[index]->getEquipColor(),false,mEquipmentVec[index]->isPartOfSuit()); label->setColor(color); } //类型 { std::string typeStr = CS::getZhuangbeiTypeName(mEquipmentVec[index]->getType(), mEquipmentVec[index]->getEquipColor()); CCLabelTTF* label; label = LF::lable(bg,typeStr,ccp(left_x_start,165),18,fontStr_kaiti); label->setTag(TAG_BaseBody_LABLE_TYPE); label->setColor(fonColor_CiYao); } //白字 { CCLabelTTF* label_baizhi = NULL; bool hasBaiZhi = false; { float baizi = 0; switch(mEquipmentVec[index]->getType()) { case ZhuangbeiType_DanshouJian: case ZhuangbeiType_ShuangshouBishou: case ZhuangbeiType_ShuangshouFu: case ZhuangbeiType_DanshouFazhang: case ZhuangbeiType_ShuangshouFazhang: case ZhuangbeiType_Gong: hasBaiZhi = true; baizi = mEquipmentVec[index]->getGongjiLiAfterQianghua(false); break; case ZhuangbeiType_Dunpai: case ZhuangbeiType_KuijiaZhong: case ZhuangbeiType_KuijiaQin: hasBaiZhi = true; baizi = mEquipmentVec[index]->getHuJiaZhiAfterQianghua(); break; default: break; } if (hasBaiZhi) { char str[64]; sprintf(str, "%.1f", baizi); label_baizhi = LF::lable(bg,str,ccp(left_x_start,126),60,fontStr_BookAntiqua); label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI); } else { label_baizhi = LF::lable(bg,"",ccp(left_x_start,126),60,fontStr_BookAntiqua); label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI); } } //junshang CCLabelTTF* label_junshang = LF::lable(bg,LFStrings::getValue("junshang"),ccp(0,0),20,fontStr_kaiti); label_junshang->setAnchorPoint(ccp(0, 0.5)); label_junshang->setPosition( ccp(label_baizhi->getPositionX()+label_baizhi->getContentSize().width+10, 116)); label_junshang->setTag(TAG_BaseBody_LABLE_JUNSHANG_TXT); if(hasBaiZhi) { label_junshang->setVisible(true); if(mEquipmentVec[index]->getEquipType() == EquipType_FangJu) label_junshang->setString(LFStrings::getValue("huJia").c_str()); } else { label_junshang->setVisible(false); } } //伤害详细 if (mEquipmentVec[index]->getEquipType() == EquipType_WuQi) { CCLabelTTF* label; char str[64]; sprintf(str, "%u-%u ", mEquipmentVec[index]->getEquipData().gongji_min , mEquipmentVec[index]->getEquipData().gongji_max); label = LF::lable(bg,str,ccp(left_x_start,87),20,fontStr_BookAntiqua); label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM); label->setColor(fonColor_CiYao); CCLabelTTF* label2; label2 = LF::lable(bg,LFStrings::getValue("dianShangHai") ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti); label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT); label2->setColor(fonColor_CiYao); } else { CCLabelTTF* label; label = LF::lable(bg,"",ccp(left_x_start,87),20,fontStr_kaiti); label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM); CCLabelTTF* label2; label2 = LF::lable(bg,"" ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti); label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT); } //等级 { CCLabelTTF* label; char str[64]; sprintf(str, "%s %u ", LFStrings::getValue("dengji").c_str(), mEquipmentVec[index]->getEquipData().zhuangbei_level); label = LF::lable(bg,str,ccp(left_x_start,28),20,fontStr_kaiti); label->setColor(fonColor_FaGuang); label->setTag(TAG_BaseBody_LABLE_Level); } //人物 { CCLabelTTF* label; int actorId = mEquipmentVec[index]->getActorId(); if (actorId != INVALID_ID) { BaseActor* actor = MyselfManager::getManager()->getMyTeamActor(actorId); CCAssert(actor!=NULL,""); BaseActorProperty prop = actor->getCurrentProperty(); label = LF::lable(bg,LF::getString("zhuangBeiYu")+prop.nameInChinese,ccp(0, 0),20,fontStr_kaiti); } else { label = LF::lable(bg,LF::getString("meiYouZhuangBei"),ccp(0, 0),20,fontStr_kaiti); } label->setColor(fonColor_FaGuang); label->setAnchorPoint(ccp(1, 0.5)); label->setPosition(ccp( 590, 200)); label->setTag(TAG_BaseBody_LABLE_OWNTO); if (actorId == INVALID_ID && mEquipmentVec[index]->getEquipData().profession_id != 0) { CCString temp; temp.initWithFormat("%s(%s)", LFStrings::getValue("ZhiYeXianZhi").c_str(), BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mEquipmentVec[index]->getEquipData().profession_id).nameInChinese.c_str()); label->setString(temp.getCString()); label->setColor(fonColor_JingGao); } } //魔法属性 { int start_x = 400 + 38; Equipment* equip = mEquipmentVec[index]; std::vector<std::string> vec = equip->getAllMofaShuxing(false); //大于5个 第五个就是 ...... for(int i=0; i<vec.size(); ++i) { std::string txt = vec[i]; BaseSprite* biaoji = BaseSprite::create("zhuangbei_xiangxi_biaoji.png"); bg->addChild(biaoji, 0, TAG_BIAOJI+i); biaoji->setPosition(ccp(start_x, 170-i*28)); //biaoji->setOpacity(80); CCLabelTTF* label; label = LF::lable(bg,txt,ccp(0,0),20,fontStr_kaiti); label->setColor(ImageManager::getManager()->getShowColor(ZhuangbeiColour_Fumo, false, false)); label->setAnchorPoint(ccp(0, 0.5)); label->setPosition(ccp(start_x+15, 170-i*28)); label->setTag(i); if(vec.size()>6) { CCLog("Warrior:%s ---> equipment property > 6, current is [%d]", __FUNCTION__, vec.size()); // break; } } //洗练 string xxx; CCSprite *diwen = (CCSprite*)bg->getChildByTag(TAG_BaseBody_TABLE_ITEM_DiWen); if (equip->canPurify(xxx,1) && diwen) { ZhuangbeiOptionLevel *layer = ZhuangbeiOptionLevel::createWithEquipment(equip); bg->addChild(layer,20); //layer->setScale(1/diwen->getScale()); CCPoint pos = diwen->getPosition(); pos.x -= diwen->getContentSize().width * diwen->getScaleX() / 2; pos.y -= diwen->getContentSize().height * diwen->getScaleY() / 2; int width = pos.x + layer->getContentSize().width / 2 + 12; int height = pos.y + layer->getContentSize().height / 2 + 4; layer->setPosition(ccp(width,height)); } } bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2)); return bg; }