void ThirdServerScene::toServerList() { if (this->getChildByTag(loginLayerTag) != NULL) { this->removeChildByTag(loginLayerTag,true); } CCLayer* loginLayer = CCLayer::create(); loginLayer->setTag(loginLayerTag); loginLayer->setPosition(ccp(0,0)); CCLayer* displayLayer = CCLayer::create(); CCSprite* loginBack = CCSprite::createWithSpriteFrameName("serverShadow.png"); loginBack->setPosition(ccp(0,0)); loginBack->setAnchorPoint(ccp(1,0)); loginBack->setScale(2); displayLayer->addChild(loginBack); displayLayer->setTag(loginDisplayLayerTag); loginLayer->addChild(displayLayer); displayLayer->setPosition(ccp(winSize.width-645,960)); CCSprite* serverListLabel = CCSprite::createWithSpriteFrameName("serverlistTipLabel.png"); serverListLabel->setPosition(ccp(-285,325)); displayLayer->addChild(serverListLabel); // CCSprite* upTip = CCSprite::createWithSpriteFrameName("serverlistTipCornor.png"); // upTip->setPosition(ccp(-300,65)); // upTip->setRotation(180); // upTip->setScale(0.66); // upTip->setColor(ccc3(200,200,200)); // upTip->setTag(upTipTag); // // displayLayer->addChild(upTip); CCSprite* downTip = CCSprite::createWithSpriteFrameName("serverlistTipCornor.png"); downTip->setPosition(ccp(-300,50)); downTip->setScale(0.66); downTip->setColor(ccc3(200,200,200)); downTip->setTag(downTipTag); downTip->runAction(CCRepeatForever::create(static_cast<CCSequence*>(CCSequence::create( CCEaseIn::create(CCMoveBy::create(0.25,ccp(0,-10)),1.5),CCEaseOut::create(CCMoveBy::create(0.25,ccp(0,10)),1.5),NULL)))); displayLayer->addChild(downTip); displayLayer->runAction(CCEaseElasticOut::create(CCMoveTo::create(0.35, ccp(winSize.width-394,280)), 1)); CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sfx_popCreator.mp3"); CCObject* obj; int i = 0; ServerSelectScroll2* scroll = ServerSelectScroll2::create(-507); scroll->setOriPosition(ccp(winSize.width-890,370)); scroll->setContentSize(CCSizeMake(450, 200)); scroll->setMapSize(CCSizeMake(450, 50*(beans->count()+3))); scroll->setPosition(ccp(winSize.width-765+0.33*50*(beans->count()-1)-224,-scroll->getMapSize().height+scroll->getViewSize().height+scroll->getOriPosition().y+680)); scroll->runAction(CCEaseElasticOut::create(CCMoveBy::create(0.35, ccp(224,-680)), 1)); CCARRAY_FOREACH(beans,obj) { SeverInfoBean* bean = (SeverInfoBean*)obj; CCSprite* layer = CCSprite::create("transparent.png"); // CCSprite* transParent = CCSprite::create("transparent.png"); layer->setScaleX(270/layer->getContentSize().width); layer->setScaleY(33/layer->getContentSize().height); layer->setContentSize(CCSizeMake(225,33)); layer->setOpacity(100); CCLabelTTF* label = CCLabelTTF::create(bean->getServerName()->getCString(),"Arial",33); label->setPosition(ccp(90/layer->getScaleX(),16/layer->getScaleY())); layer->addChild(label,2); label->setTag(serverNameLabelTag); label->setScaleX(1/layer->getScaleX()); label->setScaleY(1/layer->getScaleY()); if (bean->serverId == cacheServerId) { label->setColor(ccc3(155,155,155)); } CCLabelTTF* stateLabel =CCLabelTTF::create(bean->getServerStatus()->getCString(),"Arial",30); stateLabel->setPosition(ccp(236/layer->getScaleX(),16/layer->getScaleY())); if (bean->getServerStatus()->compare("正常") == 0 || bean->getServerStatus()->compare("推荐") == 0) { stateLabel->setColor(ccc3(0,255,0)); } else if (bean->getServerStatus()->compare("繁忙") == 0) { stateLabel->setColor(ccc3(255,255,0)); } else if (bean->getServerStatus()->compare("火爆") == 0) { stateLabel->setColor(ccc3(167,87,168)); } else { stateLabel->setColor(ccc3(166,166,166)); } stateLabel->setScaleX(1/layer->getScaleX()); stateLabel->setScaleY(1/layer->getScaleY()); layer->addChild(stateLabel,2); MyMenuItem* serverItem = MyMenuItem::create(layer,this,menu_selector(ThirdServerScene::toChangeServer)); serverItem->setPosition(ccp(-(i+3)*17+135,26+50*(i+3))); // serverItem->setAnchorPoint(ccp(0,0)); serverItem->setUserObject(bean); scroll->addChild(serverItem); // dividingLength*i+33 i++; }
bool TujiLayer::init() { if (!Layer::init()) { return false; } m_iBeforeSel = 0; // 背景 auto bgSprite = Sprite::create("PhotoGalleryBackground.png"); bgSprite->setPosition(WINSIZE.width / 2, WINSIZE.height / 2); this->addChild(bgSprite); auto closeItem = MenuItemSprite::create( Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("GalleryOffNormal.png")), Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("GalleryOffSelected.png")), [&](Ref * ref){ PLAYEFFECT; //弹出场景 Director::getInstance()->replaceScene(StartLayer::createScene()); }); // 关闭按钮 closeItem->setPosition(WINSIZE.width/2+580, WINSIZE.height/2+320); auto menu = Menu::create(closeItem, NULL); menu->setPosition(Point::ZERO); bgSprite->addChild(menu); // 怪物图鉴 // char *inBuf = "木\n桩\n怪"; // size_t inLen = strlen(inBuf); // size_t outLen = inLen << 1; // char *outBuf = (char *)malloc(outLen); // gbk2utf8(inBuf, inLen, outBuf, outLen); XMLParser *pXmlParser = XMLParser::parseWithFile("tujiLayer.xml"); String *mz = pXmlParser->getString("muzhuang"); m_pMZ_Pic = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("ManWood.png")); m_pMZ_Txt = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("Text.png")); m_pMZLabel = LabelTTF::create(mz->getCString(), "", 30); m_pMZLabel->setColor(ccc3(0, 255, 255)); // free(outBuf); m_pLion_Pic = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("ManLion.png")); m_pLionLabel = LabelTTF::create("狮\n子\n怪 ", "", 30); m_pLionLabel->setColor(ccc3(0, 255, 255)); m_pStone_Pic = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("ManStone.png")); m_pStoneLabel = LabelTTF::create("石\n头\n怪 ", "", 30); m_pStoneLabel->setColor(ccc3(0, 255, 255)); m_pStoneLabel->setRotation(90); m_pMZ_Pic->setPosition(WINSIZE.width / 2 + 50, WINSIZE.height / 2); m_pMZ_Pic->setVisible(true); m_pMZ_Txt->setPosition(WINSIZE.width / 2 + 460, WINSIZE.height / 2 ); m_pMZ_Txt->setVisible(true); m_pMZLabel->setPosition(WINSIZE.width / 2 + 265, WINSIZE.height / 2 - 120); m_pMZLabel->setVisible(true); m_pLion_Pic->setPosition(WINSIZE.width / 2+50, WINSIZE.height / 2); m_pLion_Pic->setVisible(false); m_pLionLabel->setPosition(WINSIZE.width / 2 + 265, WINSIZE.height / 2 - 120); m_pLionLabel->setVisible(false); m_pStone_Pic->setPosition(WINSIZE.width / 2 , WINSIZE.height / 2 ); m_pStone_Pic->setVisible(false); m_pStoneLabel->setPosition(WINSIZE.width / 2 + 265, WINSIZE.height / 2 - 120); m_pStoneLabel->setVisible(false); bgSprite->addChild(m_pMZ_Pic); bgSprite->addChild(m_pMZ_Txt); bgSprite->addChild(m_pMZLabel); bgSprite->addChild(m_pLion_Pic); bgSprite->addChild(m_pLionLabel); bgSprite->addChild(m_pStone_Pic); bgSprite->addChild(m_pStoneLabel); listView = ListView::create(); listView->setDirection(SCROLLVIEW_DIR_VERTICAL); listView->setTouchEnabled(true); listView->setBounceEnabled(true); // 反弹 listView->setSize(Size(445, 500)); listView->ignoreContentAdaptWithSize(false); listView->setAnchorPoint(Point(0.0, 0.0)); listView->setPosition(Point(0, WINSIZE.height / 4)); listView->addEventListenerListView(this, SEL_ListViewEvent(&TujiLayer::selectedItemEvent)); bgSprite->addChild(listView); Button* default_button = Button::create("Cell_0.png", "CellSel_0.png", "", UI_TEX_TYPE_PLIST); default_button->setName("Title Button"); Layout* default_item = Layout::create(); default_item->setTouchEnabled(true); default_item->setSize(default_button->getSize()); default_button->setPosition(Point(default_item->getSize().width / 2.0f, default_item->getSize().height / 2.0f)); default_item->addChild(default_button); // set model 将创建的模板设置为项目模板 listView->setItemModel(default_item); // 1 Button* custom_buttonMZ = Button::create("CellSel_0.png", "Cell_0.png", "", UI_TEX_TYPE_PLIST); custom_buttonMZ->setName("one Button"); custom_buttonMZ->setScale9Enabled(true); custom_buttonMZ->setSize(default_button->getSize()); Layout *custom_itemMZ = Layout::create(); custom_itemMZ->setSize(custom_buttonMZ->getSize()); custom_buttonMZ->setPosition(Point(custom_itemMZ->getSize().width / 2.0f, custom_itemMZ->getSize().height / 2.0f)); custom_itemMZ->addChild(custom_buttonMZ); // 2 Button* custom_buttonLion = Button::create("CellSel_1.png", "Cell_1.png", "", UI_TEX_TYPE_PLIST); custom_buttonLion->setName("two Button"); custom_buttonLion->setScale9Enabled(true); custom_buttonLion->setSize(default_button->getSize()); Layout *custom_itemLion = Layout::create(); custom_itemLion->setSize(custom_buttonLion->getSize()); custom_buttonLion->setPosition(Point(custom_itemLion->getSize().width / 2.0f, custom_itemLion->getSize().height / 2.0f)); custom_itemLion->addChild(custom_buttonLion); // 3 Button* custom_buttonStone = Button::create("CellSel_2.png", "Cell_2.png", "", UI_TEX_TYPE_PLIST); custom_buttonStone->setName("three Button"); custom_buttonStone->setScale9Enabled(true); custom_buttonStone->setSize(default_button->getSize()); Layout *custom_itemStone = Layout::create(); custom_itemStone->setSize(custom_buttonStone->getSize()); custom_buttonStone->setPosition(Point(custom_itemStone->getSize().width / 2.0f, custom_itemStone->getSize().height / 2.0f)); custom_itemStone->addChild(custom_buttonStone); // 4 Button* custom_buttonWood = Button::create("CellSel_3.png", "Cell_3.png", "", UI_TEX_TYPE_PLIST); custom_buttonWood->setName("four Button"); custom_buttonWood->setScale9Enabled(true); custom_buttonWood->setSize(default_button->getSize()); Layout *custom_itemWood = Layout::create(); custom_itemWood->setSize(custom_buttonWood->getSize()); custom_buttonWood->setPosition(Point(custom_itemWood->getSize().width / 2.0f, custom_itemWood->getSize().height / 2.0f)); custom_itemWood->addChild(custom_buttonWood); listView->pushBackCustomItem(custom_itemMZ); listView->pushBackCustomItem(custom_itemLion); listView->pushBackCustomItem(custom_itemStone); listView->pushBackCustomItem(custom_itemWood); return true; }
bool GameOverLayer::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); //停止背景音乐,播放gameover的音效 if (CocosDenshion::SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying()) { CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(); } CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sound/game_over.mp3"); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //加载gameover_background CCSprite* background = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("gameover.png")); background->setPosition(ccp(winSize.width / 2, winSize.height / 2)); this->addChild(background); //加载BackMenu CCSprite* normalBackToGame = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_finish.png"));//正常状态下的按钮图片 CCSprite* pressedBackToGame = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("btn_finish.png"));//按下状态下的按钮图片 CCMenuItemImage* pBackItem = CCMenuItemImage::create();//创建menu的item pBackItem->initWithNormalSprite(normalBackToGame, pressedBackToGame, NULL, this, menu_selector(GameOverLayer::menuBackCallback));//设置 pBackItem->setPosition(ccp(winSize.width - normalBackToGame->getContentSize().width / 2 - 10, normalBackToGame->getContentSize().height / 2 + 10));//位置 CCMenu *menuBack = CCMenu::create(pBackItem, NULL);//创建menu并加入item menuBack->setPosition(Point::ZERO);//位置 this->addChild(menuBack);//加入layer //加载score CCString* strScore = CCString::createWithFormat("%d", score); CCLabelBMFont* finalScore = CCLabelBMFont::create(strScore->_string.c_str(), "res/assets/font/font.fnt"); finalScore->setColor(ccc3(143, 146, 147)); finalScore->setPosition(ccp(winSize.width / 2, winSize.height / 2)); this->addChild(finalScore); CCDelayTime* delay = CCDelayTime::create(1.0f); CCScaleTo* scalebig = CCScaleTo::create(1.0f, 3.0f); CCScaleTo* scalelittle = CCScaleTo::create(0.3f, 2.0f); CCCallFunc* showAD = CCCallFunc::create(this, callfunc_selector(GameOverLayer::showAD)); CCFiniteTimeAction* sequence = CCSequence::create(delay, scalebig, scalelittle, showAD, NULL); finalScore->runAction(sequence); //加载历史最高分 //CCLabelTTF* tip=CCLabelTTF::create("Congratulations! Your Score is","Monaco",20); //tip->setColor(ccc3(143,146,147)); //tip->setPosition(ccp(finalScore->getPosition().x,finalScore->getPosition().y+finalScore->getContentSize().height+50)); //this->addChild(tip); CCString* strHighestScore = CCString::createWithFormat("%d", highestHistoryScore); highestScore = CCLabelBMFont::create(strHighestScore->_string.c_str(), "res/assets/font/font.fnt"); highestScore->setColor(ccc3(143, 146, 147)); highestScore->setAnchorPoint(ccp(0, 0.5));//设置锚点,即为缩放等操作的发生点。 highestScore->setPosition(ccp(140, winSize.height - 30)); this->addChild(highestScore); //如果分数比最高分高,则更新最高分,并显示,播放动画 if (score > highestHistoryScore) { CCUserDefault::sharedUserDefault()->setIntegerForKey("HighestScore", score); highestHistoryScore = score; CCDelayTime* delayChange = CCDelayTime::create(1.3f); CCMoveBy* moveOut = CCMoveBy::create(0.1f, ccp(0, 100)); CCCallFuncN* beginChange = CCCallFuncN::create(this, callfuncN_selector(GameOverLayer::beginChangeHighestScore)); CCMoveBy* moveIn = CCMoveBy::create(0.1f, ccp(0, -100)); CCFiniteTimeAction* sequence = CCSequence::create(delayChange, moveOut, beginChange, moveIn, NULL); highestScore->runAction(sequence); } this->setKeypadEnabled(true); bRet = true; } while (0); return bRet; }
bool UIr_Layer::init(){ if (!Layer::init()) { return false; } bag_open=false; rokerPosition=Vec2(150,150); workespaceopen=true; CCSprite *spRockerBG=CCSprite::create("CG-1086.png"); spRockerBG->setPosition(rokerPosition); spRockerBG->setOpacity(50); addChild(spRockerBG,1); rockerBGR=spRockerBG->getContentSize().width*0.5; auto spRockerF = Sprite::create("CG-7005.png"); spRockerF->setPosition(rokerPosition); addChild(spRockerF, 2,1); auto work = Sprite::create("work.png"); work->setPosition(160,470); addChild(work,2,8); auto labelttf=Label::createWithSystemFont("任务:", "Arial", 16); labelttf->setAnchorPoint(Vec2(0,1)); labelttf->setPosition(40,200); labelttf->setColor(ccc3(255, 0, 0)); labelttf->setString("任务:从左下角离开去找刘备"); work->addChild(labelttf,2,8); auto tol=MenuItemToggle::createWithCallback(CC_CALLBACK_1(UIr_Layer::callback1,this), MenuItemImage::create("close1.png", "close1.png"), MenuItemImage::create("open1.png", "open1.png"), NULL); tol->setPosition(24,613); //this->addChild(tol,2); auto item=MenuItemImage::create("CG-6997.png", "CG-6998.png", CC_CALLBACK_1(UIr_Layer::callback2,this)); item->setPosition(500,600); //test_began auto item2=MenuItemImage::create("CG-1487.png", "CG-1486.png", CC_CALLBACK_1(UIr_Layer::callback3,this)); item2->setPosition(600,600); //test_end auto menu=Menu::create(tol,item,item2,NULL); menu->setPosition(0,0); this->addChild(menu); auto attlistener=EventListenerTouchOneByOne::create(); attlistener->onTouchBegan=[=](Touch*touch,Event*event){ auto target=static_cast<Sprite*>(event->getCurrentTarget()); Vec2 locationInNode=target->convertToNodeSpace(touch->getLocation()); Size s=target->getContentSize();//点到判断碰撞 Rect rect=Rect(0,0,s.width,s.height); if (rect.containsPoint(locationInNode)) { return true; } return false; }; attlistener->onTouchMoved=[&](Touch*touch,Event*event){ Vec2 point=touch->getLocation(); auto target=static_cast<Sprite*>(event->getCurrentTarget()); if (sqrt(pow((rokerPosition.x-point.x),2)+pow((rokerPosition.y-point.y),2))>=rockerBGR){ float angle=getRad(point); target->setPosition(ccpAdd(getAnglePosition(rockerBGR, angle),rokerPosition)); }else{ target->setPosition(target->getPosition()+touch->getDelta()); } float angle=getRad(point); //CCLOG("hudu:%f",angle); if (angle<=PI/8&&angle>-PI/8) { type=1; } else if (angle>PI/8&&angle<=PI*3/8) { type=2; } else if (angle>PI*3/8&&angle<=PI*5/8) { type=3; } else if (angle>PI*5/8&&angle<=PI*7/8) { type=4; } else if (angle>PI*7/8||angle<=-PI*7/8) { type=5; } else if (angle>-PI*7/8&&angle<=-PI*5/8) { type=6; } else if (angle>-PI*5/8&&angle<=-PI*3/8) { type=7; } else if (angle>-PI*3/8&&angle<=-PI*1/8) { type=8; } // CCLOG("type:%d",type); }; attlistener->onTouchEnded=[&](Touch*touch,Event*event){ Sprite *spRockerF=(Sprite*)this->getChildByTag(1); spRockerF->runAction(CCMoveTo::create(0.05, rokerPosition)); type=0; }; Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(attlistener,spRockerF); return true; }
bool HeadUpDisplay::init(){ if(!CCMenu::init()) return false; /* Adding a "close" button to exit. */ CCMenuItemImage *pCloseItem = CCMenuItemImage::create("CloseNormal.png", "CloseSelected.png", this, menu_selector(HeadUpDisplay::menuCloseCallback)); CCSize scrSize = CCDirector::sharedDirector()->getWinSize(); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); pCloseItem->setPosition( ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); this->addChild(pCloseItem,1); /* Mesh */ CCSprite* mesh = CCSprite::create(); mesh->setTextureRect(CCRect(0,0,scrSize.width,scrSize.height)); mesh->setColor(ccc3(0,0,0)); mesh->setOpacity(0); mesh->setAnchorPoint(ccp(0,0)); mesh->setPosition(CCPointZero); mesh->setTag(_meshTag); this->addChild(mesh,0); /* Bubble Talk */ CCSprite* bubble = CCSprite::create("bubbleTalk.png"); CCPoint bblePos = scrSize/2; bubble->setPosition(bblePos); bubble->setScale(0); bubble->setTag(_bubbleTalkTag); this->addChild(bubble,0); /* Message */ CCLabelTTF* labelMsg = CCLabelTTF::create("Bonjour!\n :)","Artial", 32); CCSize bubbleSize = bubble->getContentSize(); labelMsg->setPosition(bubbleSize/2); labelMsg->setOpacity(0); labelMsg->setTag(_messageTag); bubble->addChild(labelMsg,0); /* Accept Button */ CCMenuItemImage* acceptButton = CCMenuItemImage::create( "acceptButton.png","acceptButtonPressed.png", this, menu_selector(HeadUpDisplay::hideMessage)); acceptButton->retain(); CCSize aBtnSize = acceptButton->getContentSize(); acceptButton->setPosition(ccp( bblePos.x + bubbleSize.width/2 - aBtnSize.width * .25f, bblePos.y - bubbleSize.height/2 + aBtnSize.height * .25f)); acceptButton->setVisible(false); this->addChild(acceptButton,0,_acceptButtonTag); this->setPosition(CCPointZero); return true; }
void MainGameScene::update(float dt) { // update game scene //update character mainCharacter->Update(dt); // update blocks //iterate through the list std::list<ColorBlock*>::iterator it; //lets just pretend that no more than 5 blocks will be deleted in the same frame std::list<ColorBlock*>::iterator toDelete[5]; int amountToDelete = 0; for (it = blocksList.begin(); it != blocksList.end(); it++) { // only process if the block isn't dying if (!(*it)->GetDying()) { // check if it's time to kill the block if ((*it)->getPositionY() > 650.0f || (*it)->getPositionY() < -85.0f || (*it)->getPositionX() < -20.0f || (*it)->getPositionX() > 850.0f) { if(amountToDelete < 5) { toDelete[amountToDelete] = it; amountToDelete++; } } else { // dont process if the block is already connected with the character if (!(*it)->GetAttached()) { // process colision detection b2ContactEdge* edge = (*it)->GetBody()->GetContactList(); while (edge != NULL) // if == null, no more collisions { if (edge->contact->IsTouching()) { // iterate through the list of contacts // if collided with character, don't delete if (((CCSprite*)edge->contact->GetFixtureB()->GetBody()->GetUserData())->getTag() == CHARACTER_TAG || ((CCSprite*)edge->contact->GetFixtureA()->GetBody()->GetUserData())->getTag() == CHARACTER_TAG) { // the block collided with character (*it)->AttachTo(mainCharacter->GetBody()); } // check if it's a attached block, so attached to this one else if (((CCSprite*)edge->contact->GetFixtureB()->GetBody()->GetUserData())->getTag() == BLOCK_TAG && ((CCSprite*)edge->contact->GetFixtureA()->GetBody()->GetUserData())->getTag() == BLOCK_TAG) { // check which one is the IT // attached based on this if (edge->contact->GetFixtureA()->GetBody() == (*it)->GetBody()) { // make sure it's already attached if(((ColorBlock*)edge->contact->GetFixtureB()->GetBody()->GetUserData())->GetAttached() && !((ColorBlock*)edge->contact->GetFixtureB()->GetBody()->GetUserData())->GetDying()) { // attach on B fixture (*it)->AttachTo(edge->contact->GetFixtureB()->GetBody()); } } else { if(((ColorBlock*)edge->contact->GetFixtureA()->GetBody()->GetUserData())->GetAttached() && !((ColorBlock*)edge->contact->GetFixtureA()->GetBody()->GetUserData())->GetDying()) { // attach on A fixture (*it)->AttachTo(edge->contact->GetFixtureA()->GetBody()); } } } } edge = edge->next; // go to the next colision } } // now process those which are already attached to the character body else { (*it)->BuildConnections(NULL, -1); // check if one of the attached blocks is on the death area if ((*it)->getPositionX() < 0.0f || (*it)->getPositionX() > 800.0f || (*it)->getPositionY() > 600.0f || (*it)->getPositionY() < 0.0f) { if (isConnected) { //send gameover signal through network RakNet::BitStream BsOut; BsOut.Write((RakNet::MessageID)ID_GAME_PLAYER_LOST); player2->Send(&BsOut,HIGH_PRIORITY,RELIABLE_ORDERED,0,player2Adress,false); } // game over animation goes here // for now just call the next scene //CCDirector::sharedDirector()->replaceScene(CCTransitionProgressHorizontal::transitionWithDuration(1.0f,PointsScene::scene())); CCDirector::sharedDirector()->pushScene(CCTransitionProgressHorizontal::transitionWithDuration(1.0f,PointsScene::scene())); // to prevent thousands of scenes being created this->unscheduleUpdate(); } } } } else { // check if it's time to be deleted if((*it)->getOpacity() == 0) { if(amountToDelete < 5) { toDelete[amountToDelete] = it; amountToDelete++; } } } } // delete dead ones for (int i = 0; i < amountToDelete; i++) { // remove from batch blocksBatch->removeChild((*toDelete[i]),true); // remove from local list blocksList.erase(toDelete[i]); } // update physics engine box2DWorld->Step(dt,20,20); // update raknet if (isConnected) { // receive packets RakNet::Packet* packet; for (packet = player2->Receive();packet;player2->DeallocatePacket(packet),packet=player2->Receive()) { // only process a packet that came from the other player if (packet->systemAddress == player2Adress) { // player disconnected if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION || packet->data[0] == ID_CONNECTION_LOST) { isConnected = false; // put some warning on the screen //create a text and make it goes up CCLabelBMFont* discWarning = CCLabelBMFont::create("Your opponent just disconnected","Assets/badab.fnt"); discWarning->setColor(ccc3(255,0,0)); discWarning->setPosition(ccp(400.0f,-20.0f)); CCSequence* warningSequence = CCSequence::create(CCMoveTo::create(4.0f,ccp(400.0f,200.0f)), CCCallFuncO::create(this,callfuncO_selector(MainGameScene::DeleteDisctionnectionWarning),discWarning)); discWarning->runAction(warningSequence); discWarning->runAction(CCFadeOut::create(4.0f));//fade this->addChild(discWarning,1000); } // other player just lost else if (packet->data[0] == ID_GAME_PLAYER_LOST) { otherGameOver = true; } else if (packet->data[0] == ID_GAME_NEW_POINTS) { // read new points from the other player int rs = 0; RakNet::BitStream bsIn(packet->data,packet->length,false); bsIn.IgnoreBytes(sizeof(RakNet::MessageID)); bsIn.Read((char*)&rs,sizeof(int)); pointsManager->SetP2Points(rs); } else if(packet->data[0] == ID_GAME_INIT_SWAP) { // other player will swap, prepare ChangeScreenSpecial* change = ChangeScreenSpecial::create(); this->addChild(change,701); change->ExecuteActual(); change->setTag(978); } else if(packet->data[0] == ID_GAME_SWAP_SCREENS) { // received information std::vector<BlockInformation> received; RakNet::BitStream bsIn(packet->data,packet->length,false); bsIn.IgnoreBytes(sizeof(RakNet::MessageID)); // number of blocks within the package int size = 0; bsIn.Read((char*)&size,sizeof(int)); BlockInformation* reci = new BlockInformation[size]; bsIn.Read((char*)reci,sizeof(BlockInformation) * size); // put on the received vector for (int p = 0; p < size; p++) { received.push_back(reci[p]); } delete reci; // now change the blocks //delete all non-dying blocks std::list<ColorBlock*>::iterator it; std::vector<ColorBlock*> toDelete; for (it = blocksList.begin(); it != blocksList.end(); it++) { if (!(*it)->GetDying()) { toDelete.push_back(*it); } } //delete them for (int c = 0; c < toDelete.size();c++) { blocksBatch->removeChild(toDelete[c],true); blocksList.remove(toDelete[c]); } //put them back for (int c = 0; c < received.size(); c++) { // create block on a random location ColorBlock* newBlock = ColorBlock::create("Assets/block.png"); // unattached blocks have 50% opacity newBlock->setOpacity(127); newBlock->setPositionX(received[c].posX); newBlock->setPositionY(received[c].posY); // add as a child to the batch blocksBatch->addChild(newBlock); //mainScene->addChild(newBlock); newBlock->InitInWorld(box2DWorld); if (received[c].color == BLOCK_GREEN) { newBlock->setColor(ccc3(0,255,0)); } else if (received[c].color == BLOCK_RED) { newBlock->setColor(ccc3(255,0,0)); } else if (received[c].color == BLOCK_BLUE) { newBlock->setColor(ccc3(0,0,255)); } // add to local list blocksList.push_back(newBlock); } } } } } }
void ArenaWindow::recv_3700() { Message *revMsg=(Message *)CData::getCData()->m_dictionary->objectForKey(3700); CData::getCData()->m_dictionary->removeObjectForKey(3700); if(revMsg) { load->removeFromParent(); this->unschedule(schedule_selector(ArenaWindow::recv_3700)); char* data=revMsg->data; CCLog("%s",data); Json::Reader read; Json::Value root; Json::Value jsonData; Json::Value petlist; if(read.parse(data, root)){ CCSprite* sp = CCSprite::create(); jsonData=root["data"]; petlist=jsonData["dsList"]; int sptimes = jsonData["sptimes"].asInt(); char titlechar[100] = ""; sprintf(titlechar, "当前排名:%d 今日挑战剩余次数:%d",jsonData["ranking"].asInt(),jsonData["sptimes"].asInt()); CCLabelTTF* titel = CCLabelTTF::create(titlechar, "hycc.ttf", 22,CCSizeMake(400, 0),kCCTextAlignmentCenter); titel->setColor(ccc3(255, 219, 160)); titel->setPosition(ccp(size.width/2, 600)); this->addChild(titel); int len = petlist.size(); for (int i=0; i<len; i++) { CCScale9Sprite* item = CCScale9Sprite::create("arena_item_bkg.png"); item->setContentSize(CCSizeMake(410, 85)); char rank[10] = ""; sprintf(rank, "%d",jsonData["dsList"][i]["ranking"].asInt()); CCLabelTTF* ranking = CCLabelTTF::create(rank, "hycc.ttf", 20,CCSizeMake(200, 0),kCCTextAlignmentCenter); //ranking->setColor(ccc3(255, 219, 160)); ranking->setPosition(ccp(37, 42)); item->addChild(ranking); CCLabelTTF* nickname = CCLabelTTF::create(jsonData["dsList"][i]["nickname"].asString().c_str(), "hycc.ttf", 18,CCSizeMake(200, 0),kCCTextAlignmentLeft); nickname->setColor(ccc3(255, 219, 160)); nickname->setAnchorPoint(ccp(0, 0)); nickname->setPosition(ccp(85, 30)); item->addChild(nickname); char levelchar[10] = ""; sprintf(levelchar, "%d级",jsonData["dsList"][i]["level"].asInt()); CCLabelTTF* level = CCLabelTTF::create(levelchar, "hycc.ttf", 18,CCSizeMake(200, 0),kCCTextAlignmentLeft); level->setAnchorPoint(ccp(0, 0)); level->setColor(ccc3(255, 219, 160)); level->setPosition(ccp(180, 30)); item->addChild(level); if (sptimes != 0) { CCMenuItemImage* ok = CCMenuItemImage::create("arena_btn_bat_1.png", "arena_btn_bat_2.png", this, menu_selector(ArenaWindow::clk_battle)); ok->setTag(jsonData["dsList"][i]["characterId"].asInt()); CCMenu* menu = CCMenu::create(); menu->setAnchorPoint(ccp(0, 0)); menu->setPosition(ccp(370, 40)); menu->addChild(ok); item->addChild(menu); } CCSprite* qsbkg = CCSprite::create("common_qs_bkg_4.png"); qsbkg->setScale(1.0); int pro = jsonData["dsList"][i]["profession"].asInt(); char prochar[20] = ""; sprintf(prochar, "qs_%04d.png",pro); CCSprite* headsp = CCSprite::create(prochar); headsp->setScale(0.18); headsp->setAnchorPoint(ccp(0, 0)); qsbkg->addChild(headsp); qsbkg->setPosition(ccp(265, 38)); item->addChild(qsbkg); item->setAnchorPoint(ccp(0.5, 1)); item->setPosition(ccp(0,-i*82));//82 sp->addChild(item); } sp->setPosition(ccp(size.width/2, 560)); this->addChild(sp); } } }
// on "init" you need to initialize your instance bool Tutorial::init() { //サイズ取得を行う origin = Director::getInstance()->getVisibleOrigin(); //使用端末の(0,0)地点 visibleSize = Director::getInstance()->getVisibleSize(); //使用端末の画面サイズ this->setTouchMode(kCCTouchesOneByOne); // シングルタッチモードにする this->setTouchEnabled(true); // タッチを有効にする(内部的にEventDispatcherに登録される) auto keyboardListener = EventListenerKeyboard::create(); keyboardListener->onKeyReleased = CC_CALLBACK_2(Tutorial::onKeyReleased, this); this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(keyboardListener, this); // 背景を生成 UserDefault* userDefault = UserDefault::sharedUserDefault(); int wk_flag = userDefault->getIntegerForKey(key_tutorialFlag, 1); Sprite* pBG; if (wk_flag == 3) { pBG = Sprite::create("help_1.png"); } else { // // NEXTボタン // MenuItemImage* pSaisei = MenuItemImage::create("button_saisei.png", // "button_saisei.png", // CC_CALLBACK_1(Tutorial::tapSaiseiMenu, this)); // pSaisei->setPosition(Point(visibleSize.width * 0.5, origin.y + 220)); // Menu* pMenu = Menu::create(pSaisei, NULL); // pMenu->setPosition(Point::ZERO); // pMenu->setTag(kTag_Saisei); // this->addChild(pMenu,2); //ターゲット Node* pTarget = Sprite::create("target_0.png"); pTarget->setPosition(Point(pTarget->getContentSize().width+50.0, visibleSize.height * 0.80)); pTarget->setTag(tagTargetImg); this->addChild(pTarget,2); Node* pTarget1 = Sprite::create("target_1.png"); pTarget1->setPosition(Point(pTarget->getContentSize().width+10.0, visibleSize.height * 0.80)); pTarget1->setTag(tagTargetImgSub1); this->addChild(pTarget1,1); pTarget1 = Sprite::create("target_1.png"); pTarget1->setPosition(Point(pTarget->getContentSize().width+90.0, visibleSize.height * 0.80)); pTarget1->setRotation(180); pTarget1->setTag(tagTargetImgSub2); this->addChild(pTarget1,1); //矢印表示 Node* pArrow = Sprite::create("back_blue.png"); pArrow->setPosition(Point(visibleSize.width-80, visibleSize.height * 0.80)); pArrow->setTag(tagArrow); this->addChild(pArrow,9); Node* pArrow1 = Sprite::create("13.png"); Size bgSize = pArrow->getContentSize(); pArrow1->setPosition(Point(bgSize.width * 0.5, bgSize.height * 0.5)); pArrow->addChild(pArrow1,10); pArrow->runAction(CCRepeatForever::create(Blink::create(5,5))); //メッセージ Node* pMsg = Sprite::create("help_msg1.png"); pMsg->setPosition(Point(visibleSize.width-150, visibleSize.height * 0.80-100)); pMsg->setTag(tagMsg); this->addChild(pMsg,2); pMsg = Sprite::create("help_msg3.png"); pMsg->setPosition(Point(visibleSize.width/2 , origin.y + 200)); pMsg->setTag(tagTap2); this->addChild(pMsg,2); LabelTTF* arrowLabel = LabelTTF::create("タップしてね", "Arial", 40); arrowLabel->setColor(ccc3(0, 0, 0)); arrowLabel->setPosition(Point(visibleSize.width/2 , origin.y + 200)); arrowLabel->setTag(tagTap); this->addChild(arrowLabel,3); arrowLabel->runAction(CCRepeatForever::create(Blink::create(5,7))); pBG = Sprite::create("Tutorial.png"); } pBG->setPosition(Point(visibleSize.width * 0.5, visibleSize.height * 0.5)); this->addChild(pBG); return true; }
void UITextInputField::LoadBinary(NiStream &kStream) { UIControlBase::LoadBinary(kStream); mutableDic* dic = kStream.GetStreamData(); float contentScale = CCDirector::sharedDirector()->getContentScaleFactor(); uint32_t bLocalizeString = 0; kStream.getIntAttributeValue(dic, "bLocalizeString", bLocalizeString); std::string strTemp = ""; kStream.getStringattributeValue(dic, "placeholder", strTemp); const char* placeholder = strTemp.c_str(); if (bLocalizeString > 0) { placeholder = CCLocalizedString(strTemp.c_str(), strTemp.c_str()); } uint32_t lengthLimit = 0; kStream.getIntAttributeValue(dic, "lengthLimit", lengthLimit); uint32_t isPassword = 0; kStream.getIntAttributeValue(dic, "isPassword", isPassword); int priority = kCCMenuHandlerPriority; kStream.getSignedIntAttributeValue(dic,"priority",priority); uint32_t dimensionWidth = 0; uint32_t dimensionHeight = 0; kStream.getIntAttributeValue(dic, "dimensionWidth", dimensionWidth); kStream.getIntAttributeValue(dic, "dimensionHeight", dimensionHeight); dimensionWidth /= contentScale; dimensionHeight /= contentScale; uint32_t alignment = 1; kStream.getIntAttributeValue(dic, "alignment", alignment); mutableDic *colorDic = static_cast<mutableDic*>(dic->objectForKey("color")); uint32_t color[3] = {255, 255, 255}; if(colorDic) { kStream.getIntAttributeValue(colorDic, "red", color[0]); kStream.getIntAttributeValue(colorDic, "green", color[1]); kStream.getIntAttributeValue(colorDic, "blue", color[2]); } string font = KJLinXin; kStream.getStringattributeValue(dic, "font", font); float largeFontSize = GameFontManager::largeFontSize(); uint32_t fontSize = largeFontSize * contentScale; kStream.getIntAttributeValue(dic, "fontSize", fontSize); fontSize /= contentScale; CCSize dimension = CCSizeMake(dimensionWidth, dimensionHeight); if(dimensionWidth > 0 && dimensionHeight < fontSize) { dimension = CCSizeMake(dimensionWidth, fontSize); } CCSize touchSize = CCSizeZero; mutableDic *rectDic = static_cast<mutableDic*>(dic->objectForKey("rect")); if(rectDic) { uint32_t useASRect = 0; std::string ASRectName = ""; std::string ASfile = KUI_BIN; uint32_t anchorPoint = 0; // if use Asprite Rect kStream.getIntAttributeValue(rectDic, "useASRect", useASRect); kStream.getIntAttributeValue(rectDic, "anchorPoint", anchorPoint); if(useASRect == 1) { kStream.getStringattributeValue(rectDic, "ASRectName", ASRectName); if(ASRectName != "") { mutableDic* dicAsMgr = static_cast<mutableDic*>(rectDic->objectForKey("AspriteManager")); // content attributes if (dicAsMgr) { if (IsIpad()) { kStream.getStringattributeValue(dicAsMgr, "ipad", ASfile); }else { kStream.getStringattributeValue(dicAsMgr, "iphone", ASfile); } } int ID = getResourceIDByName(ASRectName.c_str()); // name not exists, use normal method if(ID != -1) { ASprite *as = AspriteManager::getInstance()->getAsprite(ASfile); CCRect asRect = as->getframeRect(ID); touchSize = asRect.size; switch(anchorPoint) { case 0: { CCRect rect = as->getframeRect(ID); m_ptWorldPosition = rect.origin; } break; case 1: m_ptWorldPosition = as->GetFramePointMiddle(ID); break; default: break; } CCPoint parentWorldPosition = CCPointZero; if(m_pParent != NULL) { parentWorldPosition = m_pParent->getWorldPosition(); } m_ptLocalPosition.x = m_ptWorldPosition.x - parentWorldPosition.x; m_ptLocalPosition.y = m_ptWorldPosition.y - parentWorldPosition.y; } } } } m_pTextInputField = TextInputField::textFieldWithPlaceHolder(placeholder, dimension, (CCTextAlignment)alignment, font.c_str(), (float)fontSize ); m_pTextInputField->setAnchorPoint(ccp(0.5, 0.5)); m_pTextInputField->setPosition(m_ptLocalPosition); m_pTextInputField->setLengthLimit(lengthLimit); m_pTextInputField->setIsPassword(isPassword != 0); m_pTextInputField->setColor(ccc3(color[0], color[1], color[2])); m_pTextInputField->setInitPriority(priority); m_pTextInputField->setTouchInputSize(touchSize); // make background CreateWhiteBack(); if(m_pWhiteBack != NULL) { m_pWhiteBack->setPosition(m_ptLocalPosition); m_pWhiteBack->setVisible(m_bIsVisible); } m_pControlNode = m_pTextInputField; m_pControlNode->setVisible(m_bIsVisible); }
void CHecheng::addtupian(Hcdata* hc) { this->removeChildByTag(1001); this->removeChildByTag(1002); this->removeChildByTag(1003); this->removeChildByTag(1004); this->removeChildByTag(1005); //this->removeChildByTag(1006); this->removeChildByTag(1007); this->removeChildByTag(1008); this->removeChildByTag(1009); this->removeChildByTag(1010); this->removeChildByTag(1011); std::string nameA; std::string nameB; getjsonname(hc,nameA,nameB); int iconA = 0; int iconB = 0; int itemicons; char iconsA[100]=""; char iconsB[100]=""; getitempic(hc, itemicons); getjsonpic(hc, iconA, iconB); if(state==2){ sprintf(iconsA, "item_%d.png",iconA); sprintf(iconsB, "item_%d.png",iconB); } else if(state==1){ sprintf(iconsA, "item_%d.png",iconA); sprintf(iconsB, "item_%d.png",iconB); }else if(state==3){ sprintf(iconsA, "item_%d.png",iconA); sprintf(iconsB, "item_%d.png",iconB); } CCSprite* zuo = CCSprite::create(iconsA);//dj_08.png zuo->setPosition(ccp(127,675)); this->addChild(zuo,1,1001); if(hc->itemAcnt<hc->itemAGoal) { zuo->setColor(ccc3(100, 100, 100)); } char itemicon[100]=""; sprintf(itemicon, "item_%d.png",itemicons); CCSprite* you = CCSprite::create(iconsB); you->setPosition(ccp(512,675)); this->addChild(you,1,1002); if(hc->itemBcnt<hc->itemBGoal) { you->setColor(ccc3(100, 100, 100)); } CCSprite* zhong = CCSprite::create(itemicon);//dj_16.png zhong->setPosition(ccp(320,753)); this->addChild(zhong,1,1003); CCPoint zuopio = zuo->getPosition(); CCSize zuosize = zuo->getContentSize(); char zuozong1[100]=""; sprintf(zuozong1, "%d",hc->itemAGoal); CCLabelAtlas * zuoshuzi1 = CCLabelAtlas::create(zuozong1, "shuzi.png", 11.2, 16, '0'); // zuoshuzi1->setAnchorPoint(ccp(1,0.5)); zuoshuzi1->setPosition(ccp(zuopio.x+zuosize.width/2-40,zuopio.y-zuosize.height/2+15)); this->addChild(zuoshuzi1,1,1004); CCSprite* xiexian = CCSprite::create("xiexian.png"); xiexian->setPosition(ccp(zuopio.x,zuopio.y-zuosize.height/2+20)); this->addChild(xiexian,1,1005); char zuozong2[100]=""; sprintf(zuozong2, "%d",hc->itemAcnt); CCLabelAtlas * zuoshuzi2 = CCLabelAtlas::create(zuozong2, "shuzi1.png", 11.2, 16, '0'); // zuoshuzi2->setAnchorPoint(ccp(0,0.5)); zuoshuzi2->setPosition(ccp(zuopio.x-zuosize.width/2+25,zuopio.y-zuosize.height/2+15)); this->addChild(zuoshuzi2,1,1006); CCPoint youpio = you->getPosition(); CCSize yousize = you->getContentSize(); char youzong1[100]=""; sprintf(youzong1, "%d",hc->itemBGoal); CCLabelAtlas * youshuzi1 = CCLabelAtlas::create(youzong1, "shuzi.png", 11.2, 16, '0'); // youshuzi1->setAnchorPoint(ccp(1,0.5)); youshuzi1->setPosition(ccp(youpio.x+yousize.width/2-40,youpio.y-yousize.height/2+15)); this->addChild(youshuzi1,1,1007); CCSprite* xiexian1 = CCSprite::create("xiexian.png"); xiexian1->setPosition(ccp(youpio.x,youpio.y-yousize.height/2+20)); this->addChild(xiexian1,1,1008); char youzong2[100]=""; sprintf(youzong2, "%d",hc->itemBcnt); CCLabelAtlas * youshuzi2 = CCLabelAtlas::create(youzong2, "shuzi1.png", 11.2, 16, '0'); // youshuzi2->setAnchorPoint(ccp(0,0.5)); youshuzi2->setPosition(ccp(youpio.x-yousize.width/2+25,youpio.y-yousize.height/2+15)); this->addChild(youshuzi2,1,1009); CCLabelTTF * zuoname = CCLabelTTF::create(nameA.c_str(), "Helvetica", 20); CCLog("%s",nameA.c_str()); // zuoshuzi2->setAnchorPoint(ccp(0,0.5)); zuoname->setPosition(ccp(zuopio.x,zuopio.y+80)); this->addChild(zuoname,1,1010); CCLabelTTF * youname = CCLabelTTF::create(nameB.c_str(), "Helvetica", 20); CCLog("%s",nameB.c_str()); // zuoshuzi2->setAnchorPoint(ccp(0,0.5)); youname->setPosition(ccp(youpio.x,youpio.y+80)); this->addChild(youname,1,1011); this->removeChildByTag(00000); }
void Tutorial::onTouchEnded(Touch* touch, Event* event) { UserDefault* userDefault = UserDefault::sharedUserDefault(); int wk_flag = userDefault->getIntegerForKey(key_tutorialFlag, 1); if (wk_flag < 3) { Node* pArrow = this->getChildByTag(tagArrow); Node* pYubi; Node* pMsg; LabelTTF* arrowLabel; switch (scene_flag){ case 0: //アニメーション停止 pArrow->stopAllActions(); pArrow->runAction(Show::create()); pArrow->runAction(MoveTo::create(2, ccp(120.0, visibleSize.height * 0.80))); // メッセージ削除 pMsg = this->getChildByTag(tagMsg); pMsg->removeFromParentAndCleanup(true); pMsg = this->getChildByTag(tagTap); pMsg->removeFromParentAndCleanup(true); pMsg = this->getChildByTag(tagTap2); pMsg->removeFromParentAndCleanup(true); //スワイプアニメーション追加 pYubi = Sprite::create("yubi.png"); pYubi->setPosition(Point(visibleSize.width-120, visibleSize.height * 0.80-200)); pYubi->setRotation(120); pYubi->setTag(tagYubi); this->addChild(pYubi,2); pYubi->runAction(Sequence::create(MoveTo::create(1, ccp(120.0, visibleSize.height * 0.80-200)),MoveTo::create(0.7, ccp(120.0, visibleSize.height * 0.4)),NULL)); scene_flag++; this->scheduleOnce(schedule_selector(Tutorial::msg2), 2); break; case 1: //アニメーションキャンセル this->unschedule(schedule_selector(Tutorial::msg2)); //矢印を所定の位置へ移動 pArrow->stopAllActions(); pArrow->setPosition(Point(120.0, visibleSize.height * 0.80)); //yubiを所定の位置へ移動 pYubi = this->getChildByTag(tagYubi); pYubi->stopAllActions(); pYubi->setPosition(Point(120.0, visibleSize.height * 0.4)); pYubi->runAction(RotateBy::create(0.5f, -90.0f)); //メッセージ表示 pMsg = Sprite::create("help_msg2.png"); pMsg->setPosition(Point(280, visibleSize.height * 0.80-150)); pMsg->setTag(tagMsg); this->addChild(pMsg,2); pMsg = Sprite::create("help_msg3.png"); pMsg->setPosition(Point(visibleSize.width/2 , origin.y + 200)); pMsg->setTag(tagTap2); this->addChild(pMsg,2); arrowLabel = LabelTTF::create("タップしてね", "Arial", 40); arrowLabel->setColor(ccc3(0, 0, 0)); arrowLabel->setPosition(Point(visibleSize.width/2 , origin.y + 200)); arrowLabel->setTag(tagTap); this->addChild(arrowLabel,3); arrowLabel->runAction(CCRepeatForever::create(Blink::create(5,7))); scene_flag++; break; case 2: if (wk_flag == 1) { Scene* gameScene = (Scene*)TitleScene::create(); Director::getInstance()->replaceScene(gameScene); } else if (wk_flag == 2) { //相手レベル記録 UserDefault* userDefault = UserDefault::sharedUserDefault(); userDefault->setIntegerForKey(key_playEnemyLv, 1); // ゲーム画面の表示 Scene* scene = HelloWorld::createScene(); TransitionFlipX* tran = TransitionFlipX::create(0.2, scene); Director::sharedDirector()->replaceScene(tran); } } } else { if (wk_count > 3) { Scene* scene = PowerUp::createScene(); TransitionFlipX* tran = TransitionFlipX::create(1, scene); Director::sharedDirector()->replaceScene(tran); } else { wk_count = wk_count + 1; Sprite* pBG = Sprite::create(String::createWithFormat("help_%d.png", wk_count)->getCString()); pBG->setPosition(Point(visibleSize.width * 0.5, visibleSize.height * 0.5)); this->addChild(pBG); } } }
bool CHecheng::init() { if(!CCLayer::init()) { return false; } // this->setTouchEnabled(true); pf_dic=CCDictionary::create(); pf_dic->retain(); flag=true; P_dictionary = CCDictionary::create(); P_dictionary->retain(); num = 0; state =1; leng = 10*140; isxz = false; tpy = 2116; tableView = NULL; isa = false; m_index =0; isgx = false; m_cell =NULL; m_pf =NULL; tmpitemdata =NULL; //fasong(); size = CCDirector::sharedDirector()->getWinSize(); CCSprite *bkgHc=CCSprite::create("zjm_bkg.png"); bkgHc->setPosition(ccp(size.width/2, size.height/2)); this->addChild(bkgHc); CCSprite* bj = CCSprite::create("hc_bkg.png"); bj->setPosition(ccp(size.width/2, size.height/2)); this->addChild(bj); add1 = CCSprite::create("common_add.png"); add2 = CCSprite::create("common_add.png"); add3 = CCSprite::create("common_add.png"); add4 = CCSprite::create("common_add.png"); CCActionInterval* fadein1 = CCFadeIn::create(0.5); CCActionInterval* fadeout1 = CCFadeOut::create(0.5); CCActionInterval* action1 = CCSequence::create(fadein1,fadeout1,NULL); add1->runAction(CCRepeatForever::create(action1)); CCActionInterval* fadein2 = CCFadeIn::create(0.5); CCActionInterval* fadeout2 = CCFadeOut::create(0.5); CCActionInterval* action2 = CCSequence::create(fadein2,fadeout2,NULL); add2->runAction(CCRepeatForever::create(action2)); CCActionInterval* fadein3 = CCFadeIn::create(0.5); CCActionInterval* fadeout3 = CCFadeOut::create(0.5); CCActionInterval* action3 = CCSequence::create(fadein3,fadeout3,NULL); add3->runAction(CCRepeatForever::create(action3)); CCActionInterval* fadein4 = CCFadeIn::create(0.5); CCActionInterval* fadeout4 = CCFadeOut::create(0.5); CCActionInterval* action4 = CCSequence::create(fadein4,fadeout4,NULL); add4->runAction(CCRepeatForever::create(action4)); i1 = CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(CHecheng::openbag)); i1->setPosition(ccp(138, 455)); // sprite->addChild(i1); CCSize itemsz = i1->getContentSize(); i2 = CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(CHecheng::openbag)); i2->setPosition(ccp(243, 545)); // sprite->addChild(i2); i3 = CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(CHecheng::openbag)); i3->setPosition(ccp(348, 455)); // sprite->addChild(i3); i4 = CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(CHecheng::openbag)); i4->setPosition(ccp(243, 355)); // sprite->addChild(i4); add1->setPosition(ccp(itemsz.width/2, itemsz.height/2)); i1->addChild(add1); add2->setPosition(ccp(itemsz.width/2, itemsz.height/2)); i2->addChild(add2); add3->setPosition(ccp(itemsz.width/2, itemsz.height/2)); i3->addChild(add3); add4->setPosition(ccp(itemsz.width/2, itemsz.height/2)); i4->addChild(add4); gold = CCLabelTTF::create("", "hycc.ttf", 30, CCSizeMake(150, 0), kCCTextAlignmentLeft); gold->setAnchorPoint(ccp(0, 0)); gold->setColor(ccc3(222,173,98)); gold->setPosition(ccp(160, 205));//50,2 bj->addChild(gold); m_hc = CCMenuItemImage::create("hc_btn_hc_1.png", "hc_btn_hc_2.png","hc_btn_hc_3.png", this, menu_selector(CHecheng::fasong)); // m_hc->addChild(pricevalue); m_hc->setPosition(ccp(365, 220)); m_hc->setScale(1.3); m_hc->setEnabled(false); CCMenu* menu = CCMenu::create(i1,i2,i3,i4,m_hc,NULL); // CCPoint p = sprite->getPosition(); menu->setPosition(0,0); bj->addChild(menu); return true; }
bool ResultLayer::init() { if ( CCLayerColor::initWithColor( ccc4(255, 255, 255, 255) ) ) { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // make the labels of the score and the high score and add them on the layer. int score = Score::getScore(); int highScore = Score::getHighScore(); // CCLog("score = %d", score); // CCLog("high score= %d", highScore); CCString* scoreValue = CCString::createWithFormat("Score: %d", score); CCString* highScoreValue = CCString::createWithFormat("High Score: %d", highScore); // set font. CCLabelTTF* pScoreLabel = CCLabelTTF::create(scoreValue->getCString(), "arial", 48.0); // set the font color pScoreLabel->setColor(ccc3(255, 0, 127)); int widthScoreLabel =pScoreLabel->getContentSize().width; // set font. CCLabelTTF* pHighScoreLabel = CCLabelTTF::create(highScoreValue->getCString(), "arial", 48.0); // set the font color. pHighScoreLabel->setColor(ccc3(255, 0, 127)); // get the width and the height of the high score label. int widthHighScoreLabel =pHighScoreLabel->getContentSize().width; int heightHighScoreLabel = pHighScoreLabel->getContentSize().height; // set the positions of the labels. pScoreLabel->setPosition(ccp(origin.x + visibleSize.width / 2 - widthScoreLabel / 2, origin.y + (int)(visibleSize.height * (1.0 - 0.4)))); pHighScoreLabel->setPosition(ccp(origin.x + visibleSize.width / 2 - widthScoreLabel/ 2 + abs(widthHighScoreLabel - widthScoreLabel) / 2, origin.y + (int)(visibleSize.height * (1.0 - 0.4)) - heightHighScoreLabel - 20)); // add the labels to the layer. this->addChild(pScoreLabel, 1); this->addChild(pHighScoreLabel, 1); // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "BackNormal.png", "BackSelected.png", this, menu_selector(ResultLayer::menuBackCallback)); // Place the menu item bottom-right conner. // CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); // CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2, origin.y + pCloseItem->getContentSize().height/2)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); // Add the menu to SecondWorld layer as a child layer. this->addChild(pMenu, 1); return true; } else { return false; } }
bool UIListViewExTest_Horizontal::init() { if (UIScene::init()) { CCSize widgetSize = m_pWidget->getSize(); m_pDisplayValueLabel = UILabel::create(); m_pDisplayValueLabel->setText("Move by horizontal direction"); m_pDisplayValueLabel->setFontName("Marker Felt"); m_pDisplayValueLabel->setFontSize(32); m_pDisplayValueLabel->setAnchorPoint(ccp(0.5f, -1)); m_pDisplayValueLabel->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f + m_pDisplayValueLabel->getContentSize().height * 1.5)); m_pUiLayer->addWidget(m_pDisplayValueLabel); UILabel* alert = UILabel::create(); alert->setText("ListView horizontal"); alert->setFontName("Marker Felt"); alert->setFontSize(30); alert->setColor(ccc3(159, 168, 176)); alert->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 3.075)); m_pUiLayer->addWidget(alert); Layout* background = dynamic_cast<Layout*>(m_pUiLayer->getWidgetByName("background_Panel")); CCSize backgroundSize = background->getContentSize(); // create list view data m_array = CCArray::create(); CC_SAFE_RETAIN(m_array); for (int i = 0; i < 20; ++i) { CCString* ccstr = CCString::createWithFormat("listview_item_%d", i); m_array->addObject(ccstr); } // Create the list view UIListView* listView = UIListView::create(); // set list view direction listView->setDirection(SCROLLVIEW_DIR_HORIZONTAL); listView->setTouchEnabled(true); listView->setBounceEnabled(true); listView->setBackGroundImage("cocosgui/green_edit.png"); listView->setBackGroundImageScale9Enabled(true); listView->setSize(CCSizeMake(240, 130)); listView->setPosition(ccp((widgetSize.width - backgroundSize.width) / 2 + (backgroundSize.width - listView->getSize().width) / 2, (widgetSize.height - backgroundSize.height) / 2 + (backgroundSize.height - listView->getSize().height) / 2)); listView->addEventListenerListView(this, listvieweventselector(UIListViewExTest_Horizontal::selectedItemEvent)); m_pUiLayer->addWidget(listView); // create model UIButton* default_button = UIButton::create(); default_button->setName("TextButton"); default_button->setTouchEnabled(true); default_button->loadTextures("cocosgui/backtotoppressed.png", "cocosgui/backtotopnormal.png", ""); Layout* default_item = Layout::create(); default_item->setTouchEnabled(true); default_item->setSize(default_button->getSize()); default_button->setPosition(ccp(default_item->getSize().width / 2, default_item->getSize().height / 2)); default_item->addChild(default_button); // set model listView->setItemModel(default_item); // add default item int count = m_array->count(); for (int i = 0; i < count / 4; ++i) { listView->pushBackDefaultItem(); } // insert default item for (int i = 0; i < count / 4; ++i) { listView->insertDefaultItem(0); } // add custom item for (int i = 0; i < count / 4; ++i) { UIButton* custom_button = UIButton::create(); custom_button->setName("TextButton"); custom_button->setTouchEnabled(true); custom_button->loadTextures("cocosgui/button.png", "cocosgui/buttonHighlighted.png", ""); custom_button->setScale9Enabled(true); custom_button->setSize(default_button->getSize()); Layout *custom_item = Layout::create(); custom_item->setSize(custom_button->getSize()); custom_button->setPosition(ccp(custom_item->getSize().width / 2, custom_item->getSize().height / 2)); custom_item->addChild(custom_button); listView->pushBackCustomItem(custom_item); } // insert custom item CCArray *items = listView->getItems(); int items_count = items->count(); for (int i = 0; i < count / 4; ++i) { UIButton* custom_button = UIButton::create(); custom_button->setName("TextButton"); custom_button->setTouchEnabled(true); custom_button->loadTextures("cocosgui/button.png", "cocosgui/buttonHighlighted.png", ""); custom_button->setScale9Enabled(true); custom_button->setSize(default_button->getSize()); Layout *custom_item = Layout::create(); custom_item->setSize(custom_button->getSize()); custom_button->setPosition(ccp(custom_item->getSize().width / 2, custom_item->getSize().height / 2)); custom_item->addChild(custom_button); listView->insertCustomItem(custom_item, items_count); } // set item data items_count = items->count(); for (int i = 0; i < items_count; ++i) { UIWidget *item = listView->getItem(i); UIButton *button = static_cast<UIButton*>(item->getChildByName("TextButton")); int index = listView->getIndex(item); button->setTitleText(static_cast<CCString*>(m_array->objectAtIndex(index))->getCString()); } // remove last item listView->removeLastItem(); // remove item by index items_count = items->count(); listView->removeItem(items_count - 1); // set all items layout gravity listView->setGravity(LISTVIEW_GRAVITY_CENTER_VERTICAL); // set items margin listView->setItemsMargin(2); return true; } return false; }
void onCreate(CCNode *parent) { CCSize size = parent->getContentSize(); float x_middle = size.width / 2; float vertical = size.height * 0.25f; CCLabelTTF* label = CCLabelTTF::create(_("SelectColection.BuyFullVerdionPopUp.BuyTitle"), Fonts::getFontName(), 62); label->setFontSize(48); label->setPosition(ccp(x_middle, size.height*0.85f)); parent->addChild(label); //add 3 stars SpritesLoader spl = GraphicsManager::getLoaderFor(parent, "level-end/big_stars.plist", "level-end/big_stars.png"); spl->inject(); CCSprite* stars_spr = spl->loadSprite("big_stars_3.png"); stars_spr->setScale(0.75f); stars_spr->setPosition(ccp(x_middle, size.height*0.65f)); //add "or" text CCLabelTTF* or_text = CCLabelTTF::create(_("SelectColection.BuyFullVerdionPopUp.OrText"), Fonts::getFontName(), 40); or_text->setPosition(ccp(x_middle, size.height*0.5f)); parent->addChild(or_text); /** * @brief menu_spl */ SpritesLoader menu_spl = GraphicsManager::getLoaderFor(0, "collection-menu/collection_button.plist", "collection-menu/collection_button.png"); MenuSpriteBatch* menu = MenuSpriteBatch::create(menu_spl); menu->setPosition(ccp(0,0)); menu->setAnchorPoint(ccp(0,0)); menu->setContentSize(size); parent->addChild(menu); CCSprite* parent_rgb = (CCSprite*)parent->getChildByTag(123); if(parent_rgb) parent_rgb->setColor(GameInfo::getInstance()->getNegativeColor()); CCSprite* coll_button = menu_spl->loadSprite("collection_button.png"); //coll_button->setScale(coll_button->getContentSize().width/ // parent->getContentSize().width*0.6); AnimatedMenuItem *buy_item = AnimatedMenuItem::create( coll_button, this, menu_selector(Me::onBuy)); buy_item->setPosition(ccp(size.width*0.5, vertical)); buy_item->setBaseScale(coll_button->getContentSize().width/ parent->getContentSize().width*0.8); std::string text = _("SelectColection.BuyFullVerdionPopUp.Yes"); std::string price = ADInApp::getProduct("unlock_full")->getPrice(); std::string button_buy_text = text +'\n' + price; CCLabelTTF * buy_text = CCLabelTTF::create(button_buy_text.c_str(), Fonts::getFontName(), 45); buy_text->setColor(ccc3(255,255,255)); buy_text->setPosition(ccp(buy_item->getContentSize().width/2, buy_item->getContentSize().height/2)); buy_item->addChild(buy_text); menu->menu()->addChild(buy_item); }
bool GymnasticGameScene::init() { this->setKeypadEnabled(true); srand((unsigned)time(NULL)); if (!CCLayerColor::initWithColor(ccc4(255, 255, 255, 255))) { return false; } AudioManager::getAudioManager()->playSound(SOUND_GYMBACK); _standTimeValue = 0; _state = 0; _deadCount = 0; _gymback = CCSprite::create("gymnasticgameScene/images/gymback.jpg"); _gymback->setPosition(ccp(640,360)); this->addChild(_gymback, 0); _bar = CCSprite::create("gymnasticgameScene/images/bar.png"); _bar->setPosition(ccp(640,100)); this->addChild(_bar, 1); _player = CCSprite::create("gymnasticgameScene/images/gymner.png"); _player->setAnchorPoint(ccp(0.5f,0.0f)); _player->setPosition(ccp(640,120)); //_player->setRotationX(30.0f); //_player->setRotationY(30.0f); // _player->setRotation(30.0f); CCLog("angle is %f",_player->getRotation()); this->addChild(_player, 2); _rightBtn = CCMenuItemImage::create( "gymnasticgameScene/images/rightbtn.png", "gymnasticgameScene/images/rightbtnDown.png", this, menu_selector(GymnasticGameScene::gymnasticControlCallBack)); _rightBtn->setTag(1); _leftBtn = CCMenuItemImage::create("gymnasticgameScene/images/leftbtn.png", "gymnasticgameScene/images/leftbtnDown.png", this, menu_selector(GymnasticGameScene::gymnasticControlCallBack)); _leftBtn->setTag(2); _leftMenu = CCMenu::create( _leftBtn, NULL); _leftMenu->setPosition(ccp(170,200)); this->addChild(_leftMenu, 3); _rightMenu = CCMenu::create(_rightBtn, NULL); _rightMenu->setPosition(ccp(1110,200)); this->addChild(_rightMenu, 3); _standTime = CCLabelTTF::create("00:00", "fonts/darkforest.ttf", 100); _standTime->setColor(ccc3(0, 0, 0)); _standTime->setAnchorPoint(ccp(0,0.5)); _standTime->setPosition(ccp(20,600)); this->addChild(_standTime, 4); _timeTex = CCLabelTTF::create("TIME", "fonts/darkforest.ttf", 100); _timeTex->setColor(ccc3(0, 0, 0)); _timeTex->setAnchorPoint(ccp(0,0.5)); _timeTex->setPosition(ccp(40,680)); this->addChild(_timeTex, 4); this->schedule(schedule_selector(GymnasticGameScene::standTime),1.0f); this->schedule(schedule_selector(GymnasticGameScene::balanceinterruption),0.1f); return true; }
bool AllianceAreaPopupView::init(){ if(!PopupBaseView::init()){ return false; } setIsHDPanel(true); isMoving = false; this->setModelLayerOpacity(0); this->setContentSize(CCDirector::sharedDirector()->getWinSize()); m_picNode = CCNode::create(); m_picNode->setContentSize(CCSize(_tile_width * 2, _tile_height * 2)); m_picNode->setAnchorPoint(ccp(0, 0)); CCPoint testPoint =PopupViewController::getInstance()->getTouchPoint() + ccp(-_tile_width, -_tile_height); // m_picNode->setPosition(PopupViewController::getInstance()->getTouchPoint() + ccp(-_tile_width, -_tile_height)); CCPoint tilePoint = WorldController::getInstance()->getPointByIndex(m_tileIndex); CCPoint viewPoint = getInLayerPoint(tilePoint); viewPoint = viewPoint + ccp(-_tile_width * 1.5, -_tile_height); m_picNode->setPosition(viewPoint); m_cityNode = CCNode::create(); /*int mapIndex = 3; while (mapIndex >= 0) { auto arr = WorldController::getInstance()->getCityPicArr(mapIndex, 0, false ,44996); int posX = _tile_width / 2; int posY = _tile_height / 2; if(mapIndex == 0 || mapIndex == 2){ posX = _tile_width; } if(mapIndex == 3){ posX = _tile_width + posX; } if(mapIndex == 1 || mapIndex == 3){ posY = _tile_height; } if(mapIndex == 2){ posY = _tile_height + posY; } auto itMap = arr.begin(); while (itMap!=arr.end()) { std::string picName = (*itMap).pic; int addX = (*itMap).x; int addY = (*itMap).y; auto sprite = CCLoadSprite::createSprite(picName.c_str()); sprite->setAnchorPoint(ccp(0, 0)); if (CCCommonUtils::isIosAndroidPad()) { m_cityNode->addChild(sprite); sprite->setPosition(ccp(posX, posY) - ccp(_tile_width / 2, _tile_height / 2) + ccp(addX, addY)); } else { m_picNode->addChild(sprite); sprite->setPosition(ccp(posX, posY) - ccp(_tile_width / 2, _tile_height / 2) + ccp(addX, addY)); } ++itMap; } mapIndex--; }*/ auto tower = CCLoadSprite::createSprite("territory_fort.png"); tower->setPosition(ccp(_tile_width -25, _tile_height + 62)); m_picNode->addChild(tower); if (CCCommonUtils::isIosAndroidPad()) { m_picNode->addChild(m_cityNode); m_cityNode->setScale(WORLD_DEFAULT_HD_SCALE); m_cityNode->setPosition(ccp(-_tile_width * (WORLD_DEFAULT_HD_SCALE - 1),-_tile_height * (WORLD_DEFAULT_HD_SCALE - 1))); } CCPointArray* pointArr = CCPointArray::create(3); pointArr->addControlPoint(ccp(-70,59)); pointArr->addControlPoint(ccp(-2,23)); pointArr->addControlPoint(ccp(66,57)); CCLoadSprite::doResourceByCommonIndex(507, true); for (int i = 0; i < 3; i++) { auto bannerSprite = CCFlagWaveSprite::create(CCLoadSprite::loadResource("1212_double.png")); if (CCCommonUtils::isIosAndroidPad()) { bannerSprite->setScale(0.25); } else bannerSprite->setScale(0.18); bannerSprite->setPosition(ccp(_tile_width, _tile_height)+pointArr->getControlPointAtIndex(i) + ccp(12, 20)); m_picNode->addChild(bannerSprite); } CCLoadSprite::doResourceByCommonIndex(507, false); if (CCCommonUtils::isIosAndroidPad()) { m_cancelBtn = CCControlButton::create(CCLoadSprite::createScale9Sprite("but_blue.png")); m_cancelBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(AllianceAreaPopupView::onCancelBtnClick), CCControlEventTouchUpInside); m_cancelBtn->setPreferredSize(CCSize(160, 70)); m_cancelBtn->setScaleX(2.1); m_cancelBtn->setScaleY(1.7); m_confirmBtn = CCControlButton::create(CCLoadSprite::createScale9Sprite("btn_green3.png")); m_confirmBtn->setBackgroundSpriteForState(CCLoadSprite::createScale9Sprite("btn_green3.png"),CCControlStateHighlighted); m_confirmBtn->setBackgroundSpriteForState(CCLoadSprite::createScale9Sprite("Btn_grey.png"),CCControlStateDisabled); m_confirmBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(AllianceAreaPopupView::onConfirmBtnClick), CCControlEventTouchUpInside); m_confirmBtn->setPreferredSize(CCSize(160, 70)); m_confirmBtn->setScaleX(2.1); m_confirmBtn->setScaleY(1.7); auto bg = CCLoadSprite::createSprite("technology_11.png"); m_picNode->addChild(bg); m_btnLabel = CCLabelIF::create(_lang("115302").c_str()); m_btnLabel->setFontSize(32); m_btnLabel->setColor(ccc3(255, 255, 255)); m_btnLabel1 = CCLabelIF::create(_lang("115021").c_str()); m_btnLabel1->setFontSize(32); m_btnLabel1->setColor(ccc3(255, 255, 255)); m_picNode->addChild(m_cancelBtn); m_cancelBtn->setPosition(_tile_width - m_cancelBtn->getContentSize().width * m_cancelBtn->getScaleX() / 2 - 15, 0); m_picNode->addChild(m_confirmBtn); m_confirmBtn->setPosition(_tile_width + m_confirmBtn->getContentSize().width * m_confirmBtn->getScaleX() / 2 + 15, m_cancelBtn->getPositionY()); m_picNode->addChild(m_btnLabel); m_btnLabel->setPosition(m_confirmBtn->getPosition()); m_picNode->addChild(m_btnLabel1); m_btnLabel1->setPosition(m_cancelBtn->getPosition()); bg->setPosition(ccp(_tile_width, m_cancelBtn->getPositionY())); bg->setScaleY(8); bg->setScaleX(5); } else { m_cancelBtn = CCControlButton::create(CCLoadSprite::createScale9Sprite("but_blue.png")); CCCommonUtils::setButtonTitleColor(m_cancelBtn, ccc3(255, 255, 255)); CCCommonUtils::setButtonTitle(m_cancelBtn, _lang("115021").c_str()); m_cancelBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(AllianceAreaPopupView::onCancelBtnClick), CCControlEventTouchUpInside); m_cancelBtn->setPreferredSize(CCSize(160, 70)); m_confirmBtn = CCControlButton::create(CCLoadSprite::createScale9Sprite("btn_green3.png")); m_confirmBtn->setBackgroundSpriteForState(CCLoadSprite::createScale9Sprite("btn_green3.png"),CCControlStateHighlighted); m_confirmBtn->setBackgroundSpriteForState(CCLoadSprite::createScale9Sprite("Btn_grey.png"),CCControlStateDisabled); m_confirmBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(AllianceAreaPopupView::onConfirmBtnClick), CCControlEventTouchUpInside); m_confirmBtn->setPreferredSize(CCSize(160, 70)); CCCommonUtils::setButtonTitleColor(m_confirmBtn, ccc3(255, 255, 255)); CCCommonUtils::setButtonTitle(m_confirmBtn, _lang("115302").c_str()); auto bg = CCLoadSprite::createSprite("technology_11.png"); m_picNode->addChild(bg); m_iconNode = CCNode::create(); int num = WorldController::getInstance()->m_bAAreaCost; std::string picPath = ""; // picPath = "ui_gold.png"; // // // auto sprite = CCLoadSprite::createSprite(picPath.c_str()); // m_iconNode->addChild(sprite); // CCCommonUtils::setSpriteMaxSize(sprite, 40); m_numText = CCLabelIF::create(CC_ITOA(num)); // m_btnLabel = CCLabelIF::create(_lang("115302").c_str()); // m_btnLabel->setFontSize(22); // m_btnLabel->setColor(ccc3(255, 230, 116)); m_picNode->addChild(m_cancelBtn); m_cancelBtn->setPosition(_tile_width - m_cancelBtn->getContentSize().width / 2 - 15, 0); m_picNode->addChild(m_confirmBtn); m_confirmBtn->setPosition(_tile_width + m_confirmBtn->getContentSize().width / 2 + 15, m_cancelBtn->getPositionY()); // m_numBG = CCLoadSprite::createSprite("num_text_bg.png"); // m_picNode->addChild(m_numBG); // m_numBG->setScaleX(1.1); bg->setPosition(ccp(_tile_width, m_cancelBtn->getPositionY())); bg->setScaleY(4); bg->setScaleX(3); m_picNode->addChild(m_iconNode); m_iconNode->setPosition(m_confirmBtn->getPositionX() - 30, m_confirmBtn->getPositionY() - 15); // m_picNode->addChild(m_numText); // m_numText->setAnchorPoint(ccp(0, 0.5)); // m_numText->setPosition(m_confirmBtn->getPositionX(), m_confirmBtn->getPositionY() - 15); // m_picNode->addChild(m_btnLabel); // m_btnLabel->setPosition(m_confirmBtn->getPositionX(), m_confirmBtn->getPositionY() + 20); // m_numBG->setPosition(ccp(m_confirmBtn->getPositionX(), m_confirmBtn->getPositionY() - 15)); } this->addChild(m_picNode, 2); m_showNode = CCNode::create(); this->addChild(m_showNode, 1); refreshShowNode(false); return true; }
// on "init" you need to initialize your instance bool LooseScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize();//init size Vec2 origin = Director::getInstance()->getVisibleOrigin();// init the origin auto label = Label::createWithTTF("BETTER LUCK NEXT TIME", "fonts/Marker Felt.ttf", 44); label->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height - label->getContentSize().height)); label->setColor(ccc3(255, 215, 0)); this->addChild(label, 1); auto backgroundSprite = Sprite::create("GameOver.png");// main menu image backgroundSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); this->addChild(backgroundSprite); auto titleSprite = Sprite::create();//image titleSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); this->addChild(titleSprite); //button mapping to other screens //when click play it goes to the game scene auto NewGame = MenuItemImage::create("newGame.png", "newGame.png", CC_CALLBACK_1(LooseScene::GoToGameScene, this)); NewGame->setPosition(Point(visibleSize.width / 4 + origin.x, visibleSize.height / 5 + origin.y)); //LeaderBoard auto Leaderboard = MenuItemImage::create("leaderboard.png", "leaderboard.png", CC_CALLBACK_1(LooseScene::GoToLeaderBoard, this)); Leaderboard->setPosition(Point(visibleSize.width / 2.5 + origin.x, visibleSize.height / 5 + origin.y)); //Exit button auto closeItem = MenuItemImage::create("quit.png", "quit.png", CC_CALLBACK_1(LooseScene::menuCloseCallback, this)); closeItem->setPosition(Point(visibleSize.width / 1.66 + origin.x, visibleSize.height / 5 + origin.y)); //Go to the main menu screen auto MainMenu = MenuItemImage::create("Mainmenu.png", "Mainmenu.png", CC_CALLBACK_1(LooseScene::GoToMainMenuScene, this)); MainMenu->setPosition(Point(visibleSize.width / 1.3 + origin.x, visibleSize.height / 5 + origin.y)); auto NewGameButton = Menu::create(NewGame, NULL); NewGameButton->setPosition(Point::ZERO); this->addChild(NewGameButton); auto Menu = Menu::create(MainMenu, NULL); Menu->setPosition(Point::ZERO); this->addChild(Menu); auto LeaderBoard = Menu::create(Leaderboard, NULL); LeaderBoard->setPosition(Point::ZERO); this->addChild(LeaderBoard); auto exit = Menu::create(closeItem, NULL); exit->setPosition(Point::ZERO); this->addChild(exit); return true; }
void LayoutReader::setPropsFromJsonDictionary(ui::Widget *widget, const rapidjson::Value &options) { WidgetReader::setPropsFromJsonDictionary(widget, options); std::string jsonPath = GUIReader::shareReader()->getFilePath(); ui::Layout* panel = (ui::Layout*)widget; float w = 0, h = 0; bool adaptScrenn = DICTOOL->getBooleanValue_json(options, "adaptScreen"); if (adaptScrenn) { CCSize screenSize = CCDirector::sharedDirector()->getWinSize(); w = screenSize.width; h = screenSize.height; } else { w = DICTOOL->getFloatValue_json(options, "width"); h = DICTOOL->getFloatValue_json(options, "height"); } panel->setSize(CCSizeMake(w, h)); panel->setClippingEnabled(DICTOOL->getBooleanValue_json(options, "clipAble")); bool backGroundScale9Enable = DICTOOL->getBooleanValue_json(options, "backGroundScale9Enable"); panel->setBackGroundImageScale9Enabled(backGroundScale9Enable); int cr = DICTOOL->getIntValue_json(options, "bgColorR"); int cg = DICTOOL->getIntValue_json(options, "bgColorG"); int cb = DICTOOL->getIntValue_json(options, "bgColorB"); int scr = DICTOOL->getIntValue_json(options, "bgStartColorR"); int scg = DICTOOL->getIntValue_json(options, "bgStartColorG"); int scb = DICTOOL->getIntValue_json(options, "bgStartColorB"); int ecr = DICTOOL->getIntValue_json(options, "bgEndColorR"); int ecg = DICTOOL->getIntValue_json(options, "bgEndColorG"); int ecb = DICTOOL->getIntValue_json(options, "bgEndColorB"); float bgcv1 = DICTOOL->getFloatValue_json(options, "vectorX"); float bgcv2 = DICTOOL->getFloatValue_json(options, "vectorY"); panel->setBackGroundColorVector(ccp(bgcv1, bgcv2)); int co = DICTOOL->getIntValue_json(options, "bgColorOpacity"); int colorType = DICTOOL->getIntValue_json(options, "colorType"); panel->setBackGroundColorType(ui::LayoutBackGroundColorType(colorType)); panel->setBackGroundColor(ccc3(scr, scg, scb),ccc3(ecr, ecg, ecb)); panel->setBackGroundColor(ccc3(cr, cg, cb)); panel->setBackGroundColorOpacity(co); const rapidjson::Value& imageFileNameDic = DICTOOL->getSubDictionary_json(options, "backGroundImageData"); int imageFileNameType = DICTOOL->getIntValue_json(imageFileNameDic, "resourceType"); switch (imageFileNameType) { case 0: { std::string tp_b = jsonPath; const char* imageFileName = DICTOOL->getStringValue_json(imageFileNameDic, "path"); const char* imageFileName_tp = (imageFileName && (strcmp(imageFileName, "") != 0))?tp_b.append(imageFileName).c_str():NULL; panel->setBackGroundImage(imageFileName_tp); break; } case 1: { const char* imageFileName = DICTOOL->getStringValue_json(imageFileNameDic, "path"); panel->setBackGroundImage(imageFileName, ui::UI_TEX_TYPE_PLIST); break; } default: break; } if (backGroundScale9Enable) { float cx = DICTOOL->getFloatValue_json(options, "capInsetsX"); float cy = DICTOOL->getFloatValue_json(options, "capInsetsY"); float cw = DICTOOL->getFloatValue_json(options, "capInsetsWidth"); float ch = DICTOOL->getFloatValue_json(options, "capInsetsHeight"); panel->setBackGroundImageCapInsets(CCRectMake(cx, cy, cw, ch)); } panel->setLayoutType((ui::LayoutType)DICTOOL->getIntValue_json(options, "layoutType")); WidgetReader::setColorPropsFromJsonDictionary(widget, options); }
void ActionNode::initWithDictionary(const rapidjson::Value& dic,CCObject* root) { setActionTag(DICTOOL->getIntValue_json(dic, "ActionTag")); int actionFrameCount = DICTOOL->getArrayCount_json(dic, "actionframelist"); for (int i=0; i<actionFrameCount; i++) { const rapidjson::Value& actionFrameDic = DICTOOL->getDictionaryFromArray_json(dic, "actionframelist", i); int frameInex = DICTOOL->getIntValue_json(actionFrameDic,"frameid"); bool existPosition = DICTOOL->checkObjectExist_json(actionFrameDic,"positionx"); if (existPosition) { float positionX = DICTOOL->getFloatValue_json(actionFrameDic, "positionx"); float positionY = DICTOOL->getFloatValue_json(actionFrameDic, "positiony"); ActionMoveFrame* actionFrame = new ActionMoveFrame(); actionFrame->autorelease(); actionFrame->setFrameIndex(frameInex); actionFrame->setPosition(CCPointMake(positionX, positionY)); CCArray* cActionArray = (CCArray*)m_FrameArray->objectAtIndex((int)kKeyframeMove); cActionArray->addObject(actionFrame); } bool existScale = DICTOOL->checkObjectExist_json(actionFrameDic,"scalex"); if (existScale) { float scaleX = DICTOOL->getFloatValue_json(actionFrameDic, "scalex"); float scaleY = DICTOOL->getFloatValue_json(actionFrameDic, "scaley"); ActionScaleFrame* actionFrame = new ActionScaleFrame(); actionFrame->autorelease(); actionFrame->setFrameIndex(frameInex); actionFrame->setScaleX(scaleX); actionFrame->setScaleY(scaleY); CCArray* cActionArray = (CCArray*)m_FrameArray->objectAtIndex((int)kKeyframeScale); cActionArray->addObject(actionFrame); } bool existRotation = DICTOOL->checkObjectExist_json(actionFrameDic,"rotation"); if (existRotation) { float rotation = DICTOOL->getFloatValue_json(actionFrameDic, "rotation"); ActionRotationFrame* actionFrame = new ActionRotationFrame(); actionFrame->autorelease(); actionFrame->setFrameIndex(frameInex); actionFrame->setRotation(rotation); CCArray* cActionArray = (CCArray*)m_FrameArray->objectAtIndex((int)kKeyframeRotate); cActionArray->addObject(actionFrame); } bool existOpacity = DICTOOL->checkObjectExist_json(actionFrameDic,"opacity"); if (existOpacity) { int opacity = DICTOOL->getIntValue_json(actionFrameDic, "opacity"); ActionFadeFrame* actionFrame = new ActionFadeFrame(); actionFrame->autorelease(); actionFrame->setFrameIndex(frameInex); actionFrame->setOpacity(opacity); CCArray* cActionArray = (CCArray*)m_FrameArray->objectAtIndex((int)kKeyframeFade); cActionArray->addObject(actionFrame); } bool existColor = DICTOOL->checkObjectExist_json(actionFrameDic,"colorr"); if (existColor) { int colorR = DICTOOL->getIntValue_json(actionFrameDic, "colorr"); int colorG = DICTOOL->getIntValue_json(actionFrameDic, "colorg"); int colorB = DICTOOL->getIntValue_json(actionFrameDic, "colorb"); ActionTintFrame* actionFrame = new ActionTintFrame(); actionFrame->autorelease(); actionFrame->setFrameIndex(frameInex); actionFrame->setColor(ccc3(colorR,colorG,colorB)); CCArray* cActionArray = (CCArray*)m_FrameArray->objectAtIndex((int)kKeyframeTint); cActionArray->addObject(actionFrame); } } initActionNodeFromRoot(root); }
/*===*/ bool UISliderTest_Scale9::init() { if (UIScene::init()) { CCSize widgetSize = m_pWidget->getSize(); // Add a label in which the slider alert will be displayed m_pDisplayValueLabel = UILabel::create(); m_pDisplayValueLabel->setText("Move the slider thumb"); m_pDisplayValueLabel->setFontName("Marker Felt"); m_pDisplayValueLabel->setFontSize(32); m_pDisplayValueLabel->setAnchorPoint(ccp(0.5f, -1)); m_pDisplayValueLabel->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f)); m_pUiLayer->addWidget(m_pDisplayValueLabel); // Add the alert UILabel *alert = UILabel::create(); alert->setText("Slider scale9 render"); alert->setFontName("Marker Felt"); alert->setFontSize(30); alert->setColor(ccc3(159, 168, 176)); alert->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 1.75)); m_pUiLayer->addWidget(alert); // Create the slider UISlider* slider = UISlider::create(); slider->setTouchEnabled(true); slider->loadBarTexture("cocosgui/sliderTrack2.png"); slider->loadSlidBallTextures("cocosgui/sliderThumb.png", "cocosgui/sliderThumb.png", ""); slider->loadProgressBarTexture("cocosgui/slider_bar_active_9patch.png"); slider->setScale9Enabled(true); slider->setCapInsets(CCRectMake(0, 0, 0, 0)); slider->setSize(CCSizeMake(250, 19)); slider->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f)); // slider->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f + slider->getSize().height * 2)); slider->addEventListenerSlider(this, sliderpercentchangedselector(UISliderTest_Scale9::sliderEvent)); m_pUiLayer->addWidget(slider); /* // Create the slider that set allow min progress and allow max progress UISlider* sliderAllow = UISlider::create(); //===// // sliderAllow->setMinAllowPercent(20); // sliderAllow->setMaxAllowPercent(80); // sliderAllow->setTouchEnabled(true); sliderAllow->loadBarTexture("cocosgui/sliderTrack2.png"); sliderAllow->loadSlidBallTextures("cocosgui/sliderThumb.png", "cocosgui/sliderThumb.png", ""); sliderAllow->loadProgressBarTexture("cocosgui/slider_bar_active_9patch.png"); sliderAllow->setScale9Enabled(true); sliderAllow->setCapInsets(CCRectMake(0, 0, 0, 0)); sliderAllow->setSize(CCSizeMake(250, 10)); sliderAllow->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - slider->getSize().height * 2)); sliderAllow->addEventListenerSlider(this, sliderpercentchangedselector(UISliderTest_Scale9::sliderEvent)); m_pUiLayer->addWidget(sliderAllow); */ return true; } return false; }
void DPad::processTouch(CCPoint point) { //NSLog(@"Processing touch"); CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache(); //Set a color visual cue if pressed this->setColor(ccc3(255,200,200)); TouchableSprite::processTouch(point); CCPoint center = CCPointMake( this->rect().origin.x+this->rect().size.width/2, this->rect().origin.y+this->rect().size.height/2 ); //Process center dead zone if(GameHelper::distanceP1toP2(point, center) < this->rect().size.width/10){ //NSLog(@"NO TOUCH (dead zone)"); this->setDisplayFrame(cache->spriteFrameByName( "d_pad_normal.png")); this->setRotation(0); pressedVector = ccp(0,0); direction = NO_DIRECTION; return; } //Process direction float radians = GameHelper::vectorToRadians(CCPointMake(point.x-center.x, point.y-center.y)); float degrees = GameHelper::radiansToDegrees(radians)+90; float sin45 = 0.7071067812f; if(degrees >= 337.5 || degrees < 22.5){ this->setDisplayFrame( cache->spriteFrameByName("d_pad_horizontal.png")); this->setRotation(180); pressedVector = ccp(-1,0); direction = LEFT; }else if(degrees >= 22.5 && degrees < 67.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_diagonal.png")); this->setRotation(-90); pressedVector = ccp(-sin45,sin45); direction = UP_LEFT; }else if(degrees >= 67.5 && degrees < 112.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_horizontal.png")); this->setRotation(-90); pressedVector = ccp(0,1); direction = UP; }else if(degrees >= 112.5 && degrees < 157.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_diagonal.png")); this->setRotation(0); pressedVector = ccp(sin45,sin45); direction = UP_RIGHT; }else if(degrees >= 157.5 && degrees < 202.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_horizontal.png")); this->setRotation(0); pressedVector = ccp(1,0); direction = RIGHT; }else if(degrees >= 202.5 && degrees < 247.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_diagonal.png")); this->setRotation(90); pressedVector = ccp(sin45,-sin45); direction = DOWN_RIGHT; }else if(degrees >= 247.5 && degrees < 292.5){ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_horizontal.png")); this->setRotation(90); pressedVector = ccp(0,-1); direction = DOWN; }else{ this->setDisplayFrame( cache->spriteFrameByName( "d_pad_diagonal.png")); this->setRotation(180); pressedVector = ccp(-sin45,-sin45); direction = DOWN_LEFT; } }
bool CSLayerPopupMsg::init(POPUPMSG_ENUM popEnum, string strTitle, string strMessage) { m_strMessage = strMessage; m_strTitle = strTitle; m_popEnum = popEnum; CCSize size = CCDirector::sharedDirector()->getWinSize(); //添加背景 CCSprite *pSprite = CCSprite::spriteWithSpriteFrameName(m_strBackground.c_str()); pSprite->setPosition(ccp(size.width/2, size.height/2)); addChild(pSprite); //标题栏 CCLabelTTF *pLabel = CCLabelTTF::labelWithString(m_strTitle.c_str(), "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(size.width*2/5, size.height*7/10)); pLabel->setColor(ccc3(200,200,255)); pSprite->addChild(pLabel); //信息 pLabel = CCLabelTTF::labelWithString(m_strMessage.c_str(), "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(size.width/2, size.height/2)); pLabel->setColor(ccc3(155,155,255)); pSprite->addChild(pLabel); //添加按钮 CCMenu *pMenu = CCMenu::menuWithItems(NULL); pMenu->setPosition(CCPointZero); CCMenuItem *pItem; if (m_popEnum == POPUP_YESNOCANCEL) { pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0023.png", "Images/UI/common/0023.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_YES); pItem->setPosition(ccp(size.width*3/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("确认", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0022.png", "Images/UI/common/0022.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_NO); pItem->setPosition(ccp(size.width*5/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("取消", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0022.png", "Images/UI/common/0022.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_CANCEL); pItem->setPosition(ccp(size.width*7/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("关闭", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); } else if (m_popEnum == POPUP_YESNO) { pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0023.png", "Images/UI/common/0023.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_YES); pItem->setPosition(ccp(size.width*3/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("确认", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0022.png", "Images/UI/common/0022.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_NO); pItem->setPosition(ccp(size.width*5/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("取消", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); } else if (m_popEnum == POPUP_YES) { pItem = CCMenuItemImage::itemFromNormalImage("Images/UI/common/0023.png", "Images/UI/common/0023.png", this, menu_selector(CSLayerPopupMsg::callbackClick)); pItem->setTag(RESPONSE_YES); pItem->setPosition(ccp(size.width*3/10, size.height*2/5)); pMenu->addChild(pItem, 0); pLabel = CCLabelTTF::labelWithString("确认", "DFPHaiBaoW12-GB", 28); pLabel->setPosition(ccp(pItem->getContentSize().width/2, pItem->getContentSize().height/2)); pItem->addChild(pLabel); } addChild(pMenu); return true; }
void ObjectiveHandler::playObjective(bool showNotification) { //CCLog("new objective received!"); //CCLog("number of objectives: %d", objectives->count()); if(objectives->count() <= 0) { return; } for(int i = 0; i < GameHUD::getThis()->objectiveDescriptions->count(); i++) { CCLabelTTF* tempLabel = (CCLabelTTF*) GameHUD::getThis()->objectiveDescriptions->objectAtIndex(i); GameHUD::getThis()->objectiveMenu->removeChild(tempLabel, true); } if(nextID == 0) { obj = (Objective*) objectives->objectAtIndex(0); } else { obj = NULL; for(int i = 0; i < objectives->count(); i++) { Objective* temp = (Objective*) objectives->objectAtIndex(i); if(temp->oid == nextID) { obj = temp; } } } if(obj == NULL) { nextID = currID; if(UserProfile::getThis()->gameLevel == 1) { NotificationPopup::getThis()->showScenario1Congratulations(); } else if(UserProfile::getThis()->gameLevel == 2) { NotificationPopup::getThis()->showScenario2Congratulations(); } if(UserProfile::getThis()->gameLevel == 4) { NotificationPopup::getThis()->showScenario4Congratulations(); } else if(UserProfile::getThis()->gameLevel == 5) { NotificationPopup::getThis()->showScenario5Congratulations(); } else if(UserProfile::getThis()->gameLevel == 6) { NotificationPopup::getThis()->showScenario6Congratulations(); } return; } stringstream ss; stringstream ss1; stringstream ss2; if(obj->oType == GoldGoal) { ss << "Cumulate Gold"; ss1 << "Collect gold of " << obj->value << "!"; ss2 << "(" << GameHUD::getThis()->money << "/" << obj->value << ")"; progressNumber = GameHUD::getThis()->money; } else if(obj->oType == FoodGoal) { ss << "Cumulate Food"; ss1 << "Collect food of " << obj->value << "!"; ss2 << "(" << GameHUD::getThis()->foodLabel->getString() << "/" << obj->value << ")"; progressNumber = ::atoi(GameHUD::getThis()->foodLabel->getString()); } else if(obj->oType == PopulationGoal) { ss << "Sustain Population"; ss1 << "Raise your population to " << obj->value << "!"; CCArray* spritesOnMap = SpriteHandler::getThis()->spritesOnMap; int num = 0; for (int i = 0; i < spritesOnMap->count(); i++) { GameSprite* gs = (GameSprite*) spritesOnMap->objectAtIndex(i); if(gs->villagerClass != V_CLASS_END && gs->villagerClass != V_BANDIT && gs->getHome() != NULL) { num++; } } ss2 << "(" << num << "/" << obj->value << ")"; progressNumber = num; } else if(obj->oType == RaisePopulationGoal) { ss << "Raise Population"; ss1 << "Raise your population by " << obj->value << "!"; CCArray* spritesOnMap = SpriteHandler::getThis()->spritesOnMap; int num = 0; for (int i = 0; i < spritesOnMap->count(); i++) { GameSprite* gs = (GameSprite*) spritesOnMap->objectAtIndex(i); if(gs->villagerClass != V_CLASS_END && gs->villagerClass != V_BANDIT) { num++; } } startPopulation = num; targetPopulation = startPopulation + obj->value; int currentPopulation = obj->value - (targetPopulation - startPopulation); if(currentPopulation < 0) { currentPopulation = 0; } else if(currentPopulation > obj->value) { currentPopulation = obj->value; } ss2 << "(" << obj->value - (targetPopulation - startPopulation) << "/" << obj->value << ")"; progressNumber = obj->value - (targetPopulation - startPopulation); } else if(obj->oType == ArmyGoal) { ss << "Build Army"; ss1 << "Build 5 guard towers and man them."; int numberOfMannedTowers = 0; CCArray* guardTowers = BuildingHandler::getThis()->militaryOnMap; for(int i = 0; i < guardTowers->count(); i++) { Building* bui = (Building*)guardTowers->objectAtIndex(i); if(bui->memberSpriteList->count() > 0) { numberOfMannedTowers += 1; } } ss2 << "(" << numberOfMannedTowers << "/" << obj->value << ")"; progressNumber = numberOfMannedTowers; } else if(obj->oType == ReputationGoal) { ss << "Achieve Reputation"; ss1 << "Raise your reputation to " << obj->value << "!"; ss2 << "(" << GameHUD::getThis()->reputation << "/" << obj->value << ")"; progressNumber = GameHUD::getThis()->reputation; } else if(obj->oType == BuildBuilding) { ss << "Build a Building"; ss1 << "Build a Building: " << obj->strValue << "!"; ss2 << "(Build: Incomplete)"; progressNumber = 0; } else if(obj->oType == DisplayGoal) { ss << obj->title; ss1 << obj->content; ss2 << obj->progress; } else { ss << "OBJECTIVE"; ss1 << "There is no objectives currently!"; ss2 << ""; progressNumber = -1; } GameHUD::getThis()->objectiveTitle->setString(ss.str().c_str()); GameHUD::getThis()->objectiveProgress->setString(ss2.str().c_str()); string objectiveDescription = ss1.str(); vector<string> objectiveDescriptionTokens = GlobalHelper::split(objectiveDescription, ' '); CCSize screenSize = CCDirector::sharedDirector()->getWinSize(); ccColor3B colorWhite = ccc3(255, 255, 255); float startX = screenSize.width * 0.11f; float startY = screenSize.height - 510; float offX = 0; float offY = 0; float limit = 700; string tempString = ""; string previousString = ""; for (int i = 0; i < objectiveDescriptionTokens.size(); i++) { previousString = tempString; string temp = objectiveDescriptionTokens.at(i); if (i > 0) { tempString = tempString + " "; } tempString = tempString + temp; CCLabelTTF* tempLabel = CCLabelTTF::create(tempString.c_str(), "Shojumaru-Regular", 28); tempLabel->retain(); if(startX + tempLabel->boundingBox().size.width > limit) { CCLabelTTF* theLabel = CCLabelTTF::create(previousString.c_str(), "Shojumaru-Regular", 28); theLabel->setAnchorPoint(ccp(0, 1)); theLabel->setPosition(ccp(startX + offX, startY + offY)); theLabel->setColor(colorWhite); GameHUD::getThis()->objectiveDescriptions->addObject(theLabel); GameHUD::getThis()->objectiveMenu->addChild(theLabel); tempString = temp; offY -= 25; } CC_SAFE_RELEASE(tempLabel); } CCLabelTTF* tempLabel = CCLabelTTF::create(tempString.c_str(), "Shojumaru-Regular", 28); tempLabel->setAnchorPoint(ccp(0, 1)); tempLabel->setPosition(ccp(startX + offX, startY + offY)); tempLabel->setColor(colorWhite); GameHUD::getThis()->objectiveDescriptions->addObject(tempLabel); GameHUD::getThis()->objectiveMenu->addChild(tempLabel); currID = obj->oid; nextID = obj->nid; if(obj->timeLimit > 0) { ss.str(std::string()); if(obj->timeLimit < 10) { ss << "0"; } ss << obj->timeLimit << ":" << "00"; GameHUD::getThis()->objectiveTime->setString(ss.str().c_str()); GameHUD::getThis()->objectiveTime->setVisible(true); GameHUD::getThis()->targetTime = obj->timeLimit * 60.0f; GameHUD::getThis()->currentTime = 0; GameHUD::getThis()->hasTimer = true; } else { GameHUD::getThis()->objectiveTime->setVisible(false); } stringstream sss; sss << "You receive a new objective!"; GameHUD::getThis()->addNewNotification(sss.str()); if(showNotification) { GameHUD::getThis()->scheduleShowNewObjectiveNotification(); } if(obj->scheduleScenario) { GameHUD::getThis()->hasScenario = true; GameHUD::getThis()->scenarioTime = obj->scenarioTime; } }
CCLayer* Tornado::getUnitCardDesc(int level,bool isAll) { CCLayer* layer = CCLayer::create(); float attackLevelData = MyUtil::getInstance()->updateLevelByRate(0,baseDamage, level, updateDamageRate); float attackMaxData = MyUtil::getInstance()->updateLevelByRate(0,baseDamage, unitBean->getMaxLevel(), updateDamageRate); CCSprite* attackIcon = CCSprite::createWithSpriteFrameName("damageIcon.png"); attackIcon->setPosition(ccp(40,360)); layer->addChild(attackIcon); attackIcon->setScale(1.3); GXProgressBar* attackBar = GXProgressBar::create(CCSprite::create("levelBarUp.png"), CCSprite::create("BarDown.png")); attackBar->setContentSize(CCSizeMake(416,20)); attackBar->updatePercentage((attackLevelData+baseDamage*unitBean->getMaxLevel())/(attackMaxData+baseDamage*unitBean->getMaxLevel())); attackBar->setPosition(ccp(70,337)); char str[100] = {0}; sprintf(str, "每秒造成伤害:%d",(int)(attackLevelData)); CCLabelTTF* attackLabel = CCLabelTTF::create(str, "Arial", 28); attackLabel->setAnchorPoint(ccp(0,0)); attackLabel->setColor(ccc3(238,204,122)); attackLabel->setPosition(ccp(70,352)); layer->addChild(attackBar); layer->addChild(attackLabel); // CCLog("damageRate:%f",attackLevelData/attackMaxData); float speedLevelData = MyUtil::getInstance()->updateLevelByCount(baseSpeed, level, updateSpeedRate); float speedMaxData = MyUtil::getInstance()->updateLevelByCount(baseSpeed, unitBean->getMaxLevel(), updateSpeedRate); CCSprite* speedIcon = CCSprite::createWithSpriteFrameName("speedIcon.png"); speedIcon->setScale(1.3); speedIcon->setPosition(ccp(40,300)); layer->addChild(speedIcon); GXProgressBar* speedBar = GXProgressBar::create(CCSprite::create("levelBarUp.png"), CCSprite::create("BarDown.png")); speedBar->setContentSize(CCSizeMake(416,20)); speedBar->updatePercentage(speedLevelData/speedMaxData); speedBar->setPosition(ccp(70,277)); sprintf(str, "移动速度:%d",(int)(speedLevelData*10)); CCLabelTTF* speedLabel = CCLabelTTF::create(str, "Arial", 24); speedLabel->setAnchorPoint(ccp(0,0)); speedLabel->setColor(ccc3(238,204,122)); speedLabel->setPosition(ccp(70,292)); layer->addChild(speedBar); layer->addChild(speedLabel); // CCLog("speedRate:%f",speedLevelData/speedMaxData); float healthLevelData = MyUtil::getInstance()->updateLevelByRate(0,baseHealth, level, updateHealthRate); float healthMaxData = MyUtil::getInstance()->updateLevelByRate(0,baseHealth, unitBean->getMaxLevel(),updateHealthRate); CCSprite* healthIcon = CCSprite::createWithSpriteFrameName("healthIcon.png"); healthIcon->setScale(1.3); healthIcon->setPosition(ccp(40,240)); layer->addChild(healthIcon); GXProgressBar* healthBar = GXProgressBar::create(CCSprite::create("levelBarUp.png"), CCSprite::create("BarDown.png")); healthBar->setContentSize(CCSizeMake(416,20)); healthBar->updatePercentage((healthLevelData+baseHealth*unitBean->getMaxLevel())/(healthMaxData+baseHealth*unitBean->getMaxLevel())); healthBar->setPosition(ccp(70,217)); sprintf(str, "耐久度:%d",(int)healthLevelData); CCLabelTTF* healthLabel = CCLabelTTF::create(str, "Arial", 24); healthLabel->setAnchorPoint(ccp(0,0)); healthLabel->setColor(ccc3(238,204,122)); healthLabel->setPosition(ccp(70,232)); layer->addChild(healthBar); layer->addChild(healthLabel); // CCLog("lifeRate:%f",healthLevelData/healthMaxData); float costLevelData = MyUtil::getInstance()->updateLevelByRate(0,baseCost, level, updateCostRate); float costMaxData = MyUtil::getInstance()->updateLevelByRate(0,baseCost, unitBean->getMaxLevel(), updateCostRate); CCSprite* costIcon = CCSprite::createWithSpriteFrameName("oilIcon.png"); costIcon->setPosition(ccp(40,180)); costIcon->setScale(40/costIcon->getContentSize().width); layer->addChild(costIcon); GXProgressBar* costBar = GXProgressBar::create(CCSprite::create("levelBarUp.png"), CCSprite::create("BarDown.png")); costBar->setContentSize(CCSizeMake(416,20)); costBar->updatePercentage((costLevelData+baseCost*unitBean->getMaxLevel())/(costMaxData+baseCost*unitBean->getMaxLevel())); costBar->setPosition(ccp(70,157)); sprintf(str, "派遣使用油料:%d",(int)(costLevelData)); CCLabelTTF* costLabel = CCLabelTTF::create(str, "Arial", 24); costLabel->setAnchorPoint(ccp(0,0)); costLabel->setColor(ccc3(238,204,122)); costLabel->setPosition(ccp(70,172)); layer->addChild(costBar); layer->addChild(costLabel); if (!isAll) { return layer; } sprintf(str, "最大等级:%d",(int)unitBean->getMaxLevel()); CCLabelTTF* description1 = CCLabelTTF::create(str, "Arial", 26); description1->setAnchorPoint(ccp(0.5,0.5)); description1->setColor(ccc3(238,204,122)); description1->setPosition(ccp(260,110)); layer->addChild(description1); CCSprite* underline1 = CCSprite::createWithSpriteFrameName("underline.png"); underline1->setPosition(ccp(260,95)); layer->addChild(underline1); sprintf(str, "攻击距离:%d格",(int)baseAttackRange); CCLabelTTF* description2 = CCLabelTTF::create(str, "Arial", 26); description2->setAnchorPoint(ccp(0.5,0.5)); description2->setColor(ccc3(238,204,122)); description2->setPosition(ccp(260,70)); layer->addChild(description2); CCSprite* underline2 = CCSprite::createWithSpriteFrameName("underline.png"); underline2->setPosition(ccp(260,55)); layer->addChild(underline2); CCLabelTTF* description3 = CCLabelTTF::create("主要目标:任意目标", "Arial", 26); description3->setAnchorPoint(ccp(0.5,0.5)); description3->setColor(ccc3(238,204,122)); description3->setPosition(ccp(260,30)); layer->addChild(description3); CCSprite* underline3 = CCSprite::createWithSpriteFrameName("underline.png"); underline3->setPosition(ccp(260,15)); layer->addChild(underline3); return layer; }
bool xuanren::init(){ if(!CCLayer::init()){ return false; } CCLog("xuanren---------------------------0"); flag=0; size=CCDirector::sharedDirector()->getWinSize(); CCSprite *backGround=CCSprite::create("selectrole_bkg.png"); backGround->setPosition(ccp(size.width/2, size.height/2)); this->addChild(backGround); CCSprite * kuang=CCSprite::create("common_item_bkg.png"); kuang->setScale(1); kuang->setTag(9002); // kuang->setAnchorPoint(ccp(0, 0)); selectBtn=CCMenuItemImage::create("common_btn_ok_1.png", "common_btn_ok_2.png", "common_btn_ok_3.png",this, menu_selector(xuanren::EnterName)); selectBtn->setScale(1.3); CCMenu *selectMenu=CCMenu::create(selectBtn,NULL); selectMenu->setPosition(ccp(size.width/2, 100)); this->addChild(selectMenu,1); CCLog("xuanren---------------------------1"); jieshao=CCLabelTTF::create("", "hycc.ttf", 23, CCSizeMake(450,58),kCCTextAlignmentCenter); jieshao->setColor(ccc3(134,105,59)); jieshao->setAnchorPoint(ccp(0, 0)); jieshao->setPosition(ccp(50, 245));//原始375 jieshao->setDimensions(CCSizeMake(300, 0)); jieshao->setHorizontalAlignment(kCCTextAlignmentLeft); jieshao->setVerticalAlignment(kCCVerticalTextAlignmentTop); this->addChild(jieshao,1); mingcheng=CCLabelTTF::create("第三方","hycc.ttf" , 40, CCSizeMake(120,40), kCCTextAlignmentLeft); mingcheng->setPosition(ccp(80, 905));//原始275 //this->addChild(mingcheng,1); jineng=CCLabelTTF::create("技能:啊啊", "hycc.ttf", 25,CCSizeMake(135,25), kCCTextAlignmentLeft); jineng->setPosition(ccp(85, 860));//原始280 //this->addChild(jineng,1); mingcheng=CCLabelTTF::create("第三方","hycc.ttf" , 40, CCSizeMake(110,40), kCCTextAlignmentLeft); // touxiang1=CCSprite::create(r_xuanren_icon); // touxiang1->setPosition(ccp(540, 835));//原始100 // touxiang2=CCSprite::create(r_xuanren_icon); // touxiang2->setPosition(ccp(540, 660)); // touxiang3=CCSprite::create(r_xuanren_icon); // touxiang3->setPosition(ccp(540, 485)); // CCSize sz = CCSizeMake(72, 72); btn1=CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(xuanren::FirstPerson)); CCSize btnSize=btn1->getContentSize(); btn1->setScale(1.0); CCLog("xuanren---------------------------2"); CCSprite* btnsp1 = CCSprite::create("qs_0001.png"); btnsp1->setScale(0.18); btnsp1->setAnchorPoint(ccp(0.5,0.5)); //btnsp1->setPosition(ccp(0,0)); btn1->addChild(btnsp1); btnsp1->setPosition(ccp(btnSize.width/2, btnSize.height/2)); // btn1->setScale(0.38); // CCSprite * pzk=CCSprite::create("pz_k_04.png"); // pzk->setAnchorPoint(ccp(0, 0)); // pzk->setPosition(ccp(0, 0)); // btn1->addChild(pzk); // btn1->setPosition(ccp(-160, 0));//0 175 btn2=CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(xuanren::SecondPerson)); btn2->setScale(1.0); CCSprite* btnsp2 = CCSprite::create("qs_0002.png"); btnsp2->setScale(0.18); btnsp2->setAnchorPoint(ccp(0.5,0.5)); btn2->addChild(btnsp2); btnsp2->setPosition(ccp(btnSize.width/2, btnSize.height/2)); // CCSprite * pzk2=CCSprite::create("pz_k_04.png"); // pzk2->setAnchorPoint(ccp(0, 0)); // pzk2->setPosition(ccp(0, 0)); // btn2->addChild(pzk2); // btn2->setPosition(ccp(0, 0));//0 0 btn3=CCMenuItemImage::create("common_item_bkg1.png", "common_item_bkg1.png", this, menu_selector(xuanren::ThridPerson)); btn3->setScale(1.0); CCSprite* btnsp3 = CCSprite::create("qs_0003.png"); btnsp3->setScale(0.18); btnsp3->setAnchorPoint(ccp(0.5,0.5)); btn3->addChild(btnsp3); btnsp3->setPosition(ccp(btnSize.width/2, btnSize.height/2)); // CCSprite * pzk3=CCSprite::create("pz_k_04.png"); // pzk3->setAnchorPoint(ccp(0, 0)); // pzk3->setPosition(ccp(0, 0)); // btn3->addChild(pzk3); // btn3->setPosition(ccp(160, 0));//0 0 // CCSize sz = btn1->getContentSize(); // kuang->setPosition(ccp(sz.width/2, sz.height/2)); // btn1->addChild(kuang,1); CCMenu *menu=CCMenu::create(btn1,btn2,btn3,NULL); menu->alignItemsHorizontallyWithPadding(30); menu->setPosition(ccp(size.width/2, size.height/2-218));//原始92 548 660 this->addChild(menu); renwu=CCSprite::create(); renwu->setPosition(ccp(size.width/2, size.height/2+100));//原始380 this->addChild(renwu); CCLog("xuanren---------------------------3"); FirstPerson(); return true; }
void LayerLogin::zhenping(){ pSpriteDialogLogin = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_input.png"));//CCSprite::create("login_bg_en.png"); pSpriteDialogLogin->setPosition(ccp(winSize.width*0.5,winSize.height *0.5-100)); this->addChild(pSpriteDialogLogin); CCMenuItemImage* btn_login = CCMenuItemImage::create(); btn_login->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_login_1.png")); btn_login->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_login_2.png")); btn_login->setTarget(this, SEL_MenuHandler(&LayerLogin::menuItemCallbackLogin)); CCMenu *pMenu = CCMenu::create(); pMenu->alignItemsHorizontally(); pMenu->addChild(btn_login); //pMenu->setPosition(pSpriteDialogLogin->getContentSize().width-75,pSpriteDialogLogin->getContentSize().height/2-10); pMenu->setPosition(ccp(winSize.width/2-30, winSize.height/2-460)); pMenu->setTouchPriority(1); pSpriteDialogLogin->addChild(pMenu); CCScale9Sprite* editbkg = CCScale9Sprite::create(); editBoxUsername = CCEditBox::create(CCSizeMake(210,50),editbkg); editBoxUsername->setReturnType(kKeyboardReturnTypeDone); //editBoxUsername->setFontSize(12); editBoxUsername->setText(""); editBoxUsername->setFontColor(ccc3(158, 122, 83)); editBoxUsername->setMaxLength(8); editBoxUsername->setPosition(ccp(winSize.width/2-10,96));//160,100 pSpriteDialogLogin->addChild(editBoxUsername,2); CCScale9Sprite* editbkg1 = CCScale9Sprite::create(); editBoxPassword = CCEditBox::create(CCSizeMake(185, 50),editbkg1); editBoxPassword->setReturnType(kKeyboardReturnTypeDone); editBoxPassword->setInputFlag(kEditBoxInputFlagPassword); editBoxPassword->setFontColor(ccc3(158, 122, 83)); editBoxPassword->setMaxLength(8); // editBoxPassword->setFontSize(12); editBoxPassword->setText(""); editBoxPassword->setPosition(ccp(winSize.width/2-17,45));//160,60 pSpriteDialogLogin->addChild(editBoxPassword,2); // CCSprite* bs = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("login_bs.png")); // bs->setPosition(ccp(pSpriteDialogLogin->getContentSize().width, 0)); // pSpriteDialogLogin->addChild(bs); // logo->setAtlasIndex(0); // CCScene * f = CCDirector::sharedDirector()->getRunningScene(); // CCPoint size =ccp(308, 756); // CCActionInterval * left1 = CCMoveTo::create(0.05,ccp(size.x+5,size.y)); // CCActionInterval * right1 = CCMoveTo::create(0.05,ccp(size.x-5,size.y)); // CCActionInterval * top1 = CCMoveTo::create(0.05,ccp(size.x,size.y+5)); // CCActionInterval * rom1 = CCMoveTo::create(0.05,ccp(size.x,size.y-5)); // CCFiniteTimeAction* action3 = CCSequence::create(left1,right1,top1,rom1,NULL); // f->getChildByTag(2807)->getChildByTag(9021)->runAction(CCRepeat::create(action3, 1)); }
// on "init" you need to initialize your instance bool GameSceneQuattro::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } _visibleSize = Director::getInstance()->getVisibleSize(); _origin = Director::getInstance()->getVisibleOrigin(); //definisco le pallina che lancia Gugut _pietre = new Vector<Sprite*>(20); for (int i = 0; i < 19; ++i) { auto *pietra = Sprite::create("pietra.png"); pietra->setVisible(false); pietra->setTag(PIETRA_TAG); this->addChild(pietra, 11); _pietre->pushBack(pietra); } #define MUMEROPALLINE 5 _palline = new Vector<PallinaSprite*>(MUMEROPALLINE); char strPallina[100] = {0}; for (int i = 2; i < 6; ++i) { sprintf(strPallina, "sfera_%02d.png",i); //da 02 .. 05 totale 4 palline auto *pallina = PallinaSprite::pallinaSpriteWithFile(strPallina); pallina->setVisible(true); pallina->setTag(i); if(i == 2){ auto spriteBody = PhysicsBody::createCircle(pallina->getContentSize().width/2, PhysicsMaterial(1.0f, 1.0f, 0.1f)); spriteBody->setCollisionBitmask(3); spriteBody->setContactTestBitmask(true); pallina->setPhysicsBody( spriteBody ); pallina->setPosition(Vec2( _visibleSize.width / 2 + _origin.x, _visibleSize.height / 2 + _origin.y )); spriteBody->setTag(12); pallina->setPunti(10); } if(i == 3){ auto spriteBody = PhysicsBody::createCircle(pallina->getContentSize().width/2, PhysicsMaterial(0.05f, 1.0f, 0.1f)); spriteBody->setCollisionBitmask(3); spriteBody->setContactTestBitmask(true); pallina->setPhysicsBody( spriteBody ); pallina->setPosition(Vec2( _visibleSize.width / 3 + _origin.x, _visibleSize.height / 3 + _origin.y )); spriteBody->setTag(13); pallina->setPunti(10); } if(i == 4){ auto spriteBody = PhysicsBody::createCircle(pallina->getContentSize().width/2, PhysicsMaterial(0.95f, 1.0f, 0.1f)); spriteBody->setCollisionBitmask(3); spriteBody->setContactTestBitmask(true); pallina->setPhysicsBody( spriteBody ); pallina->setPosition(Vec2( _visibleSize.width / 4 + _origin.x, _visibleSize.height / 2 + _origin.y )); spriteBody->setTag(14); pallina->setPunti(10); } if(i == 5){ auto spriteBody = PhysicsBody::createCircle(pallina->getContentSize().width/2, PhysicsMaterial(0.05f, 0.9f, 0.9f)); spriteBody->setCollisionBitmask(3); spriteBody->setContactTestBitmask(true); pallina->setPhysicsBody( spriteBody ); pallina->setPosition(Vec2( _visibleSize.width * 0.8 + _origin.x, _visibleSize.height / 2 + _origin.y )); spriteBody->setTag(15); pallina->setPunti(10); } this->addChild(pallina, 9); _palline->pushBack(pallina); //applico forza // if(i == 4) // pallina->getPhysicsBody()->applyForce( Vect(100, 78) ); // if(i == 5) // pallina->getPhysicsBody()->applyForce( Vect(200, 78) ); } _muro = Sprite::create("muro.png"); _muro->setAnchorPoint(Vec2(0.0, 0.0)); _muro->setPosition(Vec2(_origin.x, _origin.y)); this->addChild(_muro, 6); //Gugut _gugutAnimato = Sprite::create("gugut_01.png"); _gugutAnimato->setVisible(true); _gugutAnimato->setAnchorPoint(Vec2(0.5, 0.2));//+(_muro->getContentSize().height )+(_gugutAnimato->getContentSize().height ) //_gugutAnimato->setPosition(Vec2(_muro->getContentSize().width/2 + origin.x, (_muro->getContentSize().height * 1.45)+ origin.y)); _gugutAnimato->setPosition(Vec2(_muro->getContentSize().width/2 + _origin.x,(_muro->getContentSize().height )+ _origin.y)); this->addChild(_gugutAnimato, 8); auto edgeBody = PhysicsBody::createEdgeBox( _visibleSize, PHYSICSBODY_MATERIAL_DEFAULT, 3 ); auto edgeNode = Node::create(); edgeNode ->setPosition( Point( _visibleSize.width / 2 + _origin.x, _visibleSize.height / 2 + _origin.y ) ); edgeNode->setPhysicsBody( edgeBody ); this->addChild( edgeNode ); auto contactListener = EventListenerPhysicsContact::create(); contactListener->onContactBegin = CC_CALLBACK_1(GameSceneQuattro::onContactBegin, this); this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(contactListener, this); auto dispatcher = Director::getInstance()->getEventDispatcher(); auto listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = CC_CALLBACK_2(GameSceneQuattro::onTouchBegan, this); listener->onTouchMoved = CC_CALLBACK_2(GameSceneQuattro::onTouchMoved, this); dispatcher->addEventListenerWithSceneGraphPriority(listener, this); addPartcleStella(Vec2(0,0)); Sprite* parent = Sprite::create("unpixel.png"); parent->setTextureRect(CCRectMake(0,0, 400, 200)); parent->setColor(ccc3(255,0, 0)); parent->setAnchorPoint(Vec2(0,0)); parent->setPosition(Vec2( _visibleSize.width / 2 + _origin.x, _visibleSize.height / 2 + _origin.y)); auto edgeBody2 = PhysicsBody::createBox( parent->getContentSize( ), PHYSICSBODY_MATERIAL_DEFAULT, Vec2(0,0) ); edgeBody2->setDynamic(false); parent->setPhysicsBody( edgeBody2 ); this->addChild(parent, 20); return true; }
void SGRankDetailLayer::initView(SGGamePlayerInfo*player,int type) { SGMainScene *mainScene = SGMainManager::shareMain()->getMainScene(); SGMainLayer* mainLayer = (SGMainLayer *)mainScene->getChildByTag(sg_mainLayer); SGMyFriend* myLayer = (SGMyFriend *)mainScene->getChildByTag(sg_myFriend); if(myLayer) { myLayer->tableView->setIsTouchEnabled(false); } mainLayer->setIsCanTouch(false); mainLayer->setPortraitMenuCanTouch(false); SGBaseLayer *layer = (SGBaseLayer *)mainScene->getChildByTag(mainScene->nowLayerTag); if (layer != NULL) { layer->setIsCanTouch(false); } ResourceManager::sharedInstance()->bindTexture("sgchat/sgchat.plist", RES_TYPE_LAYER_UI, sg_box_rankDetailLayer); ResourceManager::sharedInstance()->bindTexture("sgembattlelayer/sgembattlelayer.plist", RES_TYPE_LAYER_UI, sg_box_rankDetailLayer, LIM_PNG_AS_PNG); ResourceManager::sharedInstance()->bindTexture("soldier/soldier3101-1-3303-3.plist" , RES_TYPE_LAYER_UI, sg_box_rankDetailLayer); ResourceManager::sharedInstance()->bindTexture("soldier/soldier3101-3303.plist" , RES_TYPE_LAYER_UI, sg_box_rankDetailLayer); ResourceManager::sharedInstance()->bindTexture("sggeneralinfolayer/ofcNewUi.plist" , RES_TYPE_LAYER_UI, sg_box_rankDetailLayer); ResourceManager::sharedInstance()->bindTexture("sgfirstlayer/sgfirstlayer.plist", RES_TYPE_LAYER_UI, sg_box_rankDetailLayer, LIM_PNG_AS_PNG); ResourceManager::sharedInstance()->bindTexture("headIcon/headCountry.plist", RES_TYPE_LAYER_UI, sg_box_rankDetailLayer); CCSize s=CCDirector::sharedDirector()->getWinSize(); CCPoint center= SGLayout::getPoint(kMiddleCenter); fontbg->setPreferredSize(CCSizeMake(592, 270)); fontbg->setPosition(ccpAdd(center, ccp(0, -90))); // //_player=new SGGamePlayerInfo(); _player=player; _player->retain(); SGButton *ok = SGButton::create("box_btn_newbg.png", "public_font_queding.png", this, menu_selector(SGRankDetailLayer::boxClose), ccp(0, 0), false, true); this->addBtn(ok); ok->setPosition(ccpAdd(SGLayout::getPoint(kMiddleCenter), ccp(0, -270)));////根据框的大小设置位置 ///////////玩家国家头像 SGButton* portrait_bg = SGButton::create("player_portrait.png", CCString::createWithFormat( "countryIconbig_%d.png",_player->getCountry()>0?_player->getCountry():1)->getCString(), this, NULL,ccp(0.5, -6),false,true); // portrait_bg->setAnchorPoint(ccp(0, 0)); float wid = s.width - 115*4 ; portrait_bg->setPosition(ccp(wid/2, 245+center.y)); this->addChild(portrait_bg); //人名 SGCCLabelTTF* nickname = SGCCLabelTTF::create(_player->getNickName()->getCString(),FONT_BOXINFO,FONTSIZE(16) ); nickname->setAnchorPoint(ccp(0, 0.5)); nickname->setPosition(ccpAdd(portrait_bg->getPosition(), ccp(portrait_bg->getContentSize().width*0.7, portrait_bg->getContentSize().height*0.25))); //modify by:zyc. merge into create. //nickname->setColor(ccRED); this->addChild(nickname); ///等级 SGCCLabelTTF* levellabel = SGCCLabelTTF::create(CCString::create("Lv")->getCString(),FONT_PANGWA,FONTSIZE(12) , ccc3(0xff, 0xc0, 0x00)); //modify by:zyc. merge into create. //levellabel->setColor(ccc3(0xff, 0xc0, 0x00)); levellabel->setAnchorPoint(ccp(0, 0.5)); levellabel->setPosition(ccpAdd(nickname->getPosition(), ccp(0, -nickname->getContentSize().height*1.1))); this->addChild(levellabel); ///等级数值 SGCCLabelTTF* levelnum = SGCCLabelTTF::create(CCString::createWithFormat("%d", _player->getLevel())->getCString(),FONT_PANGWA,FONTSIZE(12)); levelnum->setAnchorPoint(ccp(0, 0.5)); levelnum->setPosition(ccpAdd(levellabel->getPosition(), ccp(levellabel->getContentSize().height*1.5, 0))); this->addChild(levelnum); //军衔 SGCCLabelTTF* junxian = SGCCLabelTTF::create( _player->getpvpRankName()->getCString(),FONT_PANGWA,FONTSIZE(12)); junxian->setAnchorPoint(ccp(0, 0.5)); junxian->setPosition(ccpAdd(levellabel->getPosition(), ccp(150, -0))); this->addChild(junxian); //战斗力 SGCCLabelTTF* zhandouli = SGCCLabelTTF::create(CCString::create(str_EmbattleLayer_str4)->getCString(),FONT_PANGWA,FONTSIZE(12) , ccc3(0xff, 0xc0, 0x00)); zhandouli->setAnchorPoint(ccp(0, 0.5)); zhandouli->setPosition(ccpAdd(levellabel->getPosition(), ccp(0, -levellabel->getContentSize().height*1.1))); //modify by:zyc. merge into create. //zhandouli->setColor(ccc3(0xff, 0xc0, 0x00)); this->addChild(zhandouli); ///战斗力数值 SGCCLabelTTF* num = SGCCLabelTTF::create(CCString::createWithFormat("%d", _player->getCombatValue())->getCString(),FONT_PANGWA,FONTSIZE(12)); num->setAnchorPoint(ccp(0, 0.5)); num->setPosition(ccpAdd(zhandouli->getPosition(), ccp(zhandouli->getContentSize().width*1.2,0 ))); this->addChild(num); const char aa[][100]={str_wujiang,str_soldiers,str_MainTaskLayer_str9,str_other}; for (int j=0;j<4;++j) { SGButton *btn = SGButton::createFromLocal("store_exchangebtnbg.png", aa[j], this, menu_selector(SGRankDetailLayer::showinfo),CCPointZero,FONT_PANGWA,ccWHITE,25); btn->setPosition(ccp(0+btn->getContentSize().width*j, center.y+100)); float tt= s.width-( btn->getContentSize().width*4.8); btn->setPosition(ccp(btn->getContentSize().width*j*1.26+tt*0.5, center.y+110)); btn->setAnchorPoint(ccp(0, 1)); btn->setTag(j+100);//防止和下面tag重了 addBtn(btn); if( type==0 ) { if(j==0) { btn->setEnabled(false); } else { btn->setEnabled(false); btn->setImage("barrack_anniu_hui.png"); } // btn->setFontColor(ccc3(70, 70, 70)); } } ///////////////////////////////////////////////////////////////////////////////////////////////////武将 tag为0到10系列 officedarray=CCArray::create(); officedarray= _player->getOfficerCardItemArray(); officedarray->retain(); soldierarray=CCArray::create(); soldierarray= _player->getembattlesoldierArray(); soldierarray->retain(); int maxnum=-10; _player->getePVPOfficerArray()->count(); if(type==0) { maxnum=_player->getePVPOfficerArray()->count()-1; } else { maxnum=officedarray->count()-1; } int lordid=_player->getLordid(); SGPlayerDataModel *playerdata = SGStaticDataManager::shareStatic()->getPlayerByLevel(_player->getLevel()); int embattlemax=playerdata->getPlayerOfficerMax(); for(int i=0;i<10;++i) { SGButton*btn; if(i<=maxnum) { SGOfficerCard *card=NULL; SGOfficerDataModel* obj ; pvpInfo*info = NULL; if(type==0) ///////跨服的 { info = (pvpInfo*)_player->getePVPOfficerArray()->objectAtIndex(i); obj = SGStaticDataManager::shareStatic()->getOfficerById(info->getitmeId()); } else ///////本服的 { card = (SGOfficerCard*)_player->getOfficerCardItemArray()->objectAtIndex(i); obj = SGStaticDataManager::shareStatic()->getOfficerById(card->getItemId()); } int starlvl =obj->getOfficerCurrStarLevel(); if(starlvl==1||starlvl==2) { starlvl=1; } else { starlvl=starlvl-1; } ///////////////////////// CCString*headicon=CCString::createWithFormat("head%d.png",obj->getIconId()); CCString*kuang=CCString::createWithFormat("officerPinzhi_%d_0.png",starlvl); CCString*country= CCString::createWithFormat("countryName%d.png",obj->getOfficerRace()); SGMainManager::shareMain()->addHeadIconPlistByNum(obj->getIconId(),sg_rank); btn=SGButton::create(headicon->getCString(), kuang->getCString(), this, menu_selector(SGRankDetailLayer::showgeneralinfo), ccp(0, 0), false, true); CCSprite*coun=CCSprite::createWithSpriteFrameName(country->getCString()); coun->setPosition(ccp(12, btn->getContentSize().height*0.85)); btn->addChild(coun); addBtn(btn); /////////////////武将等级 if(type==0) ///////跨服的 { //MMDEBUG:: IMPROVE 貌似需要显示武将等级,但是card解析不出来武将,暂时用pvpinfo代替。 SGCCLabelTTF* levellabel = SGCCLabelTTF::create(CCString::createWithFormat("Lv%d", info->getlevel())->getCString(),FONT_PANGWA,FONTSIZE(12)); levellabel->setPosition(ccp(btn->getContentSize().width*0.5, levellabel->getContentSize().height*0.5)); btn->addChild(levellabel); } else ///////本服的 { SGCCLabelTTF* levellabel = SGCCLabelTTF::create(CCString::createWithFormat("Lv%d", card->getCurrLevel())->getCString(),FONT_PANGWA,FONTSIZE(12)); levellabel->setPosition(ccp(btn->getContentSize().width*0.5, levellabel->getContentSize().height*0.5)); btn->addChild(levellabel); ///////////////转生次数 if(card->getAdNum()>0) { SGCCLabelTTF *advancenumber = SGCCLabelTTF::create(CCString::createWithFormat("+%d",card->getAdNum())->getCString(), FONT_PANGWA, 24); advancenumber->setInsideColor(ccGREEN); advancenumber->setAnchorPoint(ccp(1, 1)); advancenumber->setPosition(ccp(btn->getContentSize().width, btn->getContentSize().height)); btn->addChild(advancenumber); } //////////////////////////////////////////// if(lordid==card->getSsid())/////主将图片组合体 { CCSprite *lord = CCSprite::createWithSpriteFrameName("font_zj_bg.png"); lord->setPosition(ccp(btn->getContentSize().width*0.5, lord->getContentSize().height*0.5)); btn->addChild(lord); CCSprite *font = CCSprite::createWithSpriteFrameName("font_zj.png"); font->setPosition(ccp(btn->getContentSize().width*0.5, font->getContentSize().height*0.5)); btn->addChild(font); } } } else if(i<embattlemax) { btn=SGButton::create("embattle_huilan.png", "embattle_font_kong.png", this, NULL, ccp(0, 0), false, true); btn->setEnabled(false); addBtn(btn); } else { CCString *num = CCString::createWithFormat("embattle_num%d.png",i+1); btn=SGButton::create("embattle_lan.png", num->getCString(), this, NULL, ccp(0, 0), false, true); CCSprite *suo = CCSprite::createWithSpriteFrameName(CCString::create("embattle_suo.png")->getCString()); suo->setAnchorPoint(ccp(1, 1)); suo->setPosition(ccp(btn->getContentSize().width, btn->getContentSize().height)); btn->addChild(suo); addBtn(btn); } btn->setPosition(ccpAdd(ccp(0, SGLayout::getPoint(kMiddleCenter).y-215),(ccp(wid/2 + (i%5) *115,-(i/5)*115 + 187)))); btn->setTag(i); } /////////////////////////////////////////////////////////////////////////////////////////////////////士兵 tag为10系列 int redId=_player->getRedSoldierId(); int greenId=_player->getGreenSoldierId(); int blueId=_player->getBlueSoldierId(); int soldier[]={redId,greenId,blueId}; int color[]={3,1,2}; if(type==0) { } //else if (0)//此处只能看武将,不允许看小兵。 else { for (int i = 0; i< 3; i++) { CCSprite*jingkuang=CCSprite::createWithSpriteFrameName("equipPinzhi_1_0.png"); CCString*icon=CCString::createWithFormat("%d-%d.png",soldier[i],color[i]); CCString*kuang=CCString::create("equipPinzhi_1_0.png"); SGButton*soldierbtn=SGButton::create(icon->getCString(), kuang->getCString(), this, menu_selector(SGRankDetailLayer::showSoldierinfo),CCPointZero,false,true); soldierbtn->setPosition(ccp(s.width/2 +15 +(i-1)*(jingkuang->getContentSize().width + 60) ,center.y-70)); soldierbtn->setTag(10+i); // soldierbtn->setZOrder(soldier[i]); addBtn(soldierbtn); ////////////士兵等级 SGSoldierCard*card=(SGSoldierCard*)soldierarray->objectAtIndex(i); SGCCLabelTTF* levellabel = SGCCLabelTTF::create(CCString::createWithFormat("Lv%d", card->getCurrLevel())->getCString(),FONT_PANGWA,FONTSIZE(12)); levellabel->setAnchorPoint(ccp(0.5, 0.5)); levellabel->setPosition(ccp(soldierbtn->getContentSize().width*0.5, levellabel->getContentSize().height*0.35)); soldierbtn->addChild(levellabel); SGSoldierDataModel* soldierData = SGStaticDataManager::shareStatic()->getSoliderById(soldier[i]); if (soldierData) { SGCCLabelTTF * soldierName = SGCCLabelTTF::create(soldierData->getSoldierName()->getCString(), FONT_PANGWA,FONTSIZE(12)); soldierName->setPosition(ccp(soldierbtn->getContentSize().width/2, -soldierbtn->getContentSize().height*0.3)); soldierbtn->addChild(soldierName); } } } ///////////////////////////////////////////////////////////////////////////////////////////////////属性 tag为20系列 ////统御力 if(type==0) { } else { SGCCLabelTTF* tongyuli = SGCCLabelTTF::create(CCString::createWithFormat(str_MainTaskLayer_str10, _player->getGoverning(),_player->getGoverningLimit() )->getCString(),FONT_BOXINFO,FONTSIZE(14)); tongyuli->setAnchorPoint(ccp(0, 0.5)); tongyuli->setPosition(ccpAdd(portrait_bg->getPosition(), ccp(-portrait_bg->getContentSize().width*0.0,-portrait_bg->getContentSize().height*1.8))); // shengwang->setColor(ccBLACK); this->addChild(tongyuli); tongyuli->setTag(21); ///总血量 SGCCLabelTTF* blood = SGCCLabelTTF::create(CCString::createWithFormat(str_MainTaskLayer_str11, _player->getHp())->getCString(),FONT_BOXINFO,FONTSIZE(14)); blood->setAnchorPoint(ccp(0, 0.5)); blood->setPosition(ccpAdd(tongyuli->getPosition(), ccp(0,-tongyuli->getContentSize().height*1.5 ))); // zhanji->setColor(ccBLACK); this->addChild(blood); blood->setTag(22); ///总速度 SGCCLabelTTF* speed = SGCCLabelTTF::create(CCString::createWithFormat(str_MainTaskLayer_str12, _player->getSpeed())->getCString(),FONT_BOXINFO,FONTSIZE(14)); speed->setAnchorPoint(ccp(0, 0.5)); speed->setPosition(ccpAdd(blood->getPosition(), ccp(0,-blood->getContentSize().height*1.5))); // sheng->setColor(ccBLACK); this->addChild(speed); speed->setTag(23); ///国家 countrymm=_player->getCountry(); CCString*string; if (_player->getCountry() == 1) { string=CCString::create(str_MainTaskLayer_str13); } if (_player->getCountry() == 2) { string=CCString::create(str_MainTaskLayer_str14); } if (_player->getCountry() == 3) { string=CCString::create(str_MainTaskLayer_str15); } SGCCLabelTTF* country = SGCCLabelTTF::create(string->getCString(),FONT_BOXINFO,FONTSIZE(14)); country->setAnchorPoint(ccp(0, 0.5)); country->setPosition(ccpAdd(speed->getPosition(), ccp(0,-speed->getContentSize().height*1.5 ))); // rank->setColor(ccBLACK); this->addChild(country); country->setTag(24); //2014-10-29 zyc modify. 禁用该功能。 // SGButton *counbtn = SGButton::createFromLocal("ofc_moreinfo.png", NULL, this, menu_selector(SGRankDetailLayer::showcountryinfo),CCPointZero,FONT_PANGWA,ccWHITE,25); // counbtn->setVisible(false); // counbtn->setAnchorPoint(ccp(0, 0.5)); // counbtn->setPosition(ccpAdd(country->getPosition(), ccp(country->getContentSize().width+20, 0))); // addBtn(counbtn); // counbtn->setTag(25); } ////////////////////////////////////////////////////////////////////////////////////////////其他 tag为30系列 ////天梯声望 if(type==0) { } else { SGCCLabelTTF* shengwang = SGCCLabelTTF::create(CCString::createWithFormat(str_MainTaskLayer_str16,_player->getpresTige())->getCString(),FONT_BOXINFO,FONTSIZE(14)); shengwang->setAnchorPoint(ccp(0, 0.5)); shengwang->setPosition(ccpAdd(portrait_bg->getPosition(), ccp(-portrait_bg->getContentSize().width*0.0,-portrait_bg->getContentSize().height*1.8))); // shengwang->setColor(ccBLACK); this->addChild(shengwang); shengwang->setTag(31); ///天梯战绩 SGCCLabelTTF* zhanji = SGCCLabelTTF::create(CCString::createWithFormat(str_MainTaskLayer_str17, _player->getpvpWinCount(),_player->getenterPVPCount()-_player->getpvpWinCount())->getCString(),FONT_BOXINFO,FONTSIZE(14)); zhanji->setAnchorPoint(ccp(0, 0.5)); zhanji->setPosition(ccpAdd(shengwang->getPosition(), ccp(0,-shengwang->getContentSize().height*1.5 ))); // zhanji->setColor(ccBLACK); this->addChild(zhanji); zhanji->setTag(32); ///天梯胜率 CCString*str; if(_player->getpvpWinCount()==0) str= CCString::create(str_MainTaskLayer_str20); else str= CCString::createWithFormat(str_MainTaskLayer_str21,100*_player->getpvpWinCount()/(float)_player->getenterPVPCount()); SGCCLabelTTF* sheng = SGCCLabelTTF::create(str->getCString(),FONT_BOXINFO,FONTSIZE(14)); sheng->setAnchorPoint(ccp(0, 0.5)); sheng->setPosition(ccpAdd(zhanji->getPosition(), ccp(0,-zhanji->getContentSize().height*1.5))); // sheng->setColor(ccBLACK); this->addChild(sheng); sheng->setTag(33); ///天梯排名 SGPlayerInfo* playInfo = SGPlayerInfo::sharePlayerInfo(); CCString*f**k; // CCLOG("%d",_player->getpvpTop()); if(_player->getpvpTop()<=0) { f**k=CCString::create(str_MainTaskLayer_str18); } else { f**k=CCString::createWithFormat(str_MainTaskLayer_str19, _player->getpvpTop()); } SGCCLabelTTF* rank = SGCCLabelTTF::create(f**k->getCString(),FONT_BOXINFO,FONTSIZE(14)); rank->setAnchorPoint(ccp(0, 0.5)); rank->setPosition(ccpAdd(sheng->getPosition(), ccp(0,-sheng->getContentSize().height*1.5 ))); // rank->setColor(ccBLACK); this->addChild(rank); rank->setTag(34); } if(type==0) { } else { setCanSee(0); setCanNotSee(1); setCanNotSee(2); setCanNotSee(3); } }
void ThirdServerScene::initServerInfo(SeverInfoBean* bean) { this->removeChildByTag(serverInfoLayerTag,true); selectBean = bean; CCLayer* serverInfoLayer = CCLayer::create(); serverInfoLayer->setTag(serverInfoLayerTag); serverInfoLayer->setPosition(ccp(0,0)); this->cacheServerId = bean->serverId; char str[30] = {0}; sprintf(str,"s%d_ititaId",bean->serverId); std::string ititaId = CCUserDefault::sharedUserDefault()->getStringForKey(str,""); bool ititaIdFlag = false; if (ititaId.compare("") != 0 && ititaId.compare(PulsarNative::getDeviceId()) != 0) { ititaIdFlag = true; } MyMenuItem* leftButton = MyMenuItem::create(CCSprite::createWithSpriteFrameName("serverButton.png"),NULL,NULL); leftButton->setAnchorPoint(ccp(1,0.5)); // leftButton->setPosition(ccp(winSize.width+100,240)); leftButton->setPosition(ccp(winSize.width+422,240)); leftButton->runAction(CCSequence::create(CCDelayTime::create(0.1),CCEaseElasticOut::create(CCMoveTo::create(0.3,ccp(winSize.width+100,240)),1),NULL)); CCSprite* registLabel; if (ititaIdFlag) { registLabel = CCSprite::createWithSpriteFrameName("serverSwitchLabel.png"); leftButton->setTarget(this,menu_selector(ThirdServerScene::toLogin)); } else { registLabel = CCSprite::createWithSpriteFrameName("serverBindLabel.png"); leftButton->setTarget(this,menu_selector(ThirdServerScene::toRegister)); } registLabel->setAnchorPoint(ccp(0,0.5)); registLabel->setPosition(ccp(30,leftButton->getContentSize().height/2)); leftButton->addChild(registLabel); MyMenuItem* rightButton = MyMenuItem::create(CCSprite::createWithSpriteFrameName("serverButton.png"),this,menu_selector(ThirdServerScene::fastEnterGameWait)); rightButton->setAnchorPoint(ccp(1,0.5)); // rightButton->setPosition(ccp(winSize.width+20,330)); rightButton->setPosition(ccp(winSize.width+342,330)); rightButton->runAction(CCSequence::create(CCEaseElasticOut::create(CCMoveTo::create(0.3,ccp(winSize.width+20,330)),1),NULL)); CCSprite* newLabel; if (ititaIdFlag) { newLabel = CCSprite::createWithSpriteFrameName("serverEnterGame.png"); } else { newLabel = CCSprite::createWithSpriteFrameName("serverFastStartLabel.png"); } newLabel->setAnchorPoint(ccp(0,0.5)); newLabel->setPosition(ccp(30,rightButton->getContentSize().height/2)); rightButton->addChild(newLabel); MyPriorityMenu* menu = MyPriorityMenu::create(-501,leftButton,rightButton,NULL); menu->setPosition(ccp(0,0)); serverInfoLayer->addChild(menu); // sprintf(str,"s%d_nickname",bean->serverId); // std::string nickname = CCUserDefault::sharedUserDefault()->getStringForKey(str,""); // // if (nickname.compare("") != 0) { // CCLabelTTF* id = CCLabelTTF::create("ID:","Arial",40); // id->setColor(ccc3(255,222,0)); // // CCLabelTTF* nicknameLabel = CCLabelTTF::create(nickname.c_str(),"Arial",40); // float locx = id->getContentSize().width+nicknameLabel->getContentSize().width; // id->setAnchorPoint(ccp(0,0.5)); // id->setPosition(ccp(winSize.width-locx/2-180,400)); // nicknameLabel->setAnchorPoint(ccp(0,0.5)); // nicknameLabel->setPosition(ccp(winSize.width-locx/2+id->getContentSize().width-190,400)); // serverInfoLayer->addChild(id); // serverInfoLayer->addChild(nicknameLabel); // } CCLayer* layer = CCLayer::create(); CCLabelTTF* label = CCLabelTTF::create(bean->getServerName()->getCString(),"Arial",33); label->setPosition(ccp(224,2)); layer->addChild(label); label->setTag(serverNameLabelTag); CCLabelTTF* stateLabel =CCLabelTTF::create(bean->getServerStatus()->getCString(),"Arial",30); stateLabel->setPosition(ccp(340,0)); if (bean->getServerStatus()->compare("正常") == 0 || bean->getServerStatus()->compare("推荐") == 0) { stateLabel->setColor(ccc3(0,255,0)); } else if (bean->getServerStatus()->compare("繁忙") == 0) { stateLabel->setColor(ccc3(255,255,0)); } else if (bean->getServerStatus()->compare("火爆") == 0) { stateLabel->setColor(ccc3(167,87,168)); } else { stateLabel->setColor(ccc3(166,166,166)); } layer->addChild(stateLabel); CCSprite* serverBack = CCSprite::createWithSpriteFrameName("serverCurentServerBack.png"); // serverBack->setPosition(ccp(winSize.width+35,48)); serverBack->setPosition(ccp(winSize.width+357,48)); serverBack->runAction(CCSequence::create(CCDelayTime::create(0.3),CCEaseElasticOut::create(CCMoveTo::create(0.3,ccp(winSize.width+35,48)),1),NULL)); serverBack->setAnchorPoint(ccp(1,0.5)); serverInfoLayer->addChild(serverBack); // layer->setPosition(ccp(winSize.width-380,45)); layer->setPosition(ccp(winSize.width-58,45)); layer->runAction(CCSequence::create(CCDelayTime::create(0.3),CCEaseElasticOut::create(CCMoveTo::create(0.3,ccp(winSize.width-380,45)),1),NULL)); serverInfoLayer->addChild(layer); MyMenuItem* selectServerButton = MyMenuItem::create(CCSprite::createWithSpriteFrameName("serverButton.png"),this,menu_selector(ThirdServerScene::toServerList)); CCSprite* selectServerLabel = CCSprite::createWithSpriteFrameName("serverSelectButton.png"); selectServerLabel->setAnchorPoint(ccp(0,0.5)); selectServerLabel->setPosition(ccp(30,rightButton->getContentSize().height/2)); selectServerButton->setAnchorPoint(ccp(1,0.5)); // selectServerButton->setPosition(winSize.width+130,150); selectServerButton->setPosition(ccp(winSize.width+452,150)); selectServerButton->runAction(CCSequence::create(CCDelayTime::create(0.2),CCEaseElasticOut::create(CCMoveTo::create(0.3,ccp(winSize.width+130,150)),1),NULL)); selectServerButton->addChild(selectServerLabel); menu->addChild(selectServerButton); this->addChild(serverInfoLayer,2); }