bool GameOverLayer::init() { do { CC_BREAK_IF(!CCLayer::init()); CCLayerColor* backgroundLayer = CCLayerColor::create( ccc4(255, 255, 255, 128)); addChild(backgroundLayer); CCSize screenSize = CocosUtils::getScreenSize(); CCMenuItemFont* nextLevel = CCMenuItemFont::create("Next", this, menu_selector(GameOverLayer::menuCallback)); nextLevel->setTag(MENU_ITEM_NEXT_LEVEL); nextLevel->setFontName("Consola"); nextLevel->setFontSize(36); CCMenuItemFont* replay = CCMenuItemFont::create("Replay", this, menu_selector(GameOverLayer::menuCallback)); replay->setTag(MENU_ITEM_REPLAY); replay->setFontName("Consola"); replay->setFontSize(36); CCMenu* menu = CCMenu::create(nextLevel, replay, NULL); menu->alignItemsVertically(); menu->setPosition(screenSize.width/2, screenSize.height/2); addChild(menu); return true; } while (false); return false; }
void MainScene::CreateMenu() { if(_menu == NULL) { CCSize scrSize = CCDirector::sharedDirector()->getWinSize(); _menu = CCMenu::create(); _menu->setPosition(ccp(0,0)); addChild(_menu); CCMenuItemFont* pItem; CCPoint position; // Create the next/back menu items. for(int page = 0; page < MENU_PAGES; page++) { // Create the Back/Forward buttons for the page. // Back arrow if there is a previous page. if(page > 0) { pItem = CCMenuItemFont::create("Back", this, menu_selector(MainScene::MenuCallback)); pItem->setTag(ARROW_LEFT); position = ccp(page*scrSize.width + scrSize.width*0.1,scrSize.height*0.1); pItem->setPosition(position); pItem->setFontSize(35); pItem->setFontName("Arial"); _menu->addChild(pItem); } if(page < (MENU_PAGES-1)) { pItem = CCMenuItemFont::create("Next", this, menu_selector(MainScene::MenuCallback)); pItem->setTag(ARROW_RIGHT); position = ccp(page*scrSize.width + scrSize.width*0.9,scrSize.height*0.1); pItem->setPosition(position); pItem->setFontSize(35); pItem->setFontName("Arial"); _menu->addChild(pItem); } } // Create the actual items for(int idx = 0; idx < MENU_ITEMS_TOTAL; idx++) { char buffer[256]; sprintf(buffer,"Item #%d",idx); pItem = CCMenuItemFont::create(buffer, this, menu_selector(MainScene::MenuCallback)); pItem->setFontSize(35); pItem->setFontName("Arial"); pItem->setTag(idx); position = CalculatePosition(idx); pItem->setPosition(position); _menu->addChild(pItem); } } }
bool Options::init() { if (!CCLayer::init()) { return false; } CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCSprite *sp = CCSprite::create(s_loading); sp->setAnchorPoint(CCPointZero); addChild(sp, 0, 1); CCTexture2D *imageCache = CCTextureCache::sharedTextureCache()->addImage(s_menuTitle); CCSprite *title = CCSprite::createWithTexture(imageCache, CCRectMake(0, 0, 134, 34)); title->setPosition(ccp(winSize.width/2, winSize.height - 60)); addChild(title); CCMenuItemFont *menuTitle = CCMenuItemFont::create("Sound"); menuTitle->setFontName("Arial"); menuTitle->setFontSize(18); menuTitle->setEnabled(false); CCMenuItemFont::setFontName("Arial"); CCMenuItemFont::setFontSize(26); CCMenuItemToggle *toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(Options::setOptions), CCMenuItemFont::create("On"),CCMenuItemFont::create("Off"), NULL); int selectId = Config::sharedConfig()->getAudioState()? 0 : 1; toggle->setSelectedIndex(selectId); CCLabelBMFont *backLb = CCLabelBMFont::create("Go Back", s_font); CCMenuItemLabel *goBack = CCMenuItemLabel::create(backLb, this, menu_selector(Options::goBack)); goBack->setScale(0.6); CCActionInterval *fadeIn = CCFadeTo::create(1, 80); CCActionInterval *fadeOut = CCFadeTo::create(1, 255); CCEaseSineInOut *ease1 = CCEaseSineInOut::create(fadeIn); CCEaseSineInOut *ease2 = CCEaseSineInOut::create(fadeOut); CCFiniteTimeAction *seq = CCSequence::create(ease1, ease2, NULL); // 这里也是,参数必须强转,否则NDK编译不过 goBack->runAction(CCRepeatForever::create((CCActionInterval*)seq)); CCMenu *menu = CCMenu::create( menuTitle, toggle, goBack, NULL); menu->alignItemsInColumns(2,1); addChild(menu); CCPoint pos = goBack->getPosition(); pos.y -= 50; goBack->setPosition(pos); return true; }