void FontTest::showFont(const char *pFont) { CCSize s = CCDirector::sharedDirector()->getWinSize(); CCSize blockSize = CCSizeMake(s.width/3, 200); float fontSize = 26; removeChildByTag(kTagLabel1, true); removeChildByTag(kTagLabel2, true); removeChildByTag(kTagLabel3, true); removeChildByTag(kTagLabel4, true); CCLabelTTF *top = CCLabelTTF::create(pFont, pFont, 24); CCLabelTTF *left = CCLabelTTF::create("alignment left", pFont, fontSize, blockSize, kCCTextAlignmentLeft, verticalAlignment[vAlignIdx]); CCLabelTTF *center = CCLabelTTF::create("alignment center", pFont, fontSize, blockSize, kCCTextAlignmentCenter, verticalAlignment[vAlignIdx]); CCLabelTTF *right = CCLabelTTF::create("alignment right", pFont, fontSize, blockSize, kCCTextAlignmentRight, verticalAlignment[vAlignIdx]); CCLayerColor *leftColor = CCLayerColor::create(ccc4(100, 100, 100, 255), blockSize.width, blockSize.height); CCLayerColor *centerColor = CCLayerColor::create(ccc4(200, 100, 100, 255), blockSize.width, blockSize.height); CCLayerColor *rightColor = CCLayerColor::create(ccc4(100, 100, 200, 255), blockSize.width, blockSize.height); leftColor->ignoreAnchorPointForPosition(false); centerColor->ignoreAnchorPointForPosition(false); rightColor->ignoreAnchorPointForPosition(false); top->setAnchorPoint(ccp(0.5, 1)); left->setAnchorPoint(ccp(0,0.5)); leftColor->setAnchorPoint(ccp(0,0.5)); center->setAnchorPoint(ccp(0,0.5)); centerColor->setAnchorPoint(ccp(0,0.5)); right->setAnchorPoint(ccp(0,0.5)); rightColor->setAnchorPoint(ccp(0,0.5)); top->setPosition(ccp(s.width/2,s.height-20)); left->setPosition(ccp(0,s.height/2)); leftColor->setPosition(left->getPosition()); center->setPosition(ccp(blockSize.width, s.height/2)); centerColor->setPosition(center->getPosition()); right->setPosition(ccp(blockSize.width*2, s.height/2)); rightColor->setPosition(right->getPosition()); this->addChild(leftColor, -1); this->addChild(left, 0, kTagLabel1); this->addChild(rightColor, -1); this->addChild(right, 0, kTagLabel2); this->addChild(centerColor, -1); this->addChild(center, 0, kTagLabel3); this->addChild(top, 0, kTagLabel4); }
bool TipLayer::initTipLayer() { CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *maskLayer = CCLayerColor::node(); maskLayer->initWithColorWidthHeight(ccc4f(0x00,0x00,0x00,0x80),335,350); //maskLayer->setOpacity(200); maskLayer->setAnchorPoint(ccp(0.5, 0.5)); maskLayer->setPosition(ccp(winSize.width/2-maskLayer->getContentSize().width/2, winSize.height/2-maskLayer->getContentSize().height/2)); this->addChild(maskLayer); /*CCSprite *bgSprite = CCSprite::spriteWithFile("actor_pause_bg.png"); this->addChild(bgSprite); bgSprite->setPosition(ccp(winSize.width / 2, winSize.height / 2));*/ std::string stdNameOne = ""; std::string stdNameTwo = ""; std::string contentImageName = ""; stdNameOne = s_touchfile + s_language + "actor_btn_cancel.png"; stdNameTwo = s_touchfile + s_language + "actor_btn_confirm.png"; contentImageName = s_language + "actor_img_tipContent.png"; //content CCSprite *pContentSprite = CCSprite::spriteWithFile(contentImageName.c_str()); this->addChild(pContentSprite); pContentSprite->setPosition(ccp(winSize.width / 2, winSize.height / 2 +100)); CCMenuItemImage *cancelItem = CCMenuItemImage::itemFromNormalImage(stdNameOne.c_str(), stdNameOne.c_str(), this, menu_selector(TipLayer::cancel)); CCMenuItemImage *confirmItem = CCMenuItemImage::itemFromNormalImage(stdNameTwo.c_str(), stdNameTwo.c_str(), this, menu_selector(TipLayer::confirm)); CCMenu *menu = CCMenu::menuWithItems(confirmItem,cancelItem,NULL); menu->alignItemsVertically(); menu->setPosition(ccp(winSize.width / 2, winSize.height / 2 - 50)); this->addChild(menu); CCLayer::setIsKeypadEnabled(true); return true; }
void HSLoadingLayer::Load() { CCLayerColor* pMaskLayer = CCLayerColor::create(ccc4(0, 0, 0, 200), HSBase::GetTemplateScreenW() + 10.f, HSBase::GetTemplateScreenH()); pMaskLayer->setAnchorPoint(HS_ANCHOR_CENTER); this->addChild(pMaskLayer); pMaskLayer->setPosition(ccp(-2.f,0)); HSToolBase::SetNodeFilldScreen(pMaskLayer); // void *bigmem=malloc(1048576*5); /** CCSprite* pLoadingSprite = HSCCSprite::create("Image/LODADING.png"); pLoadingSprite->setPosition(HSBase::GetTemplateScreenCentre()); this->addChild(pLoadingSprite);*/ /** CCSprite* pMaskSprite = HSCCSprite::create("Image/LODADINGzhezhao.png"); pMaskSprite->setOpacity(255 - 153); m_pProgressTimeer = CCProgressTimer::create(pMaskSprite); m_pProgressTimeer->setType(kCCProgressTimerTypeBar); m_pProgressTimeer->setMidpoint(ccp(0,0)); m_pProgressTimeer->setBarChangeRate(ccp(1, 0)); m_pProgressTimeer->setPosition(pLoadingSprite->getPosition()); this->addChild(m_pProgressTimeer); m_pProgressTimeer->setReverseProgress(true); */ if (1) { m_pTipsTTFUp = CCLabelTTF::create("",HS_FONT_HuaKang, 38.f, CCSizeMake(500,960), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter); m_pTipsTTFUp->setPosition(ccp(320.f,800.f)); this->addChild(m_pTipsTTFUp); CCString* pTipsStr = CCString::createWithFormat("tips_%d", HSMath::Random(0, 19)); m_pTipsTTF = CCLabelTTF::create(L(pTipsStr->getCString()), HS_FONT_HuaKang, 32.f, CCSizeMake(500,960), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter); //m_pTipsTTF->setPosition(HSBase::GetTemplateScreenCentre()); m_pTipsTTF->setPosition( /*ccp(HSBase::GetTemplateScreenW() / 2.f,pLoadingSprite->getContentSize().height)*/ccp(320.f,180.f)); this->addChild(m_pTipsTTF); //m_pTipsTTF->getString(); } // m_backSprite = HSCCSprite::create("Image/lodingback.png"); // m_backSprite->setPosition(ccp(320.f,340.f)); // this->addChild(m_backSprite); m_pSpxLoading = SPX_Manager::CreateSprite("SPX/cat.sprite"); m_pSpxLoading->setPosition(ccp(320.f,306.f)); m_pSpxLoading->SetAction(0); this->addChild(m_pSpxLoading); this->setVisible(false); }
ParkingViewScene::ParkingViewScene(EstacionamentoState _state, int _wayPointID) { isChangeToRoute = false; plistTagMenuCurrent.clear(); plistMenuCurrent.clear(); setUpTopImage(Global::TOP_SRC_IMAGE_Estacionamentos); ChangeTitle(ESTACIOMENTOS); this->addButtonTop(); //initFixedMenu(); this->wayPointID = _wayPointID; this->state=_state; if( state == EST_SAIDA) { actualCategory = ESTACIOMENTOS; CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,0)); node->setAnchorPoint(ccp(0,0)); node->setPosition(ccp(0,0)); this->addChild(node,0, 250); //Carrega informacoes do Estacionamento ( semelhante waypointID LoadParkingId(); } else { //Isso e so exibido quando o usuario esta na entrada if( wayPointID == 51) //Exibe uma mensagem de alerta configurada para estacionamentos AlertViewScene::showMessageParking( this,menu_selector(ParkingViewScene::btnResponse),250); else //Exibe o mapa do Google Maps this->addChild(new LayerWebView(wayPointID)); } }
// LayerIgnoreAnchorPointScale void LayerIgnoreAnchorPointScale::onEnter() { LayerTest::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *l = CCLayerColor::create(ccc4(255, 0, 0, 255), 200, 200); l->setAnchorPoint(ccp(0.5f, 1.0f)); l->setPosition(ccp( s.width/2, s.height/2)); CCScaleBy *scale = CCScaleBy::create(2, 2); CCScaleBy* back = (CCScaleBy*)scale->reverse(); CCSequence *seq = CCSequence::create(scale, back, NULL); l->runAction(CCRepeatForever::create(seq)); this->addChild(l, 0, kLayerIgnoreAnchorPoint); CCSprite *child = CCSprite::create("Images/grossini.png"); l->addChild(child); CCSize lsize = l->getContentSize(); child->setPosition(ccp(lsize.width/2, lsize.height/2)); CCMenuItemFont *item = CCMenuItemFont::create("Toogle ignore anchor point", this, menu_selector(LayerIgnoreAnchorPointScale::onToggle)); CCMenu *menu = CCMenu::create(item, NULL); this->addChild(menu); menu->setPosition(ccp(s.width/2, s.height/2)); }
bool WSGameBackGroundLayer::initWithScene(WSGameScene *scene) { if (CCLayer::init()) { CCLayerColor* whiteBg = CCLayerColor::create(ccc4(255, 255, 255, 255), 500, 350); whiteBg->setAnchorPoint(ccp(0, 0)); whiteBg->setPosition(ccp(320, 170)); this->addChild(whiteBg); WSMap* map = scene->getGameCore()->getGameMap(); for (int i=0; i<map->getHeight(); i++) { for (int j=0; j<map->getWidth(); j++) { if (map->getMapNodeByXY(j, i) == kEdge) { CCSprite* sprite = CCSprite::create("edge.png"); sprite->setAnchorPoint(ccp(0, 0)); sprite->setPosition(ccp(320+ j*sprite->boundingBox().size.width, 170 + (map->getHeight()-i-1)*sprite->boundingBox().size.height)); this->addChild(sprite); } } } return true; } return false; }
void NewsScene::createListView() { // CCSize size = CCSize(750, 400); CCSize size = CCDirector::sharedDirector()->getWinSize(); CCLayerColor * fundo = CCLayerColor::create(ccc4(255, 255, 255, 255), size.width, size.height); fundo->setAnchorPoint(ccp(0,0)); fundo->setPosition(ccp(0, 0)); this->addChild(fundo,10); // CCLayerColor * header = CCLayerColor::create(ccc4(200, 200, 200, 255), size.width, 80); // header->setAnchorPoint(ccp(0,0)); // header->setPosition(ccp(0, size.height -80)); // fundo->addChild(header); CCSprite *sprHeader; sprHeader = CCSprite::create("Header_Blue.png"); sprHeader->setAnchorPoint(ccp(0,0)); sprHeader->setScale(1); sprHeader->setPosition(ccp(0, size.height -90)); this->addChild(sprHeader,100); CCSprite *sprTitle; sprTitle = CCSprite::create("tit_informacoes.png"); sprTitle->setAnchorPoint(ccp(0,0)); sprTitle->setScale(1); sprTitle->setPosition(ccp(110, size.height -50)); this->addChild(sprTitle,101); CCMenu* menu = CCMenu::create(); CCSprite *spriteDefault = CCSprite::create("Seta1.png"); CCSprite *spriteSelected = CCSprite::create("Seta2.png"); CCMenuItemSprite *item = CCMenuItemSprite::create(spriteDefault, spriteSelected, this, menu_selector(NewsScene::btnBack)); item->setAnchorPoint(ccp(0, 0)); item->setPosition(ccp(0, size.height -90)); menu->addChild(item, 0, 100); menu->setPosition(ccp(10,30)); menu->setAnchorPoint(ccp(0,0)); this->addChild(menu,102); list = CCListView::create(CCListViewModeVertical); list = cocos2d::extension::CCListView::create(CCListViewModeVertical); list->setDelegate(this); list->setContentSize(CCSize(size.width, size.height-70)); list->setAnchorPoint(ccp(0,0)); list->setPosition(ccp(0, 0)); list->setColor(ccc3(50, 50, 50)); list->setSeparatorStyle(CCListViewCellSeparatorStyleNone); fundo->addChild(list); this->loading = new AnimatedSprite("loader_einstein1.png"); this->loading->addAnimation(AnimatedSprite::animationWithFile("loader_einstein", 24, 0.030f), "anim");//frame_count this->addChild(this->loading,999); this->loading->runAnimation("anim",true, true); this->loading->setAnchorPoint(ccp(0.5f, 0.5f)); this->loading->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width/2, CCDirector::sharedDirector()->getWinSize().height/2 - 30)); this->loading->setVisible(true); }
//切换游戏地图之前 void GameScene::switchMap() { //创建一个遮罩层,用于地图切换时的显示淡入淡出效果 CCLayerColor* fadeLayer = CCLayerColor::layerWithColor(ccc4(0, 0, 0, 0)); fadeLayer->setAnchorPoint(CCPointZero); fadeLayer->setPosition(CCPointZero); addChild(fadeLayer, kFadeLayer, kFadeLayer); //执行淡入动画,结束后调用resetGameLayer方法 CCAction* action = CCSequence::actions( CCFadeIn::actionWithDuration(0.5f), CCCallFunc::actionWithTarget(this, callfunc_selector(GameScene::resetGameLayer)), NULL); fadeLayer->runAction(action); }
void ShowTip::show(const char *str, cocos2d::CCPoint& point, float fontSize, float delayTime, bool displayBg) { CCLabelTTF* ttfTip = CCLabelTTF::create(str, "宋体", fontSize); ttfTip->cocos2d::CCNode::setAnchorPoint(CCPoint(0, 0)); CCSize size = ttfTip->getContentSize(); CCLayerColor* bgColor = NULL; if (displayBg) { bgColor = CCLayerColor::create(); bgColor->setColor(ccColor3B(ccc3(0, 0, 0))); bgColor->setAnchorPoint(CCPoint(0.5,0.5)); bgColor->setPosition(CCPoint(point.x - size.width * 0.5, point.y - 40)); bgColor->setContentSize(size); bgColor->addChild(ttfTip); this->addChild(bgColor); ttfTip->setFontFillColor(ccColor3B(ccc3(255, 255, 255))); } else { size = CCSize(0,0); ttfTip->setFontFillColor(ccColor3B(ccc3(0, 0, 0))); ttfTip->setPosition(CCPoint(point.x, point.y - 60)); this->addChild(ttfTip); } CCAction* moveTo = CCMoveTo::create(delayTime, CCPoint(point.x - size.width * 0.5, point.y + 40)); if ( displayBg && bgColor ) { CCFadeIn* fadeIn = CCFadeIn::create(delayTime * 0.25); CCScaleTo* scaleTo = CCScaleTo::create(delayTime * 0.5, 1); CCFadeOut* fadeOut = CCFadeOut::create(delayTime * 0.25); bgColor->runAction(CCSequence::create(fadeIn,scaleTo, fadeOut, NULL)); bgColor->runAction(moveTo); } else { CCFadeIn* fadeIn = CCFadeIn::create(delayTime * 0.5); CCFadeOut* fadeOut = CCFadeOut::create(delayTime * 0.5); ttfTip->runAction(CCSequence::create(fadeIn, fadeOut, NULL)); ttfTip->runAction(moveTo); } scheduleOnce(schedule_selector(ShowTip::removeFromParent), delayTime); }
int Bitmap::handler_method_fill( int ptr1, void* ptr2 ) { FillRectStruct* ptr2str = (FillRectStruct*)ptr2; Bitmap* bitmap =(Bitmap*)ptr1; if (NULL!=bitmap->p->m_emuBitmap) { Vec4 color = ptr2str->color; CCLayerColor* layerColor = CCLayerColor::create(ccc4(color.x*255,color.y*255,color.z*255,color.w*255)); layerColor->setContentSize(CCSizeMake(ptr2str->rect.w,ptr2str->rect.h)); layerColor->setAnchorPoint(ccp(0,1)); layerColor->ignoreAnchorPointForPosition(false); layerColor->setPosition(ccp(ptr2str->rect.x,rgss_y_to_cocos_y(ptr2str->rect.y,bitmap->p->m_height))); bitmap->p->m_emuBitmap->addChild(layerColor); } delete ptr2str; return 0; }
// on "init" you need to initialize your instance bool Bug914Layer::init() { // always call "super" init // Apple recommends to re-assign "self" with the "super" return value if (BugsTestBaseLayer::init()) { setTouchEnabled(true); // ask director the the window size CCSize size = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *layer; for( int i=0;i < 5;i++) { layer = CCLayerColor::create(ccc4(i*20, i*20, i*20,255)); layer->setContentSize(CCSizeMake(i*100, i*100)); layer->setPosition(ccp(size.width/2, size.height/2)); layer->setAnchorPoint(ccp(0.5f, 0.5f)); layer->setIsRelativeAnchorPoint(true); addChild(layer, -1-i); } // create and initialize a Label CCLabelTTF *label = CCLabelTTF::create("Hello World", "Marker Felt", 64); CCMenuItem *item1 = CCMenuItemFont::create("restart", this, menu_selector(Bug914Layer::restart)); CCMenu *menu = CCMenu::create(item1, NULL); menu->alignItemsVertically(); menu->setPosition(ccp(size.width/2, 100)); addChild(menu); // position the label on the center of the screen label->setPosition(ccp( size.width /2 , size.height/2 )); // add the label as a child to this Layer addChild(label); return true; } return false; }
//virtual void GameItemView::initView() { int cardW = 200; int cardH = 200; setContentSize( CCSizeMake( cardW, cardH )); setAnchorPoint(ccp(0.5f,0.5f)); CCLayerColor* bg = CCLayerColor::create(ccc4(25,25,25,155), cardW,cardH); bg->setAnchorPoint(ccp(0,0)); addChild(bg, 1); m_lblName = CCLabelTTF::create(); m_lblName->initWithString( "", "Arial", 24.0f ); m_lblName->setAnchorPoint(ccp(0.0f, 1.0f ) ); m_lblName->setPositionY(cardH); addChild(m_lblName, 50); m_lblType = CCLabelTTF::create(); m_lblType->initWithString( "", "Arial", 24.0f ); m_lblType->setAnchorPoint(ccp(0.0f, 1.0f ) ); m_lblType->setPositionY(cardH - 50); addChild(m_lblType, 50); }
void GameScene::gameOver() { CCRingSprite* pRing; for(std::list<int>::iterator itr = CCRingSprite::s_tags.begin(); itr != CCRingSprite::s_tags.end() ; itr++){ pRing = (CCRingSprite*)this->getChildByTag(*itr); pRing->unscheduleUpdate(); } getChildByTag(kTagBackground)->unscheduleUpdate(); m_pBattery->stopUserInput(); CCTintTo* toWhite = CCTintTo::create(2.0f,255,255,255); m_pScoreLabel->runAction(toWhite); CCLayerColor* gameOverLayer = CCLayerColor::create(ccc4(0,0,0,128),m_winSize.width,m_winSize.height); gameOverLayer->setAnchorPoint(CCPointZero); gameOverLayer->setPosition(ccp(0,m_winSize.height)); gameOverLayer->setOpacity(0); CCActionInterval* fade = CCFadeIn::create(1.0f); CCMoveTo* move = CCMoveTo::create(0.4f,CCPointZero); gameOverLayer->runAction(CCEaseSineIn::create(CCSpawn::createWithTwoActions(fade,move))); this->addChild(gameOverLayer,kZOrderGameOverLayer,kTagGameOverLayer); CCDelayTime* delay = CCDelayTime::create(0.3f); CCCallFunc* ad = CCCallFunc::create(this, callfunc_selector( GameScene::callAd) ); this->runAction(CCSequence::createWithTwoActions(delay,ad)); saveScore(); showRetryButtons(); SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sounds/GameOver.mp3",false); m_gameState = kStateGameOver; }
//------------------------------------------------------------------ // // LabelTTFTest // //------------------------------------------------------------------ LabelTTFTest::LabelTTFTest() { CCSize blockSize = CCSizeMake(200, 160); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *colorLayer = CCLayerColor::create(ccc4(100, 100, 100, 255), blockSize.width, blockSize.height); colorLayer->setAnchorPoint(ccp(0,0)); colorLayer->setPosition(ccp((s.width - blockSize.width) / 2, (s.height - blockSize.height) / 2)); this->addChild(colorLayer); CCMenuItemFont::setFontSize(30); CCMenu *menu = CCMenu::create( CCMenuItemFont::create("Left", this, menu_selector(LabelTTFTest::setAlignmentLeft)), CCMenuItemFont::create("Center", this, menu_selector(LabelTTFTest::setAlignmentCenter)), CCMenuItemFont::create("Right", this, menu_selector(LabelTTFTest::setAlignmentRight)), NULL); menu->alignItemsVerticallyWithPadding(4); menu->setPosition(ccp(50, s.height / 2 - 20)); this->addChild(menu); menu = CCMenu::create( CCMenuItemFont::create("Top", this, menu_selector(LabelTTFTest::setAlignmentTop)), CCMenuItemFont::create("Middle", this, menu_selector(LabelTTFTest::setAlignmentMiddle)), CCMenuItemFont::create("Bottom", this, menu_selector(LabelTTFTest::setAlignmentBottom)), NULL); menu->alignItemsVerticallyWithPadding(4); menu->setPosition(ccp(s.width - 50, s.height / 2 - 20)); this->addChild(menu); m_plabel = NULL; m_eHorizAlign = kCCTextAlignmentLeft; m_eVertAlign = kCCVerticalTextAlignmentTop; this->updateAlignment(); }
void SGCGMovieLayer::constructView() { SGNotificationCenter::sharedNotificationCenter()->addObserver(MSG_CGBATTLE_START, this, callfuncO_selector(SGCGMovieLayer::cgBattleListener)); s = CCDirector::sharedDirector()->getWinSize(); ResourceManager::sharedInstance()->bindTexture("bg/cgBg.plist", RES_TYPE_LAYER_UI, sg_cgMovieLayer); CCSprite *cgBg = CCSprite::createWithSpriteFrameName("cgBg.png"); cgBg->setAnchorPoint(ccp(0.5, 1)); cgBg->ignoreAnchorPointForPosition(false); cgBg->cocos2d::CCNode::setScaleX(s.width/cgBg->getContentSize().width); cgBg->setPosition(ccp(s.width/2, s.height)); addChild(cgBg); // SGButton *skipBt = SGButton::createFromLocal("box_btnbg.png", "跳 过", this, menu_selector(SGCGMovieLayer::cgSkipToBattle), CCPointZero, FONT_PANGWA,ccWHITE,32,false,true); // skipBt->setPosition(ccp(s.width/2, skipBt->getContentSize().height*2)); // addBtn(skipBt); CCLayerColor * blackBg = CCLayerColor::create(ccc4(0, 0, 0, 255), s.width, s.height); blackBg->setTouchEnabled(false); blackBg->ignoreAnchorPointForPosition(false); blackBg->setAnchorPoint(ccp(0, 0)); blackBg->setPosition(ccp(0, 0)); this->addChild(blackBg, -100); scrollRect = CCRectMake(0, s.height*0.2, s.width, s.height/4); cgScrollView = SNSScrollView::create(scrollRect); cgScrollView->setFrame(scrollRect); cgScrollView->setPosition(scrollRect.origin); cgScrollView->setHorizontal(false); cgScrollView->setVertical(true); cgScrollView->setTouchEnabled(false); this->addChild(cgScrollView); // CCSprite *scrollBg = CCSprite::createWithSpriteFrameName("barrack_kuang.png"); // scrollBg->cocos2d::CCNode::setScale(s.width/scrollBg->getContentSize().width, s.height/4/scrollBg->getContentSize().height); // scrollBg->setPosition(ccpAdd(scrollRect.origin, ccp(s.width/2, s.height/8))); // addChild(scrollBg); char *spritData = new char[(int)s.width * (int)s.height *4]; memset(spritData,0,(int)s.width * (int)s.height *4); int spriteDataSize = (int)s.width * (int)s.height*4; for (int j=0; j<spriteDataSize; j+=4) { spritData[j] = 0; spritData[j+1] = 0; spritData[j+2] = 0; spritData[j+3] = 255; } CCTexture2D *pTexture = new CCTexture2D(); pTexture->initWithData(spritData, kCCTexture2DPixelFormat_Default, (int)s.width, (int)s.height, s); finaleSprite = CCSprite::createWithTexture(pTexture); finaleSprite->setPosition(CCPointZero); finaleSprite->setAnchorPoint(CCPointZero); this->addChild(finaleSprite,10,10); finaleSprite->setVisible(false); finaleSprite->setOpacity(0); delete [] spritData; pTexture->autorelease(); this->setTouchEnabled(true); const char *str[7] = { str_CGMovieLayer_str1, str_CGMovieLayer_str2, str_CGMovieLayer_str3, str_CGMovieLayer_str4, str_CGMovieLayer_str5, str_CGMovieLayer_str6, str_CGMovieLayer_str7}; SGCCLabelTTF *cgMsg = NULL; posY = -20; for (int i=0; i<7; i++) { cgMsg = SGCCLabelTTF::create(str[i], FONT_BOXINFO, 34); cgMsg->cocos2d::CCNode::setPosition(s.width/2, posY); cgScrollView->m_body->addChild(cgMsg); posY -= 50; } moveCgMsgDis = CGMSGMOVEDIS; unschedule(schedule_selector(SGCGMovieLayer::moveCgMsgUp)); if (SGPlayerInfo::sharePlayerInfo()->getCDKeyNeed()==1) { SGNotificationCenter::sharedNotificationCenter()->addObserver(MSG_CDK, this, callfuncO_selector(SGCGMovieLayer::cdkListener)); ResourceManager::sharedInstance()->bindTexture("sgloginingbox/sgloginingbox.plist", RES_TYPE_LAYER_UI, sg_cgMovieLayer); // ResourceManager::sharedInstance()->bindTexture("sgserverlistlayer/sgserverlistlayer.plist",RES_TYPE_LAYER_UI ,sg_registerLayer); box = CCSprite::createWithSpriteFrameName("register_diban.png"); box->setPosition(SGLayout::getPoint(kMiddleCenter)); this->addChild(box); m_cdk = CCEditBox::create(CCSizeMake(500, 60), CCScale9Sprite::createWithSpriteFrameName("public_kuang_input.png")); m_cdk->setPlaceHolder(str_CGMovieLayer_str8); m_cdk->setPlaceholderFontColor(ccc3(0x82,0x3e,0x02)); m_cdk->setMaxLength(10); m_cdk->setReturnType(kKeyboardReturnTypeDone); m_cdk->setInputMode(kEditBoxInputModeSingleLine); m_cdk->setPosition(ccp(box->getContentSize().width*.5,box->getContentSize().height*.48)); // m_cdk->setDelegate(this); box->addChild(m_cdk); title = CCSprite::createWithSpriteFrameName("gameactive.png"); title->setPosition(ccp(box->getContentSize().width*.5,box->getContentSize().height*.8)); box->addChild(title); //确定 btn = SGButton::create("box_btnbg.png", "public_font_queding.png", this, menu_selector(SGCGMovieLayer::btnclick),CCPointZero,false,true); this->addBtn(btn); btn->setPosition(ccpAdd(box->getPosition(),ccp(-140,-btn->getContentSize().height*2.5))); //取消 btn2 = SGButton::create("box_btnbg.png", "public_font_quxiao.png", this, menu_selector(SGCGMovieLayer::btnclickcancel),CCPointZero,false,true); this->addBtn(btn2); btn2->setPosition(ccpAdd(box->getPosition(),ccp(140,-btn->getContentSize().height*2.5))); } else { schedule(schedule_selector(SGCGMovieLayer::moveCgMsgUp), CGMSGMOVEGAP); } }
void AlertViewScene::showMessageParking(CCNode* parent, SEL_MenuHandler callbackFunction ,int wayPoint) { int basePosition = 50; float heigth = CCDirector::sharedDirector()->getWinSize().height; if (heigth >480) { basePosition = 100;//4inch } if( AlertViewScene::isActive == true) return; AlertViewScene::isActive = true; //Layer - Container with all elements of Alert CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255)); node->setContentSize(CCDirector::sharedDirector()->getWinSize()); node->setOpacity(200); node->setAnchorPoint(ccp(0,0)); node->setPosition(ccp(0,0)); //Fundo do Popup CCSprite *sprBackground = CCSprite::create("popup.png"); sprBackground->setAnchorPoint(ccp(0,0)); sprBackground->setScale(1); sprBackground->setPosition(ccp( 25,basePosition+100)); node->addChild(sprBackground); //Close Button of frame CCSprite *btnClose = CCSprite::create("fechar_btn.png"); CCSprite *btnClosePress = CCSprite::create("fechar_press.png"); CCSprite *Icone = CCSprite::create("icone_estacionamento.png"); Icone->setPosition(ccp(45,basePosition+225)); node->addChild(Icone); CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, callbackFunction); itembtnClose->setAnchorPoint(ccp(0, 0)); itembtnClose->setPosition(ccp(280,basePosition+303)); //Button Rota para o local CCSprite *btnSelect = CCSprite::create("ok_btn.png"); CCSprite *btnUnselect = CCSprite::create("ok_press.png"); CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction); itembtnRota->setAnchorPoint(ccp(0, 0)); itembtnRota->setPosition(ccp(115,basePosition+150)); //Button Rota para o local CCMenu* options = CCMenu::create(); options->addChild(itembtnClose,0,44); options->addChild(itembtnRota,0,wayPoint); options->setPosition(ccp(0, -20)); node->addChild(options,3,Global::TAG_Child_Layer); //Title of Alert CCLabelTTF *labelTitle; labelTitle = CCLabelTTF::create("Alerta", "LucidaGrandeBold", 16); labelTitle->setPosition(ccp(35, basePosition+260)); labelTitle->setAnchorPoint(ccp(0,0)); labelTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelTitle); //sub-Title of Alert CCLabelTTF *labelSubTitle; labelSubTitle = CCLabelTTF::create("Atenção", "LucidaGrandeBold", 11); labelSubTitle->setPosition(ccp(60, basePosition+225)); labelSubTitle->setAnchorPoint(ccp(0,0)); labelSubTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelSubTitle); //Description of Alert CCLabelTTF *labelDescription; labelDescription = CCLabelTTF::create(" Ao entrar por este bloco você só poderá retirar", "Lucida Grande", 10); labelDescription->setPosition(ccp(40, basePosition+210)); labelDescription->setAnchorPoint(ccp(0,0)); labelDescription->setColor(ccc3(55, 55, 55)); node->addChild(labelDescription); //Description of Alert CCLabelTTF *labelDescription2; labelDescription2 = CCLabelTTF::create("seu veículo neste mesmo bloco.", "Lucida Grande", 10); labelDescription2->setPosition(ccp(35, basePosition+200)); labelDescription2->setAnchorPoint(ccp(0,0)); labelDescription2->setColor(ccc3(55, 55, 55)); node->addChild(labelDescription2); parent->addChild(node,10,Global::TAG_Alert_Layer); }
void showMessageSearch(CCNode* sender, SEL_MenuHandler callbackFunction) { if( AlertViewScene::isActive == true) return; AlertViewScene::isActive = true; //Layer - Container with all elements of Alert CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255)); node->setContentSize(CCDirector::sharedDirector()->getWinSize()); node->setOpacity(200); node->setAnchorPoint(ccp(0,0)); node->setPosition(ccp(0,0)); //Fundo do Popup CCSprite *sprBackground = CCSprite::create("popup.png"); sprBackground->setAnchorPoint(ccp(0,0)); sprBackground->setScale(1); sprBackground->setPosition(ccp(25,100)); node->addChild(sprBackground); //Close Button of frame // CCSprite *btnClose = CCSprite::create("fechar_btn.png"); // CCSprite *btnClosePress = CCSprite::create("fechar_press.png"); // CCSprite *Icone = CCSprite::create("icone_estacionamento.png"); // Icone->setPosition(ccp(45,225)); // node->addChild(Icone); // CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, callbackFunction); // itembtnClose->setAnchorPoint(ccp(0, 0)); // itembtnClose->setPosition(ccp(280,303)); //Button Rota para o local // CCSprite *btnSelect = CCSprite::create("ok_btn.png"); // CCSprite *btnUnselect = CCSprite::create("ok_press.png"); // CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction); // itembtnRota->setAnchorPoint(ccp(0, 0)); // itembtnRota->setPosition(ccp(115,150)); // //Button Rota para o local // CCMenu* options = CCMenu::create(); // options->addChild(itembtnClose,0,44); // options->addChild(itembtnRota,0,wayPoint); // options->setPosition(ccp(0, -20)); // node->addChild(options,3,Global::TAG_Child_Layer); //Title of Alert CCLabelTTF *labelTitle; labelTitle = CCLabelTTF::create("Alerta", "LucidaGrandeBold", 16); labelTitle->setPosition(ccp(35, 260)); labelTitle->setAnchorPoint(ccp(0,0)); labelTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelTitle); //sub-Title of Alert CCLabelTTF *labelSubTitle; labelSubTitle = CCLabelTTF::create("Atenção", "LucidaGrandeBold", 11); labelSubTitle->setPosition(ccp(60, 225)); labelSubTitle->setAnchorPoint(ccp(0,0)); labelSubTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelSubTitle); //Description of Alert CCLabelTTF *labelDescription; labelDescription = CCLabelTTF::create(" Sua busca retornou muitos resultados.", "Lucida Grande", 10); labelDescription->setPosition(ccp(40, 210)); labelDescription->setAnchorPoint(ccp(0,0)); labelDescription->setColor(ccc3(55, 55, 55)); node->addChild(labelDescription); //Description of Alert // CCLabelTTF *labelDescription2; // labelDescription2 = CCLabelTTF::create(".", "Lucida Grande", 10); // labelDescription2->setPosition(ccp(35, 200)); // labelDescription2->setAnchorPoint(ccp(0,0)); // labelDescription2->setColor(ccc3(55, 55, 55)); // node->addChild(labelDescription2); sender->addChild(node,10,Global::TAG_Alert_Layer); }
void AlertViewScene::showMessageParkingOption(CCNode* sender, SEL_MenuHandler entering,SEL_MenuHandler outing,SEL_MenuHandler quiting) { if( AlertViewScene::isActive == true) return; AlertViewScene::isActive = true; CCSprite *sprBackground = CCSprite::create("bg_parking_4inch.png"); sprBackground->setAnchorPoint(ccp(0,0)); //sprBackground->setScale(1); sprBackground->setPosition(ccp(0,0)); //Backgroud Alert CCSprite *sprBackground2 = CCSprite::create("popup.png"); sprBackground2->setAnchorPoint(ccp(0,0)); //sprBackground2->setScale(1); sprBackground2->setPosition(ccp(25,200)); //Layer - Container with all elements of Alert CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,200)); // node->setContentSize(CCDirector::sharedDirector()->getWinSize()); //node->addChild(sprBackground,1); node->addChild(sprBackground2,22); //node->setOpacity(200); node->setAnchorPoint(ccp(0,0)); node->setPosition(ccp(0,0)); //Close Button of frame CCSprite *btnClose = CCSprite::create("fechar_btn.png"); CCSprite *btnClosePress = CCSprite::create("fechar_press.png"); CCSprite *Icone = CCSprite::create("icon_car.png"); Icone->setPosition(ccp(45,325)); node->addChild(Icone,23); CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, quiting); itembtnClose->setAnchorPoint(ccp(0, 0)); itembtnClose->setPosition(ccp(280,380)); //Button Rota para o local CCSprite *imgEntering = CCSprite::create("button_entering.png"); CCSprite *imgEnteringPress = CCSprite::create("button_entering_press.png"); CCMenuItemSprite *btnEntering = CCMenuItemSprite::create( imgEnteringPress,imgEntering, node,entering); btnEntering->setAnchorPoint(ccp(0, 0)); btnEntering->setPosition(ccp(70,250)); CCSprite *imgOuting = CCSprite::create("button_outing.png"); CCSprite *imgOutingPress = CCSprite::create("button_outing_press.png"); CCMenuItemSprite *btnOuting = CCMenuItemSprite::create( imgOutingPress,imgOuting, node,outing); btnOuting->setAnchorPoint(ccp(0, 0)); btnOuting->setPosition(ccp(170,250)); CCMenu* options = CCMenu::create(); options->addChild(itembtnClose,0,44); options->addChild(btnEntering,15,84); options->addChild(btnOuting,16,84); options->setPosition(ccp(0, 0)); node->addChild(options,24,Global::TAG_Child_Layer); //Title of Alert CCLabelTTF *labelTitle; labelTitle = CCLabelTTF::create("Você está:", "LucidaGrandeBold", 16); labelTitle->setPosition(ccp(35, 360)); labelTitle->setAnchorPoint(ccp(0,0)); labelTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelTitle,25); //Description of Alert CCLabelTTF *labelDescription; labelDescription = CCLabelTTF::create(" Você está saindo ou entrando?", "Lucida Grande", 12); labelDescription->setPosition(ccp(40, 320)); labelDescription->setAnchorPoint(ccp(0,0)); labelDescription->setColor(ccc3(55, 55, 55)); node->addChild(labelDescription,26); // // // // // // ((CCLayerColor*)sender)->setOpacity(30); // CCDirector::sharedDirector()->getRunningScene()->addChild(node,10,Global::TAG_Alert_Layer); sender->addChild(node, 30, Global::TAG_Alert_Layer); }
void AlertViewScene::showMessageRota(CCNode* sender, SEL_MenuHandler callbackFunction ,int wayPoint) { if( AlertViewScene::isActive == true) return; AlertViewScene::isActive = true; //Backgroud Alert CCSprite *sprBackground = CCSprite::create("popup.png"); sprBackground->setAnchorPoint(ccp(0,0)); sprBackground->setScale(1); sprBackground->setPosition(ccp(25,100)); //Layer - Container with all elements of Alert CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255)); node->setContentSize(CCDirector::sharedDirector()->getWinSize()); node->addChild(sprBackground); node->setOpacity(200); node->setAnchorPoint(ccp(0,0)); node->setPosition(ccp(0,0)); //Close Button of frame CCSprite *btnClose = CCSprite::create("fechar_btn.png"); CCSprite *btnClosePress = CCSprite::create("fechar_press.png"); CCSprite *Icone = CCSprite::create("icone_horario.png"); Icone->setPosition(ccp(45,225)); node->addChild(Icone); CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, menu_selector(AlertViewScene::btnCloseAlert)); itembtnClose->setAnchorPoint(ccp(0, 0)); itembtnClose->setPosition(ccp(280,303)); //Button Rota para o local CCSprite *btnSelect = CCSprite::create("Rota_btn.png"); CCSprite *btnUnselect = CCSprite::create("Rota_press.png"); CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction); itembtnRota->setAnchorPoint(ccp(0, 0)); itembtnRota->setPosition(ccp(80,150)); //Button Rota para o local CCMenu* options = CCMenu::create(); options->addChild(itembtnClose,0,44); options->addChild(itembtnRota,0,wayPoint); options->setPosition(ccp(0, -20)); node->addChild(options,3,Global::TAG_Child_Layer); //Title of Alert CCLabelTTF *labelTitle; labelTitle = CCLabelTTF::create(IFixedMenu::LoadWayPointName(wayPoint), "LucidaGrandeBold", 16); labelTitle->setPosition(ccp(35, 260)); labelTitle->setAnchorPoint(ccp(0,0)); labelTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelTitle); CCLabelTTF *labelSubTitle; labelSubTitle = CCLabelTTF::create("Horário de funcionamento", "LucidaGrandeBold", 11); labelSubTitle->setPosition(ccp(60, 225)); labelSubTitle->setAnchorPoint(ccp(0,0)); labelSubTitle->setColor(ccc3(55, 55, 55)); node->addChild(labelSubTitle); //Description of Alert CCLabelTTF *labelDescription; labelDescription = CCLabelTTF::create("Estamos abertos todos os dias das 9h as 24h*", "Lucida Grande", 10); labelDescription->setPosition(ccp(60, 210)); labelDescription->setAnchorPoint(ccp(0,0)); labelDescription->setColor(ccc3(55, 55, 55)); node->addChild(labelDescription); ((CCLayerColor*)sender)->setOpacity(30); CCDirector::sharedDirector()->getRunningScene()->addChild(node,10,Global::TAG_Alert_Layer); }
//virtual void GameEntityView::initView() { int cardW = 200; int cardH = 200; setContentSize( CCSizeMake( cardW, cardH )); setAnchorPoint(ccp(0.5f,0.5f)); CCLayerColor* bg = CCLayerColor::create(ccc4(25,25,25,255), cardW,cardH); bg->setAnchorPoint(ccp(0,0)); addChild(bg, 1); int margin = 2; m_highlight = CCLayerColor::create(ccc4(200,200,20,255), cardW+margin*2,cardH+margin*2); m_highlight->setPosition(ccp(-margin,-margin)); m_highlight->setAnchorPoint(ccp(0,0)); addChild(m_highlight, 0); setHighlighted(false); m_lblName = CCLabelTTF::create(); m_lblName->initWithString( m_pEntity->getName().c_str(), "Arial", 24.0f ); m_lblName->setAnchorPoint(ccp(0.0f, 1.0f ) ); m_lblName->setPositionY(cardH); addChild(m_lblName, 50); int healthBarH = 30; m_healthBar = ProgressBar::create( CCRectMake(0,0, cardW/2, healthBarH) ); m_healthBar->setMargin(margin); m_healthBar->setProgress( m_pEntity->getProperty("hp_curr") / (m_pEntity->getProperty("hp_base")) ); m_healthBar->setAnchorPoint(ccp(0.0f, 1.0f) ); m_healthBar->setPositionY( 200 - m_lblName->getContentSize().height ); addChild(m_healthBar, 49); int manaBarH = 10; m_manaBar = ProgressBar::create( CCRectMake( 0,0, cardW/2, manaBarH ) ); m_manaBar->setMargin(margin); m_manaBar->setColor( ccc3(50,50,255), ccc3(50,50,50) ); m_manaBar->setProgress( m_pEntity->getProperty("mana_curr") / (m_pEntity->getProperty("mana_base")) ); m_manaBar->setAnchorPoint(ccp(0,1.0f)); m_manaBar->setPositionY( m_healthBar->getPositionY() - (m_healthBar->getContentSize().height + margin*2) ); addChild(m_manaBar, 48); int xpBarH = 10; m_xpBar = ProgressBar::create( CCRectMake( 0,0, cardW, xpBarH ) ); m_xpBar->setMargin(margin); m_xpBar->setColor( ccc3(150,150,150), ccc3(20,20,20) ); if( m_pEntity->getProperty("xp_next") > 0 ) { m_xpBar->setProgress( m_pEntity->getProperty("xp_curr") / m_pEntity->getProperty("xp_next") ); }else { m_xpBar->setVisible(false); } m_xpBar->setAnchorPoint( ccp(0, 1.0f) ); m_xpBar->setPositionY( m_manaBar->getPositionY() - (m_manaBar->getContentSize().height + margin*2) ); addChild(m_xpBar, 48); m_lblLevel = CCLabelTTF::create(); m_lblLevel->initWithString( m_pEntity->getLevelStr().c_str(), "Arial", 10.0f ); m_lblLevel->setAnchorPoint( ccp(0.0f, 1.0f ) ); m_lblLevel->setPositionY( m_xpBar->getPositionY() + xpBarH/2 ); addChild(m_lblLevel, 49); int bufIndSize = cardW/6; m_buffIndicator = CCLayerColor::create(ccc4(25,200,25,255), bufIndSize,bufIndSize); //m_buffIndicator->setAnchorPoint(ccp(0.0f,0.0f)); m_buffIndicator->setPositionX(cardW - bufIndSize); m_buffIndicator->setPositionY(cardH - bufIndSize); m_buffIndicator->setVisible(false); addChild(m_buffIndicator, 10); m_debuffIndicator = CCLayerColor::create(ccc4(200,25,25,255), bufIndSize,bufIndSize); //m_debuffIndicator->setAnchorPoint(ccp(0,0)); m_debuffIndicator->setPositionX(cardW - (bufIndSize*2 + margin)); m_debuffIndicator->setPositionY(cardH - bufIndSize); m_debuffIndicator->setVisible(false); addChild(m_debuffIndicator, 10); std::vector<CastCommandState*>& abilities = m_pEntity->getAbilityList(); int maxPerRow = 2; int row = 0; int col = 0; for( int i=0; i < abilities.size(); i++) { col = (i/maxPerRow); row = i - (col*maxPerRow); CastCommandState* ability = abilities[i]; GameAbilityView* abilityView = new GameAbilityView( ability ); m_abilityViews.push_back(abilityView); abilityView->setPositionX( col * abilityView->getContentSize().width ); abilityView->setPositionY( row * abilityView->getContentSize().height ); addChild(abilityView, 51); } }
// on "init" you need to initialize your instance bool GameScene::init() { if ( !CCLayer::init() ) { return false; } // Variables de tamanyo CCSize vs = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // Layer con los botones al hacer pause _layerPause = CCLayerColor::create(ccc4(255,255,255,0)); _layerPause->setContentSize(CCSizeMake(350, 100)); _layerPause->ignoreAnchorPointForPosition(false); _layerPause->setAnchorPoint(ccp(0.5, 0.5)); _layerPause->setPosition(ccp(vs.width/2, vs.height/2)); _layerPause->retain(); CCMenuItem* button_resume = CCMenuItemImage::create("btn_resume.png", "btn_resume_h.png", this, menu_selector(GameScene::menuResumeCallback)); button_resume->setPosition(ccp(50, 50)); CCMenuItem* button_restart = CCMenuItemImage::create("btn_restart.png", "btn_restart_h.png", this, menu_selector(GameScene::menuRestartCallback)); button_restart->setPosition(ccp(175, 50)); CCMenuItem* button_exit = CCMenuItemImage::create("btn_exit.png", "btn_exit_h.png", this, menu_selector(GameScene::menuExitCallback)); button_exit->setPosition(ccp(300, 50)); CCMenu* menu_pause = CCMenu::create(button_resume, button_restart, button_exit, NULL); menu_pause->setPosition(ccp(0,0)); _layerPause->addChild(menu_pause); // Layer que se muestra al terminar la carrera _layerEnd = CCLayerColor::create(ccc4(0,0,0,0)); _layerEnd->setContentSize(CCSizeMake(225, 225)); _layerEnd->ignoreAnchorPointForPosition(false); _layerEnd->setAnchorPoint(ccp(0.5, 0.5)); _layerEnd->setPosition(ccp(vs.width/2, vs.height/2)); _layerEnd->retain(); CCMenuItem* button_end_restart = CCMenuItemImage::create("btn_restart.png", "btn_restart_h.png", this, menu_selector(GameScene::menuRestartCallback)); button_end_restart->setPosition(ccp(50, 50)); CCMenuItem* button_end_exit = CCMenuItemImage::create("btn_exit.png", "btn_exit_h.png", this, menu_selector(GameScene::menuExitCallback)); button_end_exit->setPosition(ccp(175, 50)); CCMenu* menu_end = CCMenu::create(button_end_restart, button_end_exit, NULL); menu_end->setPosition(ccp(0,0)); CCLayerColor* layerTime = CCLayerColor::create(ccc4(255,255,255,255)); layerTime->setContentSize(CCSizeMake(225, 100)); layerTime->ignoreAnchorPointForPosition(false); layerTime->setAnchorPoint(ccp(0.5, 0.5)); layerTime->setPosition(ccp(112.5, 175)); layerTime->retain(); _labelTimeEnd = CCLabelTTF::create("Time:\n0:00:000", "fonts/FrancoisOne.ttf", 30, CCSizeMake(225, 100), kCCTextAlignmentCenter); _labelTimeEnd->setColor(ccc3(0,0,0)); _labelTimeEnd->setPosition(ccp(112.5, 50)); layerTime->addChild(_labelTimeEnd); _layerEnd->addChild(menu_end); _layerEnd->addChild(layerTime); // Boton de pause (menu) CCMenuItem* button_pause = CCMenuItemImage::create("btn_pause.png", "btn_pause_h.png", this, menu_selector(GameScene::menuPauseCallback)); button_pause->setPosition(ccp(75, vs.height - 75)); CCMenu* menu = CCMenu::create(button_pause, NULL); menu->setPosition(ccp(0,0)); // Velocidad CCString* stringVel = CCString::createWithFormat("%d km/h", (int)_vel); _labelVel = CCLabelTTF::create(stringVel->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter); _labelVel->setColor(ccc3(255,255,255)); _labelVel->setPosition(ccp(vs.width - 72, 50)); // Distancia CCString* stringDist = CCString::createWithFormat("%d m", (int)_dist); _labelDist = CCLabelTTF::create(stringDist->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter); _labelDist->setColor(ccc3(255,255,255)); _labelDist->setPosition(ccp(72, 50)); // Tiempo int hs = _time/3600000; int mins = (_time%3600000)/60000; int ss = ((_time%3600000)%60000)/1000; int ms = ((_time%3600000)%60000)%1000; CCString* stringTime = CCString::createWithFormat("%d:%02d:%03d", mins, ss, ms); _labelTime = CCLabelTTF::create(stringTime->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter); _labelTime->setColor(ccc3(255,255,255)); _labelTime->setPosition(ccp(vs.width - 72, vs.height - 50)); // Click to start _labelStart = CCLabelTTF::create("Click to Start", "fonts/FrancoisOne.ttf", 50, CCSizeMake(200, 200), kCCTextAlignmentCenter); _labelStart->setColor(ccc3(255,255,255)); _labelStart->setPosition(ccp(vs.width/2, vs.height/2)); _labelStart->retain(); // Hierba ccTexParams tp = { GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT}; CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("texture_grass2.jpg"); texture->setTexParameters(&tp); _grass = CCSprite::createWithTexture(texture, CCRectMake(0, 0, vs.width, vs.height + 256)); _grass->setPosition( ccp( vs.width/2, vs.height/2 + 128 ) ); // Carretera texture = CCTextureCache::sharedTextureCache()->addImage("texture_road2.jpg"); texture->setTexParameters(&tp); _road = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 512, vs.height + 512)); _road->setPosition( ccp( vs.width/2, vs.height/2 + 256 ) ); // Pianos texture = CCTextureCache::sharedTextureCache()->addImage("piano.png"); texture->setTexParameters(&tp); _piano1 = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 64, vs.height + 64)); _piano1->setPosition( ccp(vs.width * 0.15, vs.height / 2 + 32) ); _piano2 = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 64, vs.height + 64)); _piano2->setPosition( ccp(vs.width * 0.85, vs.height / 2 + 32) ); // Coche _car = CCSprite::create("car_above_blue.png"); _car->setPosition(ccp(vs.width/2, 50)); // Creamos los indicadores de curva _curvasI = new CCArray; _curvasD = new CCArray; for (int i = 1; i <= 5; i++) { CCString* str_curvaI = CCString::createWithFormat("curva_izq_%d.png", i); CCString* str_curvaD = CCString::createWithFormat("curva_der_%d.png", i); CCSprite* curvaI = CCSprite::create(str_curvaI->getCString()); curvaI->setOpacity(0); curvaI->setPosition(ccp(vs.width/2, vs.height/4*3)); CCSprite* curvaD = CCSprite::create(str_curvaD->getCString()); curvaD->setOpacity(0); curvaD->setPosition(ccp(vs.width/2, vs.height/4*3)); _curvasI->addObject(curvaI); _curvasD->addObject(curvaD); this->addChild(curvaI, 5); this->addChild(curvaD, 5); } // Anyadimos los elementos a la vista this->addChild(_grass, 1); this->addChild(_road, 2); this->addChild(_car, 3); this->addChild(menu, 5); this->addChild(_labelVel, 5); this->addChild(_labelDist, 5); this->addChild(_labelTime, 5); this->addChild(_labelStart, 5); // Inicializamos el vector de curvas segun el nivel if (_level == 1) { _curvas.push_back(Curva(250, 200, 2, false)); _curvas.push_back(Curva(550, 200, 2, false)); _curvas.push_back(Curva(1200, 100, 4, false)); _curvas.push_back(Curva(1650, 200, 2, false)); _curvas.push_back(Curva(1950, 200, 2, false)); _curvas.push_back(Curva(2500, 200, 2, false)); _curvas.push_back(Curva(2800, 200, 2, false)); _mCircuito = 3000; } else if (_level == 2) { _curvas.push_back(Curva(100, 150, 2, false)); _curvas.push_back(Curva(350, 150, 2, false)); _curvas.push_back(Curva(700, 250, 1, false)); _curvas.push_back(Curva(1150, 150, 3, false)); _curvas.push_back(Curva(1500, 100, 4, false)); _curvas.push_back(Curva(1800, 100, 4, false)); _curvas.push_back(Curva(2000, 200, 2, true)); _curvas.push_back(Curva(2300, 50, 5, true)); _curvas.push_back(Curva(2750, 150, 2, true)); _curvas.push_back(Curva(3000, 50, 4, true)); _curvas.push_back(Curva(3100, 100, 2, false)); _curvas.push_back(Curva(3300, 100, 2, false)); _curvas.push_back(Curva(3500, 100, 4, false)); _curvas.push_back(Curva(3800, 250, 2, false)); _curvas.push_back(Curva(4250, 250, 1, false)); _curvas.push_back(Curva(4700, 150, 3, false)); _mCircuito = 5350; } else { // _level == 3 _curvas.push_back(Curva(100, 50, 2, true)); _curvas.push_back(Curva(250, 50, 2, false)); _curvas.push_back(Curva(400, 100, 4, false)); _curvas.push_back(Curva(600, 100, 2, false)); _curvas.push_back(Curva(800, 50, 4, true)); _curvas.push_back(Curva(950, 50, 4, true)); _curvas.push_back(Curva(1100, 100, 2, false)); _curvas.push_back(Curva(1300, 50, 4, true)); _curvas.push_back(Curva(1450, 50, 4, true)); _curvas.push_back(Curva(1600, 100, 4, false)); _curvas.push_back(Curva(1900, 100, 2, false)); _curvas.push_back(Curva(2100, 50, 5, true)); _curvas.push_back(Curva(2450, 100, 2, true)); _curvas.push_back(Curva(2650, 50, 5, false)); _curvas.push_back(Curva(2900, 100, 4, false)); _curvas.push_back(Curva(3200, 150, 2, true)); _curvas.push_back(Curva(3450, 100, 4, true)); _curvas.push_back(Curva(3650, 50, 4, true)); _curvas.push_back(Curva(3800, 100, 4, false)); _curvas.push_back(Curva(4000, 50, 4, true)); _curvas.push_back(Curva(4150, 150, 2, true)); _curvas.push_back(Curva(4400, 100, 2, false)); _curvas.push_back(Curva(4600, 100, 2, false)); _curvas.push_back(Curva(4800, 100, 5, true)); _curvas.push_back(Curva(5000, 50, 2, true)); _curvas.push_back(Curva(5150, 100, 5, false)); _curvas.push_back(Curva(5450, 200, 5, true)); _mCircuito = 5850; } // Inicializamos el vector de coches en contra _oppCars = new CCArray; // Activamos el acelerometro y el touch this->setTouchEnabled(true); // Calculamos el tamanyo de cada tramo para informar al Arduino int nleds = CCUserDefault::sharedUserDefault()->getIntegerForKey("nleds"); _longTramo = (int) (_mCircuito/nleds); // Enviamos al Arduino que hemos entrado int iColor = CCUserDefault::sharedUserDefault()->getIntegerForKey("color"); CCDictionary* prms = CCDictionary::create(); prms->setObject(CCString::createWithFormat("%d", iColor), "color"); SendMessageWithParams(string("JugadorEntra"), prms); return true; }
// on "init" you need to initialize your instance bool TutorialScene::init(bool firstTime) { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } //navigation _firstTime = firstTime; _moveStarted = false; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCLayerColor* background = CCLayerColor::create(ccc4(0, 0, 0, 255), visibleSize.width, visibleSize.height); background->setAnchorPoint(ccp(0,0)); addChild(background); CCMenuItemImage* nextImgItem = CCMenuItemImage::create( "Interfeiss/buttons/arrow_r_btn0001.png", "Interfeiss/buttons/arrow_r_btn0002.png", this, menu_selector(TutorialScene::btNextCallback)); CCMenuItemImage* prevImgItem = CCMenuItemImage::create( "Interfeiss/buttons/arrow_l_btn0001.png", "Interfeiss/buttons/arrow_l_btn0002.png", this, menu_selector(TutorialScene::btPrevCallback)); CCMenuItemImage* closeItem = CCMenuItemImage::create( "Interfeiss/buttons/close_btn0001.png", "Interfeiss/buttons/close_btn0002.png", this, menu_selector(TutorialScene::btCloseCallback)); _images[0] = "Interfeiss/tutorial/1.png"; _images[1] = "Interfeiss/tutorial/2.png"; _images[2] = "Interfeiss/tutorial/3.png"; _images[3] = "Interfeiss/tutorial/4.png"; _images[4] = "Interfeiss/tutorial/5.png"; _images[5] = "Interfeiss/tutorial/6.png"; nextImgItem->setAnchorPoint(ccp(1,0)); prevImgItem->setAnchorPoint(ccp(0,0)); closeItem->setAnchorPoint(ccp(1,1)); CCMenu* nextMenu = CCMenu::create(nextImgItem, NULL); CCMenu* prevMenu = CCMenu::create(prevImgItem, NULL); CCMenu* closeMenu = CCMenu::create(closeItem, NULL); prevMenu->setPosition(ccp(10,10)); nextMenu->setPosition(visibleSize.width - 10, 10); closeMenu->setPosition(visibleSize.width - 10, visibleSize.height - 10); _activeImage = CCSprite::create(_images[0].c_str()); _activeImage->setAnchorPoint(ccp(0,0)); _activeImage->setPositionY((visibleSize.height - _activeImage->getContentSize().height) / 2); addChild(_activeImage,0); _activeImg = 0; showFirstPageAnimation(); addChild(nextMenu, 1); addChild(prevMenu, 2); // addChild(closeMenu, 3); return true; }
bool MethodStackLayer::init() { CCSize mapSize = GameParams::getInstanse()->mapSize(); if ( !CCLayer::init() ) { return false; } stackCapasity = ((int)mapSize.height - 400) / (int)BUTTON_TILE_SIZE; showButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getShowIconSprite(), PMTextureCache::instanse()->getShowIconSprite_Selected(), PMTextureCache::instanse()->getShowIconSprite_Disabled(), this, menu_selector(MethodStackLayer::show)); hideButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getHideIconSprite(), PMTextureCache::instanse()->getHideIconSprite_Selected(), PMTextureCache::instanse()->getHideIconSprite_Disabled(), this, menu_selector(MethodStackLayer::hide)); clearButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getClearIconSprite(), PMTextureCache::instanse()->getClearIconSprite_Selected(), PMTextureCache::instanse()->getClearIconSprite_Disabled(), this, menu_selector(MethodStackLayer::clear)); showButton->setAnchorPoint( CCPointZero ); showButton->setPosition( CCPointZero ); hideButton->setAnchorPoint( CCPointZero ); hideButton->setPosition( CCPointZero ); clearButton->setPosition( ccp(0, - hideButton->getContentSize().height) ); clearButton->setAnchorPoint( CCPointZero ); clearButton->setEnabled(false); hideButton->setVisible(false); CCMenu *menu = CCMenu::create(showButton, hideButton, clearButton, NULL); menu->setAnchorPoint( CCPointZero ); menu->setPosition( ccp(0, stackCapasity * BUTTON_TILE_SIZE - showButton->getContentSize().height) ); setContentSize(CCSizeMake(BUTTON_TILE_SIZE + showButton->getContentSize().width, stackCapasity * BUTTON_TILE_SIZE)); setPosition(ccp(mapSize.width - showButton->getContentSize().width, 200)); CCLayerColor *colorLayer = CCLayerColor::create(ccc4(145,145,145,255 * 0.5f), BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE); colorLayer->setAnchorPoint( ccp(0,0) ); colorLayer->setPosition( ccp(showButton->getContentSize().width,0) ); scroll = MethodScrollLayer::create(this); scroll->setViewSize( CCSizeMake(BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE) ); scroll->setAnchorPoint( ccp(0,0) ); scroll->setPosition( ccp(showButton->getContentSize().width,0) ); scroll->setContentSize( CCSizeMake(BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE) ); scroll->setContentOffset( ccp(0, 0), true); scroll->setClippingToBounds(true); scroll->setDirection(kCCScrollViewDirectionVertical); scroll->setZoomScale(0.5); scroll->setBounceable(true); addChild(menu); addChild(colorLayer); addChild(scroll, 10); topPoint = ccp(showButton->getContentSize().width, getContentSize().height - BUTTON_TILE_SIZE); curPoint = CCPointZero; //clear(); lastButtonRepeater = false; return true; }
void SGAnnouncementLayer::initScrollView() { //ResourceManager::sharedInstance()->bindTexture("sgannouncementlayer/sgannouncementlayer2.plist", RES_TYPE_LAYER_UI, sg_announcementLayer); m_scrollview->getContainer()->removeAllChildrenWithCleanup(true); int positionY = 0;// Y轴纵向偏移, int border_shift = 20;//内容窗口偏移 int text_wid_expand = 40;//文本区宽度扩展 if (CCEGLView::sharedOpenGLView()->getFrameSize().width == ipadResource.size.width ||CCEGLView::sharedOpenGLView()->getFrameSize().width == ipadhdResource.size.width) { text_wid_expand = 28; } //记录上一个内容窗口的底线位置 float lastWindowBorderPos = 0.0f; for(int i = 0; i < m_arrayAnn->count(); i++) //for (int i = 0; i < 6; i++) { //=======================获取数据================================ SGAnnouncementDataModel *ann = (SGAnnouncementDataModel *)m_arrayAnn->objectAtIndex(i); CCString *title = ann->getTitle(); CCString *content = ann->getContent(); int viewId = ann->getViewId();//跳转至哪个页面 //=======================获取数据================================ CCLayer *layer = (CCLayer*)m_scrollview->getContainer();//获取scrollview的容器 CCLayerColor* contentWindow = initContentWindow(content, viewId > 0); contentWindow->setAnchorPoint(ccp(0.5, 0)); contentWindow->ignoreAnchorPointForPosition(false); CCSize cwSize = contentWindow->getContentSize(); CCSprite * sprite = CCSprite::createWithSpriteFrameName("Tips.png"); sprite->setScaleX(cwSize.width / 584.0); sprite->setScaleY(cwSize.height / 522.0); sprite->setPosition(ccp(cwSize.width * 0.5, cwSize.height * 0.5)); contentWindow->addChild(sprite, 2); //根据上一个内容窗口的位置计算下一个窗口的位置 contentWindow->setPosition(ccp(layer->getContentSize().width * 0.5, lastWindowBorderPos + border_shift)); /* tips.png图片拉长的倍数 */ float pngScale = cwSize.height / 522 ; // CCLOG("*******************>>>"); // CCLOG("i = %d" , i); // CCLOG("title = %s" , title->getCString()); // CCLOG("content = %s" , content->getCString()); // CCLOG("pos: x=%f , y = %f" , contentWindow->getPositionX() , contentWindow->getPositionY()); // CCLOG("cwSize: width=%f, height=%f", cwSize.width, cwSize.height); // CCLOG("lastWindowBorderPos = %f" , lastWindowBorderPos); // CCLOG("<<<********************"); lastWindowBorderPos = contentWindow->getPositionY() + cwSize.height; //公告title CCLabelTTF *label = CCLabelTTF::create(title->getCString(), FONT_PANGWA, 35); label->setColor(COLOR_RED); label->setAnchorPoint(ccp(0.5 , 1)); label->setPosition(ccp(cwSize.width *0.5f, cwSize.height - pngScale * 20)); contentWindow->addChild(label, 100); //公告内容 // CCSize maybeTextSize = stringInLabelRect(content->getCString()); // CCLabelTTF *label_content=CCLabelTTF::create(content->getCString(), FONT_PENGYOU, 24,CCSizeMake(maybeTextSize.width + text_wid_expand * 4,maybeTextSize.height + text_hei_expand),kCCTextAlignmentLeft); CCLabelTTF *label_content=CCLabelTTF::create(content->getCString(), FONT_PENGYOU, 24,CCSizeMake(cwSize.width - 40 * widthFactor, cwSize.height - label->getContentSize().height),kCCTextAlignmentLeft); label_content->setAnchorPoint(ccp(0.5, 1));//内容顶线对齐 label_content->setColor(ccBLACK); label_content->setPosition(ccp(label->getPositionX(), label->getPositionY() - label->getContentSize().height)); label_content->setZOrder(102); contentWindow->addChild(label_content); //点击前往按钮 if (viewId > 0) { SGButton *goButton = SGButton::create("box_btnbg.png", NULL, this, menu_selector(SGAnnouncementLayer::AnnounceButton),CCPointZero,false,true); CCString *go = CCString::createWithFormat(str_Hit_goto); SGCCLabelTTF *go_label = SGCCLabelTTF::create(go->getCString(), FONT_PANGWA, 30); goButton->addChild(go_label); goButton->setTag(viewId);//跳转到某个视图界面 go_label->setPosition(ccp(goButton->getContentSize().width / 2, goButton->getContentSize().height / 2)); //立即前往Button CCMenu *menu = CCMenu::create(goButton, NULL); menu->setTouchPriority(0); menu->setPosition(CCPointZero); goButton->setScale(0.7); goButton->setZOrder(200); //goButton->setPosition(ccp(label->getPositionX(), goButton->getContentSize().height / 1.5)); goButton->setAnchorPoint(ccp(0.5, 0)); goButton->setPosition(ccp(label->getPositionX(), pngScale * 18)); menu->setZOrder(200); contentWindow->addChild(menu); } layer->addChild(contentWindow); //每次加对应的contentWindow的大小,为之后计算scrollview的内容体偏移 positionY += (cwSize.height + border_shift); } //layer->setContentSize(CCSizeMake(504, m_scrollview->getContentSize().height)); //控制是否可以滑动 iscanmove = (positionY)>791?true:false;//@note:591是m_scrollview的可视区域高度 m_scrollview->setContentOffset(ccp(0, -positionY + m_scrollview->getContentSize().height - 30));//20是顶部窗口的起始位置偏移,不减去会有一小部分遮挡 m_scrollview->setContentSize(CCSizeMake(m_scrollview->getContentSize().width, positionY));//scrollview的真正大小 m_scrollview->getContainer()->setContentSize(CCSizeMake(m_scrollview->getContentSize().width, positionY + 10));//滚动重置时的container位置 }
// on "init" you need to initialize your instance bool MainMenuScene::init() { // Parent CCLayerColor *layer = CCLayerColor::create(); layer->initWithColor(ccc4(255, 255, 255, 255), VisibleRect::right().x , VisibleRect::top().y); layer->setPosition(VisibleRect::center()); layer->setAnchorPoint(ccp(0.5f, 0.5f)); layer->ignoreAnchorPointForPosition(false); addChild(layer, 0); CCSprite *fondo = CCSprite::create("fondo.png"); fondo->setPosition(VisibleRect::center()); layer->addChild(fondo); // 1st Son CCLayerColor *upperLayer = CCLayerColor::create(); upperLayer->setContentSize(ccp(VisibleRect::right().x , VisibleRect::top().y/2)); //upperLayer->initWithColor(ccc4(120, 120, 120, 120), VisibleRect::right().x , VisibleRect::top().y/2); upperLayer->setPosition(ccp(VisibleRect::left().x, VisibleRect::center().y)); upperLayer->setAnchorPoint(ccp(0,0)); upperLayer->ignoreAnchorPointForPosition(false); layer->addChild(upperLayer, 0); CCSprite *spriteLogo = CCSprite::create("logo_opciones.png"); spriteLogo->setPosition(ccp(layer->getPosition().x, layer->getPosition().y/2)); upperLayer->addChild(spriteLogo); // 2nd Son CCLayerColor *lowerLayer = CCLayerColor::create(); lowerLayer->setContentSize(ccp(VisibleRect::right().x , VisibleRect::top().y/2)); //lowerLayer->initWithColor(ccc4(200, 200, 200, 200), VisibleRect::right().x , VisibleRect::top().y/2); lowerLayer->setPosition(ccp(VisibleRect::left().x, VisibleRect::bottom().y)); lowerLayer->setAnchorPoint(ccp(0,0)); lowerLayer->ignoreAnchorPointForPosition(false); layer->addChild(lowerLayer, 0); int mySize = lowerLayer->getContentSize().height / 3; // Button SAILKAPENA CCTexture2D *texture1 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png"); SpriteButton *pButton1 = SpriteButton::create(texture1 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f); pButton1->setTag(2); pButton1->setPosition(ccp( lowerLayer->getContentSize().width / 2, lowerLayer->getContentSize().height / 2)); pButton1->setAnchorPoint(ccp(0.5f, 0.5f)); CCLabelTTF *pLabel1 = CCLabelTTF::create("Sailkapena", "fonts/PT_Sans-Web-Bold.ttf", 30.0); pLabel1->setPosition(ccp( lowerLayer->getContentSize().width / 2, lowerLayer->getContentSize().height / 2)); lowerLayer->addChild(pButton1); lowerLayer->addChild(pLabel1); // Button JOKATU CCTexture2D *texture2 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png"); SpriteButton *pButton2 = SpriteButton::create(texture2 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f); pButton2->setTag(1); pButton2->setPosition(ccp( lowerLayer->getContentSize().width / 2, (mySize * 3) - texture2->getContentSize().height)); pButton2->setAnchorPoint(ccp(0.5f, 0.5f)); CCLabelTTF *pLabel2 = CCLabelTTF::create("Jokatu", "fonts/PT_Sans-Web-Bold.ttf", 30.0); pLabel2->setPosition(ccp( lowerLayer->getContentSize().width / 2, (mySize * 3) - texture2->getContentSize().height)); lowerLayer->addChild(pButton2); lowerLayer->addChild(pLabel2); // Button HONI BURUZ CCTexture2D *texture3 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png"); SpriteButton *pButton3 = SpriteButton::create(texture3 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f); pButton3->setTag(3); pButton3->setPosition(ccp( lowerLayer->getContentSize().width / 2, mySize - (texture2->getContentSize().height / 2))); pButton3->setAnchorPoint(ccp(0.5f, 0.5f)); CCLabelTTF *pLabel3 = CCLabelTTF::create("Honi buruz", "fonts/PT_Sans-Web-Bold.ttf", 30.0); pLabel3->setPosition(ccp( lowerLayer->getContentSize().width / 2, mySize - (texture2->getContentSize().height / 2))); lowerLayer->addChild(pButton3); lowerLayer->addChild(pLabel3); return true; }
//创建一个对应的简单的button,代表具体的章 CCLayerColor *SGSpecialBattleLayer::createChapButton(int buttonTag, SpecialBattleData *data) { CCLayerColor *layerColor = CCLayerColor::create(ccc4(0, 255, 0, 0), 160, 160); layerColor->setTag(111); layerColor->setAnchorPoint(ccp(0.5, 0.5)); if (data) { CCSprite *headIcon = SGDrawCards::createPureSprite(data->itemId, data->itemType, sg_specialBattleLayer); CCSprite *borderIcon = CCSprite::createWithSpriteFrameName("equipPinzhi_5_0.png"); headIcon->addChild(borderIcon, 1); borderIcon->setPosition(ccpAdd(ccp(headIcon->getContentSize().width / 2, headIcon->getContentSize().height / 2), ccp(0, 0))); CCSprite *headIcon1 = SGDrawCards::createPureSprite(data->itemId, data->itemType, sg_specialBattleLayer); CCSprite *borderIcon1 = CCSprite::createWithSpriteFrameName("equipPinzhi_5_0.png"); headIcon1->addChild(borderIcon1, 1); borderIcon1->setPosition(ccpAdd(ccp(headIcon1->getContentSize().width / 2, headIcon1->getContentSize().height / 2), ccp(0, 0))); //章节的按钮 SGButton *chapButton = SGButton::createFromSprite(headIcon, headIcon1, this, menu_selector(SGSpecialBattleLayer::enterSpBattleSection)); chapButton->setTag(buttonTag); //章节的名称 //250 197 68 SGCCLabelTTF *chapNameTTF = SGCCLabelTTF::create(data->chapName.c_str(), FONT_PANGWA, 24); chapButton->addChild(chapNameTTF, 2); chapNameTTF->setInsideColor(ccc3(250, 197, 68)); chapNameTTF->setPosition(ccpAdd(ccp(chapNameTTF->getContentSize().width / 2, chapNameTTF->getContentSize().height / 3.5), ccp(0, 0))); //如果没有开启,蒙灰 if (!data->isOpen) { CCSprite *greyMask = CCSprite::createWithSpriteFrameName("sp_battle_entry_mask.png"); greyMask->setOpacity(150); chapButton->addChild(greyMask, 10); greyMask->setPosition(ccpAdd(ccp(greyMask->getContentSize().width / 2 - 5, greyMask->getContentSize().height / 2 - 5), ccp(0, 0))); //未开启,不可用 chapButton->setEnabled(false); } CCMenu *menu = CCMenu::create(); menu->setTouchPriority(10); menu->setPosition(CCPointZero); menu->addChild(chapButton); layerColor->addChild(menu); chapButton->setPosition(ccpAdd(ccp(0, 0), ccp(layerColor->getContentSize().width / 2, layerColor->getContentSize().height / 1.5))); //显示描述的背景 CCSprite *descBg = CCSprite::createWithSpriteFrameName("sp_battle_infobg.png"); layerColor->addChild(descBg, 1); descBg->setPosition(ccpAdd(chapButton->getPosition(), ccp(0, -descBg->getContentSize().height / 2 - chapButton->getContentSize().height / 1.7))); //下方对应的描述 std::string desc; if (data->isOpen) { desc = data->chapOpenDesc; //如果是开启的,加上光效 ResourceManager::sharedInstance()->bindTexture("animationFile/ms_niubility.plist", RES_TYPE_LAYER_UI, sg_specialBattleLayer); CCSpriterX *newRewardEffect = CCSpriterX::create("animationFile/ms_niubility.scml", true, true); layerColor->addChild(newRewardEffect, -1); newRewardEffect->setanimaID(0); newRewardEffect->setisloop(true); newRewardEffect->setScale(1.15); newRewardEffect->setPosition(ccpAdd(chapButton->getPosition(), ccp(0, 0))); newRewardEffect->play(); } else { desc = data->chapClosedDesc; } SGCCLabelTTF *chapDescTTF = SGCCLabelTTF::create(desc.c_str(), FONT_PANGWA, 21); descBg->addChild(chapDescTTF, 1); chapDescTTF->setPosition(ccpAdd(ccp(descBg->getContentSize().width / 2, descBg->getContentSize().height / 2), ccp(0, 0))); //如果开启状态,显示剩余次数 if (data->isOpen) { SGCCLabelTTF *residueTimeTTF = SGCCLabelTTF::create(CCString::createWithFormat(str_SpecailBattleResidueCoint, data->freePlayTimes)->getCString(), FONT_PANGWA, 20); residueTimeTTF->setInsideColor(ccGREEN); layerColor->addChild(residueTimeTTF, 1); residueTimeTTF->setPosition(ccpAdd(descBg->getPosition(), ccp(0, -residueTimeTTF->getContentSize().height * 1.2))); } } else { //没有的,直接问号显示 SGButton *chapButton = SGButton::create("sp_battle_unlock.png", "equipPinzhi_5_0.png", this, NULL); chapButton->setEnabled(false); layerColor->addChild(chapButton); chapButton->setPosition(ccpAdd(ccp(0, 0), ccp(layerColor->getContentSize().width / 2, layerColor->getContentSize().height / 1.5))); } return layerColor; }