/**
* 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));
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
//------------------------------------------------------------------
//
// 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);
}
Ejemplo n.º 4
0
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);
    
}
Ejemplo n.º 5
0
// 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;
}
Ejemplo n.º 6
0
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];
}
Ejemplo n.º 7
0
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;
}
Ejemplo n.º 8
0
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;
}
Ejemplo n.º 9
0
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;
}
Ejemplo n.º 10
0
// 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;
}
Ejemplo n.º 11
0
// 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;
}
Ejemplo n.º 12
0
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;
}
Ejemplo n.º 13
0
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;
	}


}
Ejemplo n.º 14
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;
}
Ejemplo n.º 15
0
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);
}
Ejemplo n.º 16
0
// 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));
}
Ejemplo n.º 17
0
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;
}
Ejemplo n.º 18
0
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;
}
Ejemplo n.º 19
0
// 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;
}
Ejemplo n.º 20
0
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);
}
Ejemplo n.º 21
0
// on "init" you need to initialize your instance
bool Bug914Layer::init()
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if (BugsTestBaseLayer::init())
    {
        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;
}
Ejemplo n.º 22
0
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();
}
Ejemplo n.º 23
0
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) );
}
Ejemplo n.º 24
0
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));
        }        
    }
}
Ejemplo n.º 25
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);
}
Ejemplo n.º 26
0
/*------------------------------------------------------------------------------------
| 함 수 명  : 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);

}
Ejemplo n.º 27
0
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) );
}
Ejemplo n.º 28
0
// 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;
}
Ejemplo n.º 29
0
// 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;
}
Ejemplo n.º 30
0
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);
}