//测试图片滚动 void HelloWorld::test1() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(960,600); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中的东西 CCSprite* bg = CCSprite::create("war.png"); bg->setPosition( ccp(960/2.0, 600/2.0) ); scrollLayer->addChild(bg); //创建滚动视图CCScrollView CCScrollView* scrollView = CCScrollView::create(); this->addChild(scrollView, 0, 1); //属性设置 scrollView->setContainer(scrollLayer); //设置容器 scrollView->setViewSize( visableSize ); //可视区域大小 scrollView->setBounceable(true); //是否具有弹性 //委托代理 scrollView->setDelegate(this); }
bool LoginLayerUC::init() { BaseLayer::init(); m_ui = nullptr; m_iCurrentType = LoginResponseMsg; m_LayoutRoot = CWidgetWindow::create(); m_LayoutRoot->setTag(10000); this->addChild(m_LayoutRoot); CCLayerColor* pColor = CCLayerColor::create(ccc4(255, 255, 255, 255)); pColor->setContentSize(WINSIZE); pColor->setPosition(CCPointZero); m_LayoutRoot->addChild(pColor, -1); //加载 CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("loginScene/opening.ExportJson"); //生成骨骼 m_armature = CCArmature::create("opening"); m_armature->setPosition(VCENTER); m_LayoutRoot->addChild(m_armature); //绑定动画事件 m_armature->getAnimation()->setMovementEventCallFunc(this, movementEvent_selector(LoginLayerUC::movementCallBack)); m_armature->getAnimation()->setFrameEventCallFunc(this, frameEvent_selector(LoginLayerUC::frameEventCallBack)); m_armature->getAnimation()->playWithIndex(0); this->runAction(CCSequence::createWithTwoActions(CCDelayTime::create(2.8f), CCCallFunc::create(this, callfunc_selector(LoginLayerUC::callBackForSoundUp)))); return true; }
//测试只能纵向滚动 void HelloWorld::test2() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(150,220); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中添加四个按钮 for(int i = 1; i <= 4; i++) { char file[20]; sprintf(file, "btn%d.png", i); CCSprite* btn = CCSprite::create(file); btn->setPosition( ccp(mysize.width/2, 220 - 50*i) ); scrollLayer->addChild(btn); } //创建滚动视图CCScrollView //可视区域大小150*100 、 容器为scrollLayer CCScrollView* scrollView = CCScrollView::create(CCSizeMake(150, 100), scrollLayer); scrollView->setPosition( visableSize/2 - ccp(150/2.0, 100/2.0) ); this->addChild(scrollView, 0, 2); //设置为只能纵向滚动 scrollView->setDirection(kCCScrollViewDirectionVertical); //委托代理 scrollView->setDelegate(this); }
bool bottonLayer::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } //CCSize size = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *layer = CCLayerColor::create(ccc4(192, 192, 192, 255)); //CCLayer *layer = CCLayer::create(); layer->setContentSize(CCSizeMake(1280,168)); CCSprite *sprite1 = CCSprite::create("buttons/food.png"); CCSprite *sprite2 = CCSprite::create("buttons/game.png"); CCSprite *sprite3 = CCSprite::create("buttons/gift.png"); CCSprite *sprite4 = CCSprite::create("buttons/creat.png"); CCSprite *sprite5 = CCSprite::create("buttons/lib.png"); CCSprite *sprite6 = CCSprite::create("buttons/money.png"); CCSprite *sprite7 = CCSprite::create("buttons/setting.png"); CCSprite *sprite8 = CCSprite::create("buttons/talk.png"); int spriteSize = 64; // Menu CCMenuItemSprite *menuItem1 = CCMenuItemSprite::create(sprite1, sprite1, this, menu_selector(bottonLayer::menu1Callback)); menuItem1->setPosition(ccpAdd(ccp(16,20),ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem2 = CCMenuItemSprite::create(sprite2, sprite2, this, menu_selector(bottonLayer::menu2Callback)); menuItem2->setPosition(ccpAdd(ccp(176,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem3 = CCMenuItemSprite::create(sprite3, sprite3, this, menu_selector(bottonLayer::menu3Callback)); menuItem3->setPosition(ccpAdd(ccp(336,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem4 = CCMenuItemSprite::create(sprite4, sprite4, this, menu_selector(bottonLayer::menu4Callback)); menuItem4->setPosition(ccpAdd(ccp(496,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem5 = CCMenuItemSprite::create(sprite5, sprite5, this, menu_selector(bottonLayer::menu3Callback)); menuItem5->setPosition(ccpAdd(ccp(656,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem6 = CCMenuItemSprite::create(sprite6, sprite6, this, menu_selector(bottonLayer::menu3Callback)); menuItem6->setPosition(ccpAdd(ccp(816,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem7 = CCMenuItemSprite::create(sprite7, sprite7, this, menu_selector(bottonLayer::menu3Callback)); menuItem7->setPosition(ccpAdd(ccp(976,20), ccp(spriteSize,spriteSize))); CCMenuItemSprite *menuItem8 = CCMenuItemSprite::create(sprite8, sprite8, this, menu_selector(bottonLayer::menu3Callback)); menuItem8->setPosition(ccpAdd(ccp(1136,20), ccp(spriteSize,spriteSize))); CCMenu *menu = CCMenu::create(menuItem1, menuItem2,menuItem3,menuItem4,menuItem5,menuItem6,menuItem7,menuItem8, NULL); menu->setPosition(CCPointZero); layer->addChild(menu); scrollView = CCScrollView::create(); // 创建一个实例 scrollView->setContentSize(CCSizeMake(1080, 168)); //设置容器大小(内容尺寸) scrollView->setViewSize(CCSizeMake(640, 168)); //设置显示(可视)范围 scrollView->setContainer(layer); scrollView->setDirection( kCCScrollViewDirectionHorizontal ); scrollView->setTouchPriority(-130); //提升优先级到比ccMenu高 this->addChild(scrollView); return true; }
void CTextRich::reloadData() { CCAssert(!m_pRichTextAtlas->empty(), "reload data was empty"); removeAllChildrenWithCleanup(true); m_vRichTextAtlasDescriptions.clear(); m_uCharCursor = 0; CCSize tRealContentSize = CCSizeZero; int nRowBegin = m_pRichTextAtlas->size() - 1; unsigned int uRowEnd = 0; unsigned int uColumn = 0; unsigned int uColumnSize = 0; for(; nRowBegin >= (int)uRowEnd; --nRowBegin ) { CTextRichAtlasLine* vAtlasLine = m_pRichTextAtlas->at(nRowBegin); uColumnSize = vAtlasLine->size(); uColumn = 0; float fWidgetOfLine = 0.0f; float fMaxHeightOfLine = 0.0f; for(; uColumn < uColumnSize; ++uColumn ) { _ccTEXTRICHELEMENT& tElement = vAtlasLine->at(uColumn); tElement.pATLASITEM->setPosition(CCPoint(fWidgetOfLine, tRealContentSize.height)); addChild(tElement.pATLASITEM); #if 0 CCLayerColor* pColor = CCLayerColor::create(ccc4(255, 0,0, 129)); pColor->setPosition(CCPoint(fWidgetOfLine, tRealContentSize.height) + ccp(1, 1)); pColor->setContentSize(tElement.pATLASITEM->getContentSize() - CCSize(2,2)); addChild(pColor); #endif _ccTEXTRICHELEMENTRECT tDES; tDES.tRECT = tElement.pATLASITEM->boundingBox(); tDES.strDESCRIPTION = tElement.strDESCRIPTION; m_vRichTextAtlasDescriptions.push_back(tDES); fWidgetOfLine += tElement.pATLASITEM->getContentSize().width; fMaxHeightOfLine = MAX(fMaxHeightOfLine, tElement.pATLASITEM->getContentSize().height); } tRealContentSize.width = MAX(tRealContentSize.width, fWidgetOfLine); tRealContentSize.height += fMaxHeightOfLine + m_fVerticalSpacing; delete vAtlasLine; } m_pRichTextAtlas->clear(); tRealContentSize.height -= m_fVerticalSpacing; setContentSize(tRealContentSize); }
void LayerTest1::updateSize(CCPoint &touchLocation) { CCSize s = CCDirector::sharedDirector()->getWinSize(); CCSize newSize = CCSizeMake( fabs(touchLocation.x - s.width/2)*2, fabs(touchLocation.y - s.height/2)*2); CCLayerColor* l = (CCLayerColor*) getChildByTag(kTagLayer); l->setContentSize( newSize ); }
void GameWeekRewardLayer::initData() { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCLayerColor *backGround = CCLayerColor::create(ccc4(0, 0, 0, 150)); backGround->setContentSize(visibleSize); backGround->setZOrder(0); this -> addChild(backGround); // add your codes here... }
void SpRuleInfoBox::initView() { CCPoint center = SGLayout::getPoint(kMiddleCenter); fontbg->setPreferredSize(CCSizeMake(380, 380)); fontbg->setPosition(ccpAdd(fontbg->getPosition(), ccp(0, 25))); SGCCLabelTTF *tips = SGCCLabelTTF::create(str_SpecialBattleIntro, FONT_PANGWA, 32 ,ccRED); this->addChild(tips, 2); tips->setPosition(ccpAdd(biao->getPosition(), ccp(0, 0))); //可滚动规则视图 CCScrollView *m_scrollview = CCScrollView::create(CCSizeMake(350, 150)); m_scrollview->setViewSize(CCSizeMake(350, 360)); CCLayerColor *container = CCLayerColor::create(ccc4(0, 0, 0, 0)); container->setContentSize(CCSizeMake(350, 355)); m_scrollview->setContainer(container); m_scrollview->setPosition(ccpAdd(center, ccp(-fontbg->getContentSize().width / 2, -fontbg->getContentSize().height / 2 + 30)));//设置scrollview位置 m_scrollview->setDirection(kCCScrollViewDirectionVertical); this->addChild(m_scrollview); m_scrollview->setTag(103); //测试数据 int finalLen = 0; int rankSize = 10; SGStaticDataManager *mgr = SGStaticDataManager::shareStatic(); for (int i = 0; i < mgr->getSpHelpInfoKeysNum(); i++) { std::string info = SGStaticDataManager::shareStatic()->getSingleSpBattleRule(i); if (info != "") { SGRuleItem *item = SGRuleItem::create(i, info.c_str()); container->addChild(item); item->setPosition(ccpAdd(container->getPosition(), ccp(item->getContentSize().width / 2.8, (item->getContentSize().height + 10) * (rankSize - i) - item->getContentSize().height - 30))); finalLen += (item->getContentSize().height + 10); } } m_scrollview->setContentOffset(ccp(0, -finalLen + m_scrollview->getContentSize().height - 10)); m_scrollview->setContentSize(CCSizeMake(350, finalLen)); m_scrollview->getContainer()->setContentSize(CCSizeMake(350, finalLen + 20)); SGButton *okButton = SGButton::createFromLocal("box_btnbg.png", str_Ok, this, menu_selector(SpRuleInfoBox::pressOkButton), ccp(0, 0), FONT_PANGWA, ccWHITE, 24); this->addBtn(okButton); okButton->setPosition(ccpAdd(center, ccp(0, -324/2+5 -70))); }
void LayerTest1::updateSize(CCTouch*touch) { CCPoint touchLocation = touch->locationInView(touch->view()); touchLocation = CCDirector::sharedDirector()->convertToGL( touchLocation ); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCSize newSize = CCSizeMake( fabs(touchLocation.x - s.width/2)*2, fabs(touchLocation.y - s.height/2)*2); CCLayerColor* l = (CCLayerColor*) getChildByTag(kTagLayer); l->setContentSize( newSize ); }
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); }
//测试背包翻页 void HelloWorld::test3() { CCSize visableSize = CCSizeMake(480, 320); //屏幕大小 CCSize mysize = CCSizeMake(300,80); //容器大小 //创建容器、设置大小 CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) ); scrollLayer->setContentSize(mysize); //容器中添加三个图片 for(int i = 1; i <= 3; i++) { char file[20]; sprintf(file, "sp%d.png", i); CCSprite* sp = CCSprite::create(file); sp->setPosition( ccp(100*i - 50, 40) ); scrollLayer->addChild(sp); } //创建滚动视图CCScrollView //可视区域大小100*80 、 容器为scrollLayer CCScrollView* scrollView = CCScrollView::create(CCSizeMake(100, 80), scrollLayer); scrollView->setPosition( visableSize/2 - ccp(100/2.0, 0) ); this->addChild(scrollView, 0, 3); //属性设置 scrollView->setTouchEnabled(false); //关闭触碰事件,无法触摸滚动 //委托代理 scrollView->setDelegate(this); //创建背包翻页按钮 //前翻pBack、后翻pFront pBack = CCMenuItemImage::create("b1.png", "b2.png", "b3.png", this, menu_selector(HelloWorld::scrollImage) ); pFront = CCMenuItemImage::create("f1.png", "f2.png", "f3.png", this, menu_selector(HelloWorld::scrollImage) ); pBack->setPosition( ccp(visableSize.width/2 - 100, 60) ); pFront->setPosition( ccp(visableSize.width/2 + 100, 60) ); CCMenu* pMenu = CCMenu::create(pBack, pFront, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 0, 100); pBack->setEnabled(false); pageNumber = 0; //第0页 }
CCLayer* CommonScrollBar2::createScrollContent(const CCSize& size) { CCLayerColor* layer = CCLayerColor::create(ccc4(255, 0, 0, 255)); float y = 0; char buf[64]; for(int i = 0; i < 100; i++) { sprintf(buf, "test label %d", i); CCLabelTTF* label = CCLabelTTF::create(buf, "Helvetica", 24); label->setAnchorPoint(ccp(0, 0)); label->setPosition(ccp(0, y)); layer->addChild(label); y += label->getContentSize().height + 10 / CC_CONTENT_SCALE_FACTOR(); } layer->setContentSize(CCSizeMake(size.width, y)); return layer; }
bool LoadingScene::init() { CCLayer::init(); const CCSize size = CCDirector::sharedDirector()->getWinSize(); CCLayerColor *background = CCLayerColor::create(ccc4(200, 200, 200, 255)); background->setContentSize(size); addChild(background, -1); CCLabelTTF *labelLoading = CCLabelTTF::create("Loading...", "Arial", 20); labelLoading->setPosition(CCPoint(size.width * 0.5, size.height * 0.5)); addChild(labelLoading, 1); labelLoading->setColor(ccBLACK); scheduleUpdate(); return true; }
// on "init" you need to initialize your instance bool StageSelectScene::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } //사이즈 받아오기 (윈도우 사이즈) //CCSize size = CCDirector::sharedDirector()->getWinSize(); //스크롤 뷰 및 페이지 컨트롤 설정 //스크롤 되는 메뉴 불러오기 CCSize s = CCDirector::sharedDirector()->getWinSize(); CCLayerColor* layer = CCLayerColor::create(); layer->setPosition(0, 0); layer->setContentSize(CCSizeMake(s.width, 210)); for (int i = 0; i < 4; i++) { std::string str = "CloseNormal.png"; CCMenuItemImage* item = CCMenuItemImage::create(str.c_str(), str.c_str(), this, menu_selector(StageSelectScene::menuCallbackBuyCharater)); item->setTag(i); ScrollMenu* menu = ScrollMenu::create(item, NULL); menu->setPosition(ccp(i * 100, 100)); layer->addChild(menu); } // Set up scroll view cocos2d::extension::CCScrollView *scrollView = cocos2d::extension::CCScrollView::create(s, layer); scrollView->setAnchorPoint(ccp(0,0)); scrollView->setPosition(ccp(0, 465)); scrollView->setDirection(cocos2d::extension::kCCScrollViewDirectionHorizontal); this->addChild(scrollView); return true; }
void GameLayer::createPauseLayer() { Context *context = Context::sharedContext(); CCSize s = CCDirector::sharedDirector()->getWinSize(); /* 半透明层 */ CCLayerColor* pauseLayer = CCLayerColor::create(); pauseLayer->setContentSize(CCSizeMake(s.width, s.height)); pauseLayer->setColor(ccc3(0, 0, 0)); pauseLayer->setOpacity(150); CCMenu *menu = CCMenu::create(); //回到游戏 CCMenuItemImage *resumebg = CCMenuItemImage::create(("btn_big.png"), ("btn_big.png")); resumebg->setTarget(this, menu_selector(GameLayer::onResumeItem)); CCMenuItemFont *resumetxt = CCMenuItemFont::create(LOCAL_RESOURCES->valueByKey("i18n_resume")->getCString()); resumebg->setAnchorPoint(ccp(0.5, 0.5)); resumebg->setPosition(ccpp(0, 0)); resumetxt->setPosition( ccp(resumebg->getContentSize().width / 2, resumebg->getContentSize().height / 2)); resumetxt->setAnchorPoint(ccp(0.5, 0.5)); resumetxt->setColor(context->getFontColor()); resumebg->addChild(resumetxt); menu->addChild(resumebg); //回到菜单 CCMenuItemImage *backbg = CCMenuItemImage::create(("btn_big.png"), ("btn_big.png")); backbg->setTarget(this, menu_selector(GameLayer::onBackItem)); CCMenuItemFont *backtxt = CCMenuItemFont::create(LOCAL_RESOURCES->valueByKey("i18n_back")->getCString()); backbg->setAnchorPoint(ccp(0.5, 0.5)); backbg->setPosition(ccpp(0, -0.12)); backtxt->setPosition( ccp(backbg->getContentSize().width / 2, backbg->getContentSize().height / 2)); backtxt->setAnchorPoint(ccp(0.5, 0.5)); backtxt->setColor(context->getFontColor()); backbg->addChild(backtxt); menu->addChild(backbg); pauseLayer->addChild(menu); CCDirector::sharedDirector()->getRunningScene()->addChild(pauseLayer, 0, TAG_LAYER_PAUSE); }
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; }
bool BillboardScene::init() { bool bRef = false; do{ CC_BREAK_IF(!CCLayer::init()); this->setContentSize(CCSizeZero); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCLayerColor* layerColor = CCLayerColor::create(); layerColor->setColor(ccc3(0, 0, 0)); layerColor->setOpacity(150); layerColor->setContentSize(CCSizeMake(winSize.width, winSize.height)); this->addChild(layerColor,0); setTouchEnabled(true); bRef = true; }while(0); return bRef; }
// 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; }
void AdventureLevelClass::loadResAndInit() { CCSize size = LcdAdapClass::sharedLCDADAP()->getWinSize(); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Themes/scene/stages_bg-hd.plist"); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Themes/scene/themescene1-hd.plist"); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "Themes/scene/stages_theme%d-hd.plist",GameStageConClass::sharedStageCon()->getGameStageIndex()); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(comBuffer); bgSprite = CCSprite::createWithSpriteFrameName("ss_bg.png"); CCSize bgSize = bgSprite->getContentSize(); // bgSprite->setPosition(ccp(size.width / 2, size.height / 2)); LcdAdapClass::sharedLCDADAP()->setAdaptorNodePos(bgSprite, ccp(size.width / 2, size.height / 2)); this->addChild(bgSprite,1); CCSprite* bgCN = CCSprite::createWithSpriteFrameName("ss_bg_CN.png"); bgCN->setPosition(ccp(bgSize.width/2, bgSize.height/2)); bgSprite->addChild(bgCN,1); if (GameStageConClass::sharedStageCon()->getGameStageIndex() != GAME_STAGE_TYPE_EXTRE) { memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "ss_towers_%02d.png",(curPageIndex + 1)); levelTowerTypeSP = CCSprite::createWithSpriteFrameName(comBuffer);//default levelTowerTypeSP->setPosition(ccp(bgSize.width/2, bgSize.height * 18/100)); bgSprite->addChild(levelTowerTypeSP,3); levelNumSP = CCSprite::createWithSpriteFrameName("ss_waves_10.png");//default levelNumSP->setPosition(ccp(bgSize.width/2, bgSize.height * 84/100)); bgSprite->addChild(levelNumSP,3); CCSprite* leftCloud = CCSprite::createWithSpriteFrameName("ss_cloud.png"); CCSize cloudSize = leftCloud->getContentSize(); leftCloud->setPosition(ccp(bgSize.width / 2, bgSize.height / 2)); bgSprite->addChild(leftCloud,5); } ccColor4B color; color.a = 125; color.b = 0; color.g = 0; color.r = 0; scrollLayer = CCLayer::create();//default pos is (0,0) scrollLayer->setContentSize(CCSize(size.width * levelNum / 2, size.height)); bgSprite->addChild(scrollLayer,15); for (int i = 0; i < levelNum; i++) { gameLevelInfoStruct levelInfo = HUDClass::sharedHUD()->getGameCurLevelInfo((GAME_STAGE_TYPE)(GameStageConClass::sharedStageCon()->getGameStageIndex()), (i + 1)); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "ss_map%02d.png",(i + 1)); CCSprite* sprite = CCSprite::createWithSpriteFrameName(comBuffer); CCSize spriteSize = sprite->getContentSize(); //sprite->setPosition(ccp(size.width / 2, size.height / 2)); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "%s","gainhonor_1.png");//这里要加个判断,判断用户的荣誉 CCSprite* honorSP = NULL; if (levelInfo.UserGained > 0 && levelInfo.UserGained < 4) { sprintf(comBuffer, "gainhonor_%d.png",levelInfo.UserGained); honorSP = CCSprite::createWithSpriteFrameName(comBuffer); honorSP->setVisible(true);//要不要显示 } else { honorSP = CCSprite::createWithSpriteFrameName(comBuffer); honorSP->setVisible(false);//要不要显示 } honorSP->setPosition(ccp(spriteSize.width * 84/100, spriteSize.height * 22/100)); sprite->addChild(honorSP,1); CCSprite* allClearSP = CCSprite::createWithSpriteFrameName("gainhonor_4.png"); if (!levelInfo.isClearAllObject) { allClearSP->setVisible(false); } allClearSP->setPosition(ccp(spriteSize.width * 60/100, spriteSize.height * 22/100)); sprite->addChild(allClearSP,1); levelNormalArray->addObject(sprite);//normal CCLayerColor* layer = CCLayerColor::create(color); layer->setContentSize(spriteSize); ccBlendFunc blend = {GL_DST_ALPHA, GL_SRC_ALPHA}; layer->setBlendFunc(blend); CCRenderTexture* rt = CCRenderTexture::create(spriteSize.width, spriteSize.height); sprite->setPosition(ccp(spriteSize.width/2, spriteSize.height/2)); rt->begin(); sprite->visit(); layer->visit(); rt->end(); CCSprite* levelShade = CCSprite::createWithTexture(rt->getSprite()->getTexture()); levelShade->setFlipY(true); levelShade->setPosition(ccp((bgSize.width/2) * (i + 1), bgSize.height / 2)); levelShadeArray->addObject(levelShade); sprite->setPosition(ccp((bgSize.width/2) * (i + 1), bgSize.height / 2)); sprite->setVisible(false); scrollLayer->addChild(levelShade,1); scrollLayer->addChild(sprite,1); if (i == curPageIndex) {//加个判断,哪一个关卡点亮 curShadeLevelSprite = levelShade; curNormalLevelSprite = sprite; curShadeLevelSprite->setVisible(false); curNormalLevelSprite->setVisible(true); } } gameStartMenu = CCMenuItemImage::create("ss_play_normal_CN.png", "ss_play_pressed_CN.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); if (GameStageConClass::sharedStageCon()->checkIsCurLevelLocked((curPageIndex + 1))) { gameStartMenu->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("ss_locked_CN.png")); gameStartMenu->setEnabled(false); } gameStartMenu->setTag(MENU_ID_START_TAG); gameStartMenu->setPosition(ccp(bgSize.width/2, bgSize.height * 8/ 100)); CCMenuItemImage* homeBtn = CCMenuItemImage::create("ss_back_normal.png", "ss_back_pressed.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); homeBtn->setTag(MENU_ID_HOME_TAG); homeBtn->setPosition(ccp(bgSize.width/25, bgSize.height * 95.5 / 100)); CCMenuItemImage* helpBtn = CCMenuItemImage::create("ss_help_normal.png", "ss_help_pressed.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); helpBtn->setTag(MENU_ID_HELP_TAG); helpBtn->setPosition(ccp(bgSize.width * 24/25, bgSize.height * 95.5 / 100)); CCMenu* menu = CCMenu::create(homeBtn,helpBtn,gameStartMenu,NULL); menu->setPosition(CCPointZero); bgSprite->addChild(menu,2); loadWaitSprite->removeFromParentAndCleanup(true); // this->gotoPageIndexNow(curPageIndex); scrollLayer->setPosition(ccp((bgSize.width/2) * (-curPageIndex), 0)); }
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::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); }
// on "init" you need to initialize your instance bool HTMLTest::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCLayerColor* l = CCLayerColor::create(ccc4(0xb0, 0xb0, 0xb0, 0xff)); l->setContentSize(this->getContentSize()); this->addChild(l); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "res/close.png", "res/close.png", this, menu_selector(HTMLTest::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); using namespace dfont; // font1 FontCatalog* font_catalog = NULL; font_catalog = FontFactory::instance()->create_font( "font1", "simhei.ttf", 0xffffffff, 32, e_plain, 0.0f, 0xffffffff, 0); // font2 font_catalog = FontFactory::instance()->create_font( "font2", "simkai.ttf", 0xffffffff, 24, e_shadow, 1.0f, 0xff000000, 0); font_catalog->add_hackfont("htmltest/Marker Felt.ttf", latin_charset(), -1); // font3 font_catalog = FontFactory::instance()->create_font( "font3", "simli.ttf", 0xffffffff, 20, e_border, 1.0f, 0xff000000, 0); font_catalog->add_hackfont("simhei.ttf", latin_charset(), 5); ////////////////////////////////////////////////////////////////////////// CCSize vsize = CCDirector::sharedDirector()->getVisibleSize(); CCString* str_utf8 = CCString::createWithContentsOfFile("html.htm"); CCHTMLLabel* htmllabel = CCHTMLLabel::createWithString(str_utf8->getCString(), CCSize(vsize.width*0.8f, vsize.height), "default"); htmllabel->setAnchorPoint(ccp(0.5f,0.5f)); htmllabel->setPosition(ccp(vsize.width*0.5f, vsize.height*0.5f)); addChild(htmllabel); s_htmlLabel = htmllabel; htmllabel->registerListener(this, &HTMLTest::onHTMLClicked, &HTMLTest::onHTMLMoved ); FontFactory::instance()->dump_textures(); return true; }
// 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 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; }