/** * Impelmentation of RenderTextureSave */ RenderTextureSave::RenderTextureSave() { auto s = Director::getInstance()->getWinSize(); // create a render texture, this is what we are going to draw into _target = RenderTexture::create(s.width, s.height, Texture2D::PixelFormat::RGBA8888); _target->retain(); _target->setPosition(Point(s.width / 2, s.height / 2)); // note that the render texture is a Node, and contains a sprite of its texture for convience, // so we can just parent it to the scene like any other Node this->addChild(_target, -1); auto listener = EventListenerTouchAllAtOnce::create(); listener->onTouchesMoved = CC_CALLBACK_2(RenderTextureSave::onTouchesMoved, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); // Save Image menu MenuItemFont::setFontSize(16); auto item1 = MenuItemFont::create("Save Image", CC_CALLBACK_1(RenderTextureSave::saveImage, this)); auto item2 = MenuItemFont::create("Clear", CC_CALLBACK_1(RenderTextureSave::clearImage, this)); auto menu = Menu::create(item1, item2, NULL); this->addChild(menu); menu->alignItemsVertically(); menu->setPosition(Point(VisibleRect::rightTop().x - 80, VisibleRect::rightTop().y - 30)); }
bool MainScene::init() { if (!LayerColor::initWithColor(Color4B(255,255,255,255))) { return false; } auto menuItem1 = MenuItemImage::create( "Images/btn-play-normal.png", "Images/btn-play-selected.png", CC_CALLBACK_1(MainScene::doClick1, this)); auto menuItem2 = MenuItemImage::create( "Images/btn-highscores-normal.png", "Images/btn-highscores-selected.png", this, menu_selector(MainScene::doClick2)); auto menuItem3 = MenuItemImage::create( "Images/btn-about-normal.png", "Images/btn-about-selected.png", this, menu_selector(MainScene::doClick3)); auto menu = Menu::create(menuItem1, menuItem2, menuItem3, NULL); menu->alignItemsVertically(); this->addChild(menu); return true; }
//------------------------------------------------------------------ // // NodeToWorld // //------------------------------------------------------------------ NodeToWorld::NodeToWorld() { // // This code tests that nodeToParent works OK: // - It tests different anchor Points // - It tests different children anchor points auto back = Sprite::create(s_back3); addChild( back, -10); back->setAnchorPoint( Vec2(0,0) ); auto backSize = back->getContentSize(); auto item = MenuItemImage::create(s_PlayNormal, s_PlaySelect); auto menu = Menu::create(item, NULL); menu->alignItemsVertically(); menu->setPosition( Vec2(backSize.width/2, backSize.height/2)); back->addChild(menu); auto rot = RotateBy::create(5, 360); auto fe = RepeatForever::create( rot); item->runAction( fe ); auto move = MoveBy::create(3, Vec2(200,0)); auto move_back = move->reverse(); auto seq = Sequence::create( move, move_back, NULL); auto fe2 = RepeatForever::create(seq); back->runAction(fe2); }
RemoveMenuItemWhenMove::RemoveMenuItemWhenMove() { auto s = Director::getInstance()->getWinSize(); auto label = Label::createWithTTF("click item and move, should not crash", "fonts/arial.ttf", 20); label->setPosition(Vec2(s.width/2, s.height - 30)); addChild(label); item = MenuItemFont::create("item 1"); item->retain(); auto back = MenuItemFont::create("go back", CC_CALLBACK_1(RemoveMenuItemWhenMove::goBack, this)); auto menu = Menu::create(item, back, nullptr); addChild(menu); menu->alignItemsVertically(); menu->setPosition(Vec2(s.width/2, s.height/2)); // Register Touch Event _touchListener = EventListenerTouchOneByOne::create(); _touchListener->setSwallowTouches(false); _touchListener->onTouchBegan = CC_CALLBACK_2(RemoveMenuItemWhenMove::onTouchBegan, this); _touchListener->onTouchMoved = CC_CALLBACK_2(RemoveMenuItemWhenMove::onTouchMoved, this); _eventDispatcher->addEventListenerWithFixedPriority(_touchListener, -129); }
// on "init" you need to initialize your instance bool HelloWorld::init() { if ( !LayerColor::initWithColor(Color4B(255,255,255,255)) ) { return false; } ///////////////////////////// auto pMenuItem1 = MenuItemImage::create( "Images/btn-play-normal.png", "Images/btn-play-selected.png", CC_CALLBACK_1(HelloWorld::doClick1, this)); auto pMenuItem2 = MenuItemImage::create( "Images/btn-highscores-normal.png", "Images/btn-highscores-selected.png", CC_CALLBACK_1(HelloWorld::doClick2, this)); auto pMenuIteme3 = MenuItemImage::create( "Images/btn-about-normal.png", "Images/btn-about-selected.png", CC_CALLBACK_1(HelloWorld::doClick3, this)); auto pMenu = Menu::create(pMenuItem1, pMenuItem2, pMenuIteme3, nullptr); pMenu->alignItemsVertically(); this->addChild(pMenu); return true; }
void Bug422Layer::reset() { static int localtag = 0; localtag++; // TO TRIGGER THE BUG: // remove the itself from parent from an action // The menu will be removed, but the instance will be alive // and then a new node will be allocated occupying the memory. // => CRASH BOOM BANG auto node = getChildByTag(localtag-1); log("Menu: %p", node); removeChild(node, true); // [self removeChildByTag:localtag-1 cleanup:NO]; auto item1 = MenuItemFont::create("One", CC_CALLBACK_1(Bug422Layer::menuCallback, this) ); log("MenuItemFont: %p", item1); MenuItem *item2 = MenuItemFont::create("Two", CC_CALLBACK_1(Bug422Layer::menuCallback, this) ); auto menu = Menu::create(item1, item2, NULL); menu->alignItemsVertically(); float x = CCRANDOM_0_1() * 50; float y = CCRANDOM_0_1() * 50; menu->setPosition(menu->getPosition() + Point(x,y)); addChild(menu, 0, localtag); //[self check:self]; }
bool CCombatMenu::init() { EventListenerTouchOneByOne* _touchListener = EventListenerTouchOneByOne::create(); _touchListener->setSwallowTouches(true); _touchListener->onTouchBegan = CC_CALLBACK_2(CCombatMenu::onTouchBegan, this); _touchListener->onTouchMoved = CC_CALLBACK_2(CCombatMenu::onTouchMoved, this); _touchListener->onTouchEnded = CC_CALLBACK_2(CCombatMenu::onTouchEnded, this); _touchListener->onTouchCancelled = CC_CALLBACK_2(CCombatMenu::onTouchCancelled, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this); const std::string& strMove = CGame::GetInstance()->GetStringManager()->GetString(combatMenu_move); m_pMenuItemMove = MenuItemFont::create(strMove, CC_CALLBACK_1(CCombatMenu::OnMenuMove, this)); const std::string& strAttack = CGame::GetInstance()->GetStringManager()->GetString(combatMenu_attack); m_pMenuItemAttack = MenuItemFont::create(strAttack, CC_CALLBACK_1(CCombatMenu::OnMenuAttack, this)); const std::string& strEnd = CGame::GetInstance()->GetStringManager()->GetString(combatMenu_end); m_pMenuItemEnd = MenuItemFont::create(strEnd, CC_CALLBACK_1(CCombatMenu::OnMenuMove, this)); auto pMenu = Menu::create( m_pMenuItemMove, m_pMenuItemAttack, m_pMenuItemEnd,nullptr); pMenu->alignItemsVertically(); // elastic effect auto s = Director::getInstance()->getWinSize(); addChild(pMenu); pMenu->setPosition(Vec2(30.0f, s.height/2)); pMenu->setScale(0); pMenu->runAction(ScaleTo::create(1,1)); return true; }
bool PopLayer::initWithColor(const Color4B& color) { if (!LayerColor::initWithColor(color)) { return false; } Size winSize = Director::getInstance()->getWinSize(); Point centerPos = Point(winSize.width / 2, winSize.height / 2); MenuItemFont::setFontName("Consolas"); MenuItemFont::setFontSize(80); auto menuItemContinue = MenuItemFont::create("CONTINUE", CC_CALLBACK_1(PopLayer::onContinue, this)); auto menuItemRestart = MenuItemFont::create("RESTART", CC_CALLBACK_1(PopLayer::onRestart, this)); auto menuItemExit = MenuItemFont::create("EXIT", CC_CALLBACK_1(PopLayer::onExit, this)); auto menu = Menu::create(menuItemContinue, menuItemRestart, menuItemExit, NULL); //按垂直方向自动排列 menu->alignItemsVertically(); addChild(menu); menu->setPosition(centerPos); //设置触摸事件监听 auto touchListener = EventListenerTouchOneByOne::create(); touchListener->onTouchBegan = CC_CALLBACK_2(PopLayer::onTouchBegan, this); touchListener->onTouchMoved = CC_CALLBACK_2(PopLayer::onTouchMoved, this); touchListener->onTouchEnded = CC_CALLBACK_2(PopLayer::onTouchEnded, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this); touchListener->setSwallowTouches(true); return true; }
bool SceneTestLayer3::init() { if (LayerColor::initWithColor(Color4B(0,0,255,255))) { auto s = Director::getInstance()->getWinSize(); auto item0 = MenuItemFont::create("Touch to pushScene (self)", CC_CALLBACK_1(SceneTestLayer3::item0Clicked, this)); auto item1 = MenuItemFont::create("Touch to poscene", CC_CALLBACK_1(SceneTestLayer3::item1Clicked, this)); auto item2 = MenuItemFont::create("Touch to popToRootScene", CC_CALLBACK_1(SceneTestLayer3::item2Clicked, this)); auto item3 = MenuItemFont::create("Touch to popToSceneStackLevel(2)", CC_CALLBACK_1(SceneTestLayer3::item3Clicked, this)); auto menu = Menu::create(item0, item1, item2, item3, NULL); this->addChild(menu); menu->alignItemsVertically(); this->schedule(schedule_selector(SceneTestLayer3::testDealloc)); auto sprite = Sprite::create(s_pathGrossini); addChild(sprite); sprite->setPosition( Vec2(s.width/2, 40) ); auto rotate = RotateBy::create(2, 360); auto repeat = RepeatForever::create(rotate); sprite->runAction(repeat); return true; } return false; }
// on "init" you need to initialize your instance bool PlayScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Sprite * bg = Sprite::create("girls/prettygirl5.jpg"); bg->setScale(1.5, 1.5); bg->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2)); /*bg->setAnchorPoint(Vec2::ZERO);*/ this->addChild(bg, 0); auto placeLabel = Label::createWithTTF("Place","fonts/LittleLordFontleroy.ttf",50 ); auto placeMenu = MenuItemLabel::create(placeLabel, CC_CALLBACK_1(PlayScene::OnClikMenu, this)); placeMenu->setTag(PLACE_TAG); auto flipXLabel = Label::createWithTTF("FlipX", "fonts/LittleLordFontleroy.ttf",50); auto flipXMenu = MenuItemLabel::create(flipXLabel, CC_CALLBACK_1(PlayScene::OnClikMenu, this)); flipXMenu->setTag(FLIPX_TAG); auto flipYLabel = Label::createWithTTF("FlipY","fonts/LittleLordFontleroy.ttf",50); auto flipYMenu = MenuItemLabel::create(flipYLabel, CC_CALLBACK_1(PlayScene::OnClikMenu, this)); flipYMenu->setTag(FLIPY_TAG); auto hideLabel = Label::createWithTTF("FlipX","fonts/LittleLordFontleroy.ttf",50); auto hideMenu = MenuItemLabel::create(hideLabel, CC_CALLBACK_1(PlayScene::OnClikMenu, this)); hideMenu->setTag(HIDE_SHOW_TAG); auto toggleLabel = Label::createWithTTF("FlipX","fonts/LittleLordFontleroy.ttf",50); auto toggleMenu = MenuItemLabel::create(toggleLabel, CC_CALLBACK_1(PlayScene::OnClikMenu, this)); toggleMenu->setTag(TOGGLE_TAG); auto backLabel = Label::createWithTTF("Back", "fonts/LittleLordFontleroy.ttf", 50); auto backMenu = MenuItemLabel::create(backLabel, CC_CALLBACK_1(PlayScene::OnBack, this)); backMenu->setTag(BACK_TAG); auto nextLabel = Label::createWithTTF("NEXT SCENE", "fonts/LittleLordFontleroy.ttf", 50); auto nextMenu = MenuItemLabel::create(nextLabel, CC_CALLBACK_1(PlayScene::OnNext, this)); auto mn = Menu::create(placeMenu, flipXMenu, flipYMenu, hideMenu, toggleMenu, backMenu,nextMenu, NULL); mn->alignItemsVertically(); this->addChild(mn); return true; }
// on "init" you need to initialize your instance bool BandSelectScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto s = Director::getInstance()->getWinSize(); // add a "close" icon to exit the progress. it's an autorelease object auto closeItem = MenuItemFont::create("Back", CC_CALLBACK_1(BandSelectScene::menuCallbackBack, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width / 2, origin.y + closeItem->getContentSize().height / 2)); // create menu, it's an autorelease object auto menuBack = Menu::create(closeItem, NULL); menuBack->setPosition(Vec2::ZERO); this->addChild(menuBack, 100); //add a menu MenuItemFont::setFontName("fonts/Marker Felt.ttf"); auto item1 = MenuItemFont::create("Level1", CC_CALLBACK_1(BandSelectScene::menuCallbackLevel1, this)); auto item2 = MenuItemFont::create("Level2", CC_CALLBACK_1(BandSelectScene::menuCallbackLevel2, this)); auto item3 = MenuItemFont::create("Level3", CC_CALLBACK_1(BandSelectScene::menuCallbackLevel3, this)); auto menu = Menu::create(item1, item2, item3, nullptr); menu->alignItemsVertically(); addChild(menu); menu->setPosition(Vec2(s.width / 2, s.height / 2)); // add a label shows "Hello World" // create and initialize a label // auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24); // // // position the label on the center of the screen // label->setPosition(Vec2(origin.x + visibleSize.width / 2, // origin.y + visibleSize.height - label->getContentSize().height)); // // // add the label as a child to this layer // this->addChild(label, 1); // // // add "HelloWorld" splash screen" // auto sprite = Sprite::create("HelloWorld.png"); // // // position the sprite on the center of the screen // sprite->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); // // // add the sprite as a child to this layer // this->addChild(sprite, 0); return true; }
Menu* WelcomeMenu::_createMenu() { auto startGameItem = MenuItemFont::create("开始游戏", CC_CALLBACK_1(WelcomeMenu::_startGameMenuCallback, this)); startGameItem->setFontSizeObj(50); startGameItem->setFontName("fonts/su_xin_shi_liu_jian_kai.ttf"); auto menu = Menu::create(startGameItem, NULL); menu->alignItemsVertically(); return menu; }
void HelloWorld::addMenu() { Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto menuItem1 = MenuItemLabel::create(Label::createWithTTF(" Play ", "fonts/airstrikecond.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene, this)); auto menuItem2 = MenuItemLabel::create(Label::createWithTTF(" Setting ", "fonts/airstrikehalf.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene2, this)); auto menuItem3 = MenuItemLabel::create(Label::createWithTTF(" Records ", "fonts/airstrike3d.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene3, this)); auto menuItem4 = MenuItemLabel::create(Label::createWithTTF(" Agregar Persona ", "fonts/airstrike3d.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene4, this)); auto menuItem5 = MenuItemLabel::create(Label::createWithTTF(" ScrollView ", "fonts/airstrike3d.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene5, this)); auto menuItem6 = MenuItemLabel::create(Label::createWithTTF(" PageView ", "fonts/airstrikecond.ttf", 34), CC_CALLBACK_1(HelloWorld::btnNewScene6, this)); auto menuGral = Menu::create(menuItem1,menuItem2,menuItem3,menuItem4, menuItem5,menuItem6,NULL); menuGral->alignItemsVertically(); auto sprite = Sprite::create("greenChild.jpg"); sprite->setPosition(Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height + sprite->getContentSize().height)); menuGral->setPosition(Point(sprite->getContentSize().width / 2, sprite->getContentSize().height / 2)); sprite->addChild(menuGral); sprite->setName("menu"); sprite->setOpacity(30); //MoveBy *accion2 ; if(i == 0) { this->addChild(sprite,2); MoveBy *accion2 = MoveBy::create(1, Point(0, - ((visibleSize.height / 2) + sprite->getContentSize().height))); sprite->runAction(accion2); i++; } else if(i>0) { this->removeChildByName("menu"); i = 0; } }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !LayerColor::initWithColor(Color4B(255,255,255,255)) ) { return false; } /////////////////////////////////// // umscheduleSelecters // pauseSchedulerAndActions // resumeSchedulerAndActions // stopAllActions // 메뉴 아이템 생성 및 초기화 auto item1 = MenuItemFont::create( "start", CC_CALLBACK_1(HelloWorld::doStart, this)); item1->setColor(Color3B::BLACK); auto item2 = MenuItemFont::create( "pause", CC_CALLBACK_1(HelloWorld::doPause, this)); item2->setColor(Color3B::BLACK); auto item3 = MenuItemFont::create( "resume", CC_CALLBACK_1(HelloWorld::doResume, this)); item3->setColor(Color3B::BLACK); auto item4 = MenuItemFont::create( "change", CC_CALLBACK_1(HelloWorld::doChange, this)); item4->setColor(Color3B::BLACK); auto item5 = MenuItemFont::create( "stop", CC_CALLBACK_1(HelloWorld::doStop, this)); item5->setColor(Color3B::BLACK); // 메뉴 생성 auto menu = Menu::create(item1, item2, item3, item4, item5, nullptr); // 세로로 정렬 menu->alignItemsVertically(); // 레이어에 메뉴 객체 추가 this->addChild(menu); isChange = false; return true; }
void Launch::switchScene() { auto menuItem = MenuItemFont::create("start", [this](Ref* pSender){ Director::getInstance()->replaceScene(GameScene::create()); }); menuItem->setColor(Color3B(219, 43, 59)); auto menu = Menu::create(menuItem, NULL); auto label = this->getChildByName("star"); label->setVisible(false); menu->alignItemsVertically(); this->addChild(menu, 1); }
// BugsTest BugsTest::BugsTest() { auto issue1410 = MenuItemFont::create("Issue 1410", CC_CALLBACK_1(BugsTest::issue1410MenuCallback, this)); auto issue1410_2 = MenuItemFont::create("Issue 1410 #2", CC_CALLBACK_1(BugsTest::issue1410v2MenuCallback, this)); auto back = MenuItemFont::create("Back", CC_CALLBACK_1(BugsTest::backMenuCallback, this)); auto menu = Menu::create(issue1410, issue1410_2, back, nullptr); addChild(menu); menu->alignItemsVertically(); auto s = Director::getInstance()->getWinSize(); menu->setPosition(Vec2(s.width/2, s.height/2)); }
bool PracticeSelectScene::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto s = Director::getInstance()->getWinSize(); // add a "close" icon to exit the progress. it's an autorelease object auto closeItem = MenuItemFont::create("Back", CC_CALLBACK_1(PracticeSelectScene::menuCallbackBack, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width / 2, origin.y + closeItem->getContentSize().height / 2)); // create menu, it's an autorelease object auto menuBack = Menu::create(closeItem, NULL); menuBack->setPosition(Vec2::ZERO); this->addChild(menuBack, 100); //add a menu MenuItemFont::setFontName("fonts/Marker Felt.ttf"); auto item1 = MenuItemFont::create("Level1", CC_CALLBACK_1(PracticeSelectScene::menuCallbackLevel1, this)); auto item2 = MenuItemFont::create("Level2", CC_CALLBACK_1(PracticeSelectScene::menuCallbackLevel2, this)); auto item3 = MenuItemFont::create("Level3", CC_CALLBACK_1(PracticeSelectScene::menuCallbackLevel3, this)); item1->setScale(2); item2->setScale(2); item3->setScale(2); auto menu = Menu::create(item1, item2, item3, nullptr); menu->alignItemsVertically(); addChild(menu); menu->setPosition(Vec2(s.width / 2, s.height / 2)); //load backgroud // auto background = Sprite::create("band.png"); // background->setPosition(visibleSize.width / 2, visibleSize.height / 2); // background->setScale(0.5); // // addChild(background, 10); return true; }
bool GameScene::init() { if (!Layer::init()) { return false; } mBestScoreCache = UserDefault::getInstance()->getIntegerForKey(KEY_BEST_SCORE, 0); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Size visibleSize = Director::getInstance()->getVisibleSize(); auto background = LayerColor::create(Color4B(180, 170, 160, 255)); this->addChild(background); MenuItemFont::setFontName("Consolas"); MenuItemFont::setFontSize(80); auto menuItemRestart = MenuItemFont::create("RESTART", CC_CALLBACK_1(GameScene::onReStart, this)); auto menuItemExit = MenuItemFont::create("EXIT", CC_CALLBACK_1(GameScene::onExit, this)); auto menu = Menu::create(menuItemExit, menuItemRestart, nullptr); menu->setColor(Color3B(0, 255, 255)); menu->alignItemsVertically(); const float xPos = origin.x + visibleSize.width - menuItemRestart->getContentSize().width / 2.0f - 20.0f; menu->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f + 150.0f)); this->addChild(menu); auto scoreTitle = Label::createWithSystemFont("SCORE", "Consolas", 80); scoreTitle->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f - 50.0f)); this->addChild(scoreTitle); mScore = 0; mScoreLabel = Label::createWithSystemFont("0", "Consolas", 80); mScoreLabel->setPosition( Point(xPos, origin.y + visibleSize.height / 2.0f - 150.0f)); this->addChild(mScoreLabel); // enable touch event this->setTouchMode(Touch::DispatchMode::ONE_BY_ONE); this->setTouchEnabled(true); createEmptyCards(origin, visibleSize); generateCard(false); generateCard(false); return true; }
// on "init" you need to initialize your instance bool AchievementScene::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->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 // create menu, it's an autorelease object ///////////////////////////// // 3. add your codes below... auto label = Label::createWithTTF("AchievementScene", "fonts/Marker Felt.ttf", 24); label->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height - label->getContentSize().height)); this->addChild(label, 1); // 메뉴 라벨 만들기 auto label_01 = Label::createWithSystemFont("ToMenu", "consolas", 30.0); label_01->setTextColor(Color4B::WHITE); auto label_02 = Label::createWithSystemFont("ToEndingScene", "consolas", 30.0); label_02->setTextColor(Color4B::WHITE); auto label_03 = Label::createWithSystemFont("ToAchieveDetailScene", "consolas", 30.0); label_03->setTextColor(Color4B::WHITE); // 메뉴 아이템 만들기 auto item_01 = MenuItemLabel::create(label_01, CC_CALLBACK_1(AchievementScene::returnToMenuScene, this)); auto item_02 = MenuItemLabel::create(label_02, CC_CALLBACK_1(AchievementScene::replaceToEndingScene, this)); auto item_03 = MenuItemLabel::create(label_03, CC_CALLBACK_1(AchievementScene::pushAchieveDetailScene, this)); // 메뉴 만들기 auto menu = Menu::create(item_01,item_02, item_03, NULL); menu->alignItemsVertically(); this->addChild(menu); return true; }
void ModoVs::createButtons(Size visibleSize) { Vec2 origin = Director::getInstance()->getVisibleOrigin(); // set the font for menu with text MenuItemFont::setFontSize(20); // Boton para volver al menu de inicio auto mbVolver = MenuItemFont::create("Volver", CC_CALLBACK_1(ModoVs::VolverCallBack, this)); mbVolver->setAnchorPoint(Vec2(0.0,0.0)); mbVolver->setPosition(0, 0); mbVolver->setColor(Color3B(240, 230, 140)); // Se crea un boton de salir auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(ModoVs::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); auto menu = Menu::create(mbVolver, closeItem, NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu, 3); // create first menu item auto mbBatalla = MenuItemFont::create("Batalla", CC_CALLBACK_1(ModoVs::BatallaCallBack, this)); // create second menu item auto mbKOTH = MenuItemFont::create("King of the Hill", CC_CALLBACK_1(ModoVs::KOTHCallBack, this)); // create third menu item auto mbCTF = MenuItemFont::create("Capture the Flag", CC_CALLBACK_1(ModoVs::CTFCallBack, this)); // now create a menu with menu items. auto menuCenter = Menu::create(mbBatalla, mbKOTH, mbCTF, NULL); // set the position of menu menuCenter->setPosition(Vec2(visibleSize.width/2.0, visibleSize.height/2.0)); // set the text color for the menu menuCenter->setColor(Color3B(240, 230, 140)); // set the alignment & padding for the menu. menuCenter->alignItemsVertically(); // add it to scene-layer this->addChild(menuCenter, 3); }
// 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()) { auto listener = EventListenerTouchAllAtOnce::create(); listener->onTouchesBegan = CC_CALLBACK_2(Bug914Layer::onTouchesBegan, this); listener->onTouchesMoved = CC_CALLBACK_2(Bug914Layer::onTouchesMoved, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); // ask director the the window size auto size = Director::getInstance()->getWinSize(); LayerColor *layer; for( int i=0;i < 5;i++) { layer = LayerColor::create(Color4B(i*20, i*20, i*20,255)); layer->setContentSize(Size(i*100, i*100)); layer->setPosition(Vec2(size.width/2, size.height/2)); layer->setAnchorPoint(Vec2(0.5f, 0.5f)); layer->ignoreAnchorPointForPosition(false); addChild(layer, -1-i); } // create and initialize a Label auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 64.0f); auto item1 = MenuItemFont::create("restart", CC_CALLBACK_1(Bug914Layer::restart, this)); auto menu = Menu::create(item1, nullptr); menu->alignItemsVertically(); menu->setPosition(Vec2(size.width/2, 100)); addChild(menu); // position the label on the center of the screen label->setPosition(Vec2( size.width /2 , size.height/2 )); // add the label as a child to this Layer addChild(label); return true; } return false; }
void AttackLayer::stopLayer(Ref * sender){ shield->setVisible(true); auto menuItem = (MenuItem *)sender; CocosDenshion::SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); menuItem->setEnabled(false); log("%s",menuItem->getName().c_str()); auto EndGame = MenuItemImage::create("backbt.png", "backbtn-disable.png", CC_CALLBACK_1(AttackLayer::popGameScene,this)); EndGame->setName("EndGame"); EndGame->setVisible(true); auto EndItem = MenuItemImage::create("EndAttack_a.png", "EndAttack_b.png", CC_CALLBACK_1(AttackLayer::EndMenu, this)); auto menu = Menu::create(EndItem, EndGame, NULL); menu->setName("Menu"); menu->setPosition(bgX / 2, bgY / 2); menu->alignItemsVertically(); addChild(menu); auto maticmenu = (Menu* )this->getChildByName("menuMaticItem"); auto maticItem = (MenuItemImage* )maticmenu->getChildByName("automatic"); maticItem->setEnabled(false); Director::getInstance()->pause(); }
SceneTestLayer1::SceneTestLayer1() { auto item1 = MenuItemFont::create( "Test pushScene", CC_CALLBACK_1(SceneTestLayer1::onPushScene, this)); auto item2 = MenuItemFont::create( "Test pushScene w/transition", CC_CALLBACK_1(SceneTestLayer1::onPushSceneTran, this)); auto item3 = MenuItemFont::create( "Quit", CC_CALLBACK_1(SceneTestLayer1::onQuit, this)); auto menu = Menu::create( item1, item2, item3, NULL ); menu->alignItemsVertically(); addChild( menu ); auto s = Director::getInstance()->getWinSize(); auto sprite = Sprite::create(s_pathGrossini); addChild(sprite); sprite->setPosition( Vec2(s.width-40, s.height/2) ); auto rotate = RotateBy::create(2, 360); auto repeat = RepeatForever::create(rotate); sprite->runAction(repeat); schedule( schedule_selector(SceneTestLayer1::testDealloc) ); }
void MenuLayer2::alignMenusV() { for(int i=0;i<2;i++) { auto menu = static_cast<Menu*>( getChildByTag(100+i) ); menu->setPosition( _centeredMenu ); if(i==0) { // TIP: if no padding, padding = 5 menu->alignItemsVertically(); auto p = menu->getPosition(); menu->setPosition(p + Vec2(100,0)); } else { // TIP: but padding is configurable menu->alignItemsVerticallyWithPadding(40); auto p = menu->getPosition(); menu->setPosition(p - Vec2(100,0)); } } }
//------------------------------------------------------------------ // // NodeToWorld3D // //------------------------------------------------------------------ NodeToWorld3D::NodeToWorld3D() { // // This code tests that nodeToParent works OK: // - It tests different anchor Points // - It tests different children anchor points Size s = Director::getInstance()->getWinSize(); auto parent = Node::create(); parent->setContentSize(s); parent->setAnchorPoint(Vec2(0.5, 0.5)); parent->setPosition(s.width/2, s.height/2); this->addChild(parent); auto back = Sprite::create(s_back3); parent->addChild( back, -10); back->setAnchorPoint( Vec2(0,0) ); auto backSize = back->getContentSize(); auto item = MenuItemImage::create(s_PlayNormal, s_PlaySelect); auto menu = Menu::create(item, NULL); menu->alignItemsVertically(); menu->setPosition( Vec2(backSize.width/2, backSize.height/2)); back->addChild(menu); auto rot = RotateBy::create(5, 360); auto fe = RepeatForever::create( rot); item->runAction( fe ); auto move = MoveBy::create(3, Vec2(200,0)); auto move_back = move->reverse(); auto seq = Sequence::create( move, move_back, NULL); auto fe2 = RepeatForever::create(seq); back->runAction(fe2); auto orbit = OrbitCamera::create(10, 0, 1, 0, 360, 0, 90); parent->runAction(orbit); }
/*------------------------------------------------------------------------------------ | 함 수 명 : initMenu(void) | 매개변수 : | 리 턴 값 : | 설 명 : 메뉴 초기화 |------------------------------------------------------------------------------------*/ void OptionScene::initMenu() { // 데이터 정렬 메뉴 auto label_Music = Label::createWithTTF("배경음악", "fonts/hans punch.ttf", 30); // label_Time->enableShadow(Color4B::YELLOW, Size(2, -2)); label_Music->enableOutline(Color4B::GRAY, 1); label_Music->setColor(Color3B(255, 255, 0)); auto menu_Music = MenuItemLabel::create(label_Music, CC_CALLBACK_1(OptionScene::menuCallback, this)); menu_Music->setTag(TAG_OPTION_MENU_MUSIC); auto label_Effect = Label::createWithTTF("효과음", "fonts/hans punch.ttf", 30); label_Effect->enableOutline(Color4B::GRAY, 1); label_Effect->setColor(Color3B(255, 255, 0)); auto menu_Effect = MenuItemLabel::create(label_Effect, CC_CALLBACK_1(OptionScene::menuCallback, this)); menu_Effect->setTag(TAG_OPTION_MENU_EFFECT); auto label_Delete = Label::createWithTTF("순위 데이터 삭제", "fonts/hans punch.ttf", 30); label_Delete->enableOutline(Color4B::GRAY, 1); label_Delete->setColor(Color3B(255, 255, 0)); auto menu_Delete = MenuItemLabel::create(label_Delete, CC_CALLBACK_1(OptionScene::menuCallback, this)); menu_Delete->setTag(TAG_OPTION_MENU_DELETE); auto menu = Menu::create(menu_Music, menu_Effect, menu_Delete, NULL); menu->alignItemsVertically(); menu->setPositionY(SizeH-250); this->addChild(menu); // 좌우 이동 메뉴 아이템 셋팅 auto menu_Back = MenuItemImage::create("menu/Back_0.png", "menu/Back_1.png", CC_CALLBACK_1(OptionScene::menuCallback, this)); menu_Back->setTag(TAG_DATA_MENU_BACK); menu_Back->setScale(0.1f); auto menu2 = Menu::create(menu_Back, NULL); menu2->setAnchorPoint(Point(1, 0)); menu2->setPosition(Point(50, 50)); this->addChild(menu2); }
SceneTestLayer2::SceneTestLayer2() { _timeCounter = 0; auto item1 = MenuItemFont::create( "replaceScene", CC_CALLBACK_1(SceneTestLayer2::onReplaceScene, this)); auto item2 = MenuItemFont::create( "replaceScene w/transition", CC_CALLBACK_1(SceneTestLayer2::onReplaceSceneTran, this)); auto item3 = MenuItemFont::create( "Go Back", CC_CALLBACK_1(SceneTestLayer2::onGoBack, this)); auto menu = Menu::create( item1, item2, item3, NULL ); menu->alignItemsVertically(); addChild( menu ); auto s = Director::getInstance()->getWinSize(); auto sprite = Sprite::create(s_pathGrossini); addChild(sprite); sprite->setPosition( Point(s.width-40, s.height/2) ); auto rotate = RotateBy::create(2, 360); auto repeat = RepeatForever::create(rotate); sprite->runAction(repeat); schedule( schedule_selector(SceneTestLayer2::testDealloc) ); }
// on "init" you need to initialize your instance bool ScheduleScene::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->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 auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); // create menu, it's an autorelease object auto menu = Menu::create(closeItem, NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu, 1); */ /* ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24); // position the label on the center of the screen label->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); // add the label as a child to this layer this->addChild(label, 1); // add "HelloWorld" splash screen" auto sprite = Sprite::create("HelloWorld.png"); // position the sprite on the center of the screen sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // add the sprite as a child to this layer this->addChild(sprite, 0); */ auto label_01 = Label::createWithTTF("Next Schedule", "fonts/Marker Felt.ttf", 60); label_01->setColor(Color3B::WHITE); auto item_01 = MenuItemLabel::create(label_01, CC_CALLBACK_1(ScheduleScene::nextSchedule, this)); auto label_02 = Label::createWithTTF("Back", "fonts/Marker Felt.ttf", 60); label_02->setColor(Color3B::WHITE); auto item_02 = MenuItemLabel::create(label_02, CC_CALLBACK_1(ScheduleScene::menuCloseCallback, this)); auto menu = Menu::create(item_01, item_02, NULL); menu->alignItemsVertically(); menu->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/6 + origin.y)); this->addChild(menu, 1); // background image //auto bgSprite = Sprite::create("background.png"); auto bgSprite = Sprite::create("background.png", Rect::Rect(0,0,450,175)); bgSprite->setPosition(Point(0, visibleSize.height)); bgSprite->setAnchorPoint(Point(0,1)); bgSprite->setScale((double)750/450); this->addChild(bgSprite, 0); return true; }
// on "init" you need to initialize your instance bool Main::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->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 auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(Main::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); // create menu, it's an autorelease object auto closeMenu = Menu::create(closeItem, NULL); closeMenu->setPosition(Vec2::ZERO); this->addChild(closeMenu, 1); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label auto label = LabelTTF::create("海底连珠", "Arial", 70); //auto label = Label::createWithSystemFont("海底连珠", "海底连珠2", 24); // position the label on the center of the screen label->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); // add the label as a child to this layer this->addChild(label, 1); // add background auto bg = Sprite::create("background.png"); bg->setPosition(visibleSize.width / 2, visibleSize.height / 2); bg->setScale(visibleSize.width / bg->getContentSize().width, visibleSize.height / bg->getContentSize().height); this->addChild(bg, 0); CCLOG("visibleSize.width = %f",visibleSize.width); CCLOG("visibleSize.height = %f",visibleSize.height); CCLOG("origin.x = %f",origin.x); CCLOG("origin.y = %f",origin.y); MenuItemFont::setFontSize(60); //MenuItemFont::setFontName(const std::string &name) auto menu1 = MenuItemFont::create("新游戏", CC_CALLBACK_1(Main::menuNewGameCallback, this)); auto menu2 = MenuItemFont::create("继续", CC_CALLBACK_1(Main::menuContinueCallback, this)); auto menu3 = MenuItemFont::create("如何玩", CC_CALLBACK_1(Main::menuHowToPlayCallback, this)); auto menu4 = MenuItemFont::create("排行榜", CC_CALLBACK_1(Main::menuRankCallback, this)); auto menu5 = MenuItemFont::create("更多游戏", CC_CALLBACK_1(Main::menuMoreGameCallback, this)); auto menu6 = MenuItemFont::create("去掉广告", CC_CALLBACK_1(Main::menuRemoveAdCallback, this)); auto s = Director::getInstance()->getWinSize(); auto mainMenu = Menu::create(menu1, menu2, menu3, menu4, menu5, menu6, nullptr); mainMenu->alignItemsVertically(); mainMenu->setPosition(Vec2(s.width/2, s.height/2)); addChild(mainMenu); //mainMenu->setScale(1); //mainMenu->runAction(ScaleTo::create(1,1)); return true; }
BitmapFontMultiLineAlignment::BitmapFontMultiLineAlignment() { auto listener = EventListenerTouchAllAtOnce::create(); listener->onTouchesBegan = CC_CALLBACK_2(BitmapFontMultiLineAlignment::onTouchesBegan, this); listener->onTouchesMoved = CC_CALLBACK_2(BitmapFontMultiLineAlignment::onTouchesMoved, this); listener->onTouchesEnded = CC_CALLBACK_2(BitmapFontMultiLineAlignment::onTouchesEnded, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); // ask director the the window size auto size = Director::getInstance()->getWinSize(); // create and initialize a Label this->_labelShouldRetain = LabelBMFont::create(LongSentencesExample, "fonts/markerFelt.fnt", size.width/1.5, TextHAlignment::CENTER); this->_labelShouldRetain->retain(); this->_arrowsBarShouldRetain = Sprite::create("Images/arrowsBar.png"); this->_arrowsBarShouldRetain->retain(); this->_arrowsShouldRetain = Sprite::create("Images/arrows.png"); this->_arrowsShouldRetain->retain(); MenuItemFont::setFontSize(20); auto longSentences = MenuItemFont::create("Long Flowing Sentences", CC_CALLBACK_1(BitmapFontMultiLineAlignment::stringChanged, this)); auto lineBreaks = MenuItemFont::create("Short Sentences With Intentional Line Breaks", CC_CALLBACK_1(BitmapFontMultiLineAlignment::stringChanged, this)); auto mixed = MenuItemFont::create("Long Sentences Mixed With Intentional Line Breaks", CC_CALLBACK_1(BitmapFontMultiLineAlignment::stringChanged, this)); auto stringMenu = Menu::create(longSentences, lineBreaks, mixed, NULL); stringMenu->alignItemsVertically(); longSentences->setColor(Color3B::RED); _lastSentenceItem = longSentences; longSentences->setTag(LongSentences); lineBreaks->setTag(LineBreaks); mixed->setTag(Mixed); MenuItemFont::setFontSize(30); auto left = MenuItemFont::create("Left", CC_CALLBACK_1(BitmapFontMultiLineAlignment::alignmentChanged, this)); auto center = MenuItemFont::create("Center", CC_CALLBACK_1(BitmapFontMultiLineAlignment::alignmentChanged, this)); auto right = MenuItemFont::create("Right", CC_CALLBACK_1(BitmapFontMultiLineAlignment::alignmentChanged, this)); auto alignmentMenu = Menu::create(left, center, right, NULL); alignmentMenu->alignItemsHorizontallyWithPadding(alignmentItemPadding); center->setColor(Color3B::RED); _lastAlignmentItem = center; left->setTag(LeftAlign); center->setTag(CenterAlign); right->setTag(RightAlign); // position the label on the center of the screen this->_labelShouldRetain->setPosition(Point(size.width/2, size.height/2)); this->_arrowsBarShouldRetain->setVisible(false); float arrowsWidth = (ArrowsMax - ArrowsMin) * size.width; this->_arrowsBarShouldRetain->setScaleX(arrowsWidth / this->_arrowsBarShouldRetain->getContentSize().width); this->_arrowsBarShouldRetain->setPosition(Point(((ArrowsMax + ArrowsMin) / 2) * size.width, this->_labelShouldRetain->getPosition().y)); this->snapArrowsToEdge(); stringMenu->setPosition(Point(size.width/2, size.height - menuItemPaddingCenter)); alignmentMenu->setPosition(Point(size.width/2, menuItemPaddingCenter+15)); this->addChild(this->_labelShouldRetain); this->addChild(this->_arrowsBarShouldRetain); this->addChild(this->_arrowsShouldRetain); this->addChild(stringMenu); this->addChild(alignmentMenu); }