예제 #1
0
void GamePlayScene::initNavigator() {
    MenuItemFont *menuTitle = MenuItemFont::create(Constant::MENU_PLAY, CC_CALLBACK_1(GamePlayScene::navigatorCallback, this));
    menuTitle->setFontName(Constant::FONT);
    menuTitle->setFontSize(64);
    menuTitle->setVisible(false);

    MenuItemFont *back = MenuItemFont::create(Constant::MENU_BACK, CC_CALLBACK_1(GamePlayScene::navigatorCallback, this));
    back->setFontName(Constant::FONT);
    back->setFontSize(64);
    back->setTag(Constant::MENU_BACK_TAG);

    MenuItemFont *start = MenuItemFont::create(Constant::MENU_START, CC_CALLBACK_1(GamePlayScene::navigatorCallback, this));
    start->setFontName(Constant::FONT);
    start->setFontSize(64);
    start->setTag(Constant::MENU_START_TAG);

    Menu *menu = Menu::create(back, start, NULL);
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    back->setPosition(Vec2(origin.x + visibleSize.width - back->getContentSize().width / 2,
                                    origin.y + back->getContentSize().height / 2));
    start->setPosition(Vec2(origin.x + start->getContentSize().width / 2,
                                    origin.y + back->getContentSize().height / 2));
    menu->setPosition(Vec2::ZERO);
    addChild(menu);
}
예제 #2
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
//    auto rootNode = CSLoader::createNode("MainScene.csb");
//
//    addChild(rootNode);
    
    
//    Sprite *s = Sprite::create("whah");
//    this->addChild(s);
    
//    MenuItemFont *item = MenuItemFont::create("ylyTest 按钮 01");
//    
//    Menu *m = Menu::create(item,NULL);
//    
//    this->addChild(m);
//
//    return true;
//}
    
//    Vec2 winSize = Director::getInstance()->getWinSize();
    
    // 可见视图大小
//    Size visiblesSize = Director::getInstance()->getVisibleSize();
    
    MenuItemFont *item = MenuItemFont::create("开始游戏",CC_CALLBACK_1(HelloWorld::onMenuItem,this));
    
    MenuItemFont *gameMap = MenuItemFont::create("游戏地图",CC_CALLBACK_1(HelloWorld::onMenuItemGameMap,this));
    
//    gameMap->setPosition(Vec2(visiblesSize.width/2, visiblesSize.height/2-30));
    
//    gameMap->setAnchorPoint(Vec2(visiblesSize.width/2, visiblesSize.height/2-30));
    // 锚点和位置
//    gameMap->setAnchorPoint(Vec2::ZERO);
    
    gameMap->setPosition(Vec2(0.0, -50));
    
    
    MenuItemFont *myGame = MenuItemFont::create("myGame",CC_CALLBACK_1(HelloWorld::onMenuItemMyGame,this));
    myGame->setPosition(Vec2(0.0, -100));
    
    MenuItemFont *testMyGameA = MenuItemFont::create("testMyGameA*",CC_CALLBACK_1(HelloWorld::onMenuItemTestMyGame,this));
    testMyGameA->setPosition(Vec2(0.0, -150));

    
    Menu *menu = Menu::create(item,gameMap,myGame,testMyGameA,NULL);
    
    
    this->addChild(menu);
    
    return true;
}
예제 #3
0
// on "init" you need to initialize your instance
bool TableViewTestLayer::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

	Size winSize = Director::sharedDirector()->getWinSize();

    TableView* tableView = TableView::create(this, CCSizeMake(250, 60));
    tableView->setDirection(kScrollViewDirectionHorizontal);
    tableView->setPosition(ccp(20,winSize.height/2-30));
    tableView->setDelegate(this);
    this->addChild(tableView);
    tableView->reloadData();

	tableView = TableView::create(this, CCSizeMake(60, 250));
	tableView->setDirection(kScrollViewDirectionVertical);
	tableView->setPosition(ccp(winSize.width-150,winSize.height/2-120));
	tableView->setDelegate(this);
	tableView->setVerticalFillOrder(kTableViewFillTopDown);
	this->addChild(tableView);
	tableView->reloadData();

	// Back Menu
	MenuItemFont *itemBack = MenuItemFont::create("Back", CC_CALLBACK_1(TableViewTestLayer::toExtensionsMainLayer, this));
	itemBack->setPosition(ccp(VisibleRect::rightBottom().x - 50, VisibleRect::rightBottom().y + 25));
	Menu *menuBack = Menu::create(itemBack, NULL);
	menuBack->setPosition(PointZero);
	addChild(menuBack);

    return true;
}
// Menus
void GameLevelLayer::gameOver(bool playerDidWin)
{
	m_isGameOver = true;
    std::string gameText;
    
	if (playerDidWin)
    {
		gameText = "You Won!";
	}
    else
    {
		gameText = "You have Died!";
        CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("hurt.wav");
	}
    
    Menu* pMenu = CCMenu::create();
    pMenu->setPosition(Vec2(240, -100));
    
    MenuItemFont *diedLabel = MenuItemFont::create(gameText);
    diedLabel->setFontName("Marker Felt");
    diedLabel->setFontSize(24);
    diedLabel->setPosition(Vec2(240, 200));
    pMenu->addChild(diedLabel);
    
    MoveBy *slideIn = MoveBy::create(1.0, Vec2(0,250));
    
    MenuItemImage *replay = MenuItemImage::create("replay.png", "replay.png", "replay.png");
    replay->setPosition(Point::ZERO);
    replay->setCallback(CC_CALLBACK_1(GameLevelLayer::replayButtonCallback, this));
    pMenu->addChild(replay);
    
    this->addChild(pMenu, 1);
    
    pMenu->runAction(slideIn);
}
예제 #5
0
// on "init" you need to initialize your instance
bool TableViewTestLayer::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

	Size winSize = Director::getInstance()->getWinSize();

    TableView* tableView = TableView::create(this, Size(250, 60));
    tableView->setDirection(ScrollView::Direction::HORIZONTAL);
    tableView->setPosition(Point(20,winSize.height/2-30));
    tableView->setDelegate(this);
    this->addChild(tableView);
    tableView->reloadData();

	tableView = TableView::create(this, Size(60, 250));
	tableView->setDirection(ScrollView::Direction::VERTICAL);
	tableView->setPosition(Point(winSize.width-150,winSize.height/2-120));
	tableView->setDelegate(this);
	tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
	this->addChild(tableView);
	tableView->reloadData();

	// Back Menu
	MenuItemFont *itemBack = MenuItemFont::create("Back", CC_CALLBACK_1(TableViewTestLayer::toExtensionsMainLayer, this));
	itemBack->setPosition(Point(VisibleRect::rightBottom().x - 50, VisibleRect::rightBottom().y + 25));
	Menu *menuBack = Menu::create(itemBack, NULL);
	menuBack->setPosition(Point::ZERO);
	addChild(menuBack);

    return true;
}
예제 #6
0
// on "init" you need to initialize your instance
bool HelloWorld::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));

	MenuItemFont* buttonItem = MenuItemFont::create("menu item font", CC_CALLBACK_1(HelloWorld::showNewLayer, this));
	buttonItem->setPosition(visibleSize.width/2, visibleSize.height/2);

    // create menu, it's an autorelease object
	auto menu = Menu::create(buttonItem, 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);

    
    return true;
}
예제 #7
0
void UI::createLevelEditorFilePopup()
{
	Size visibleSize = Director::getInstance()->getVisibleSize();

	MenuItemFont* addTextureObject = MenuItemFont::create("choose file", CC_CALLBACK_0(UI::nullCallback, this));
	addTextureObject->setFontNameObj("Segoe UI");
	addTextureObject->setFontSizeObj(34);
	addTextureObject->setPosition(visibleSize.width * 0.5f, visibleSize.height - 30);

	MenuItemFont* scrollUpObject = MenuItemFont::create("up", CC_CALLBACK_0(LevelEditor::moveFileSelectUpCallback, pLevelEditor));
	scrollUpObject->setFontNameObj("Segoe UI");
	scrollUpObject->setFontSizeObj(34);
	scrollUpObject->setPosition(visibleSize.width - 50, visibleSize.height - 30);

	MenuItemFont* scrollDownObject = MenuItemFont::create("down", CC_CALLBACK_0(LevelEditor::moveFileSelectDownCallback, pLevelEditor));
	scrollDownObject->setFontNameObj("Segoe UI");
	scrollDownObject->setFontSizeObj(34);
	scrollDownObject->setPosition(visibleSize.width - 50, 30);

	MenuItemImage* scrollBackground = MenuItemImage::create("Resources/pictures/generic/ui_background.png", "ui_background.png", CC_CALLBACK_0(UI::nullCallback, this));
	scrollBackground->setPosition(visibleSize.width * 0.5f, visibleSize.height * 0.5f);
	scrollBackground->setScale(400, visibleSize.height);

	int paddingTop = 60;
	Vector<MenuItem*> lMenuItems;
	lMenuItems.pushBack(addTextureObject);
	for (string s : getAllFilesInFolder("Resources/pictures/tiles"))
	{
		MenuItemFont* menuItem = MenuItemFont::create(s, CC_CALLBACK_1(LevelEditor::chooseFileCallback, pLevelEditor, s, levelType));
		menuItem->setFontNameObj("Segoe UI");
		menuItem->setFontSizeObj(24);
		menuItem->setPosition(visibleSize.width * 0.5f, visibleSize.height - paddingTop);
		paddingTop += 30;
		lMenuItems.pushBack(menuItem);
	}
	auto menu = Menu::createWithArray(lMenuItems);
	auto scrollMenu = Menu::create(scrollBackground, scrollDownObject, scrollUpObject, NULL);
	scrollMenu->retain();
	scrollMenu->setPosition(0, 0);
	menu->retain();
	menu->setPosition(0, 0);
	m_pLevelEditor->addChild(menu);
	m_pLevelEditor->addChild(scrollMenu, -10);
	pLevelEditor->ChooseFileMenu = menu;
	pLevelEditor->ChooseFileNavMenu = scrollMenu;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    
	Size visibleSize = Director::getInstance()->getVisibleSize();

	MenuItemFont* pIncrease = MenuItemFont::create("increase 20",CC_CALLBACK_1(HelloWorld::increaseCallback,this));
	pIncrease->setAnchorPoint(Vec2(0.0f,1.0f));
	pIncrease->setPosition(0.0f,visibleSize.height - 0.0f);


	MenuItemFont* pReduce   = MenuItemFont::create("reduce 20",CC_CALLBACK_1(HelloWorld::reduceCallback,this));
	pReduce->setAnchorPoint(Vec2(0.0f,1.0f));
	pReduce->setPosition(0.0f,visibleSize.height - 40.0f);

	MenuItemFont* pGoto     = MenuItemFont::create("goto 100",CC_CALLBACK_1(HelloWorld::gotoCallback,this));
	pGoto->setAnchorPoint(Vec2(0.0f,1.0f));
	pGoto->setPosition(0.0f,visibleSize.height - 80.0f);

	Menu* pMenu = Menu::create(pIncrease,pReduce,pGoto, NULL);
	pMenu->setPosition(Vec2(0.0f,0.0f));
    this->addChild(pMenu, 1);


	LabelAtlas* pNumber = LabelAtlas::create("","number.png",55,84,'0');
	pNumber->setAnchorPoint(Vec2(0.5f,0.5f));
	pNumber->setPosition(Vec2(visibleSize.width/2.0f,
                             visibleSize.height/2.0f));

	this->addChild(pNumber);

	m_numberCount.setLabelAtlas(pNumber); //如果是从cocostudio导出的话请调用NumberCount::setTextAtlas

	//将数字每一步的增量初始化为3
	m_numberCount.setNumberDelta(3);

	//将数字增加时间间隔设置为0.1秒
	m_numberCount.setTimeDelta(0.1f);

	//将数字初始化为100
	m_numberCount.setNumber(100,false);
    return true;
}
예제 #9
0
// ゲームメイン処理
void PlayScene::gameLogic(){
    // 画像描画用に画面のサイズと座標開始位置を取得
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    // ゲームオブジェクトの追加とそのアニメーション処理
    schedule(schedule_selector(PlayScene::addGameObject), 2.0);
    

    // クリアボタン作成
    MenuItemFont* clearButton = MenuItemFont::create("CLEAR!",
                                                      [this](Ref *pSender){
                                                          float duration = 1.0f;
                                                          Scene* pScene = TransitionFadeDown::create(duration, EndingScene::createScene());
                                                          Director::getInstance()->replaceScene(pScene);
                                                      });
    
    
    clearButton->setPosition(Vec2(origin.x + ( visibleSize.width / 3) * 2 + ( clearButton->getContentSize().width / 2 ) ,
                                  origin.y + ( visibleSize.height / 5) * 2 ));
    
    // ゲームオーバーボタン作成
    MenuItemFont* gameOverButton = MenuItemFont::create("GAMEOVER!",
                                                     [this](Ref *pSender){
                                                         float duration = 1.0f;
                                                         Scene* pScene = TransitionJumpZoom::create(duration, GameOverScene::createScene());
                                                         Director::getInstance()->replaceScene(pScene);
                                                     });
    
    
    gameOverButton->setPosition(Vec2(origin.x + ( visibleSize.width / 3) * 2 + ( gameOverButton->getContentSize().width / 2 ) ,
                                     origin.y + ( visibleSize.height / 5) * 3));

    
    
    // 作成したボタンの追加
    Menu* menu = Menu::create(clearButton, gameOverButton, NULL);
    menu->setPosition(0,0);
    this->addChild(menu);
}
예제 #10
0
// on "init" you need to initialize your instance
bool TestIAP::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }

    MyPurchase::getInstance()->loadIAPPlugin();

    /////////////////////////////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.

    auto pEGLView = Director::getInstance()->getOpenGLView();
    Point posBR = Point(pEGLView->getVisibleOrigin().x + pEGLView->getVisibleSize().width, pEGLView->getVisibleOrigin().y);
    Point posTL = Point(pEGLView->getVisibleOrigin().x, pEGLView->getVisibleOrigin().y + pEGLView->getVisibleSize().height);

    // add a "close" icon to exit the progress. it's an autorelease object
    MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestIAP::menuBackCallback, this));
    Size backSize = pBackItem->getContentSize();
    pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));

    // create menu, it's an autorelease object
    Menu* pMenu = Menu::create(pBackItem, NULL);
    pMenu->setPosition( Point::ZERO );
    this->addChild(pMenu, 1);

    Point posStep = Point(220, -150);
    Point beginPos = posTL + (posStep * 0.5f);
    int line = 0;
    int row = 0;
    for (int i = 0; i < sizeof(s_EventMenuItem)/sizeof(s_EventMenuItem[0]); i++) {
    	MenuItemImage* pMenuItem = MenuItemImage::create(s_EventMenuItem[i].id.c_str(), s_EventMenuItem[i].id.c_str(),
    			CC_CALLBACK_1(TestIAP::eventMenuCallback, this));
        pMenu->addChild(pMenuItem, 0, s_EventMenuItem[i].tag);

        Point pos = beginPos + Point(posStep.x * row, posStep.y * line);
        Size itemSize = pMenuItem->getContentSize();
        if ((pos.x + itemSize.width / 2) > posBR.x)
		{
			line += 1;
			row = 0;
			pos = beginPos + Point(posStep.x * row, posStep.y * line);
		}
        row += 1;
        pMenuItem->setPosition(pos);
    }

    return true;
}
예제 #11
0
bool MDPauseMenu::init(MDPauseMenuInterfaz* target)
{
    if (CCLayerColor::initWithColor(ccc4(0, 0, 0, 200)) )
    {
        mTarget = target;
        
        Size visibleSize  = Director::getInstance()->getVisibleSize();
        
        // Menu items
        MenuItemFont *btResume = MenuItemFont::create("Resume",
                                                          this,
                                                          menu_selector(MDPauseMenu::resumeGame));
        btResume->setColor(ccc3(255, 255, 255));
        btResume->setAnchorPoint(ccp(0.5, 1));
		btResume->setPosition(ccp(0, 0));
        
        MenuItemFont *btRetry = MenuItemFont::create("Retry",
                                                          this,
                                                          menu_selector(MDPauseMenu::retryGame));
        btRetry->setColor(ccc3(255, 255, 255));
		btRetry->setAnchorPoint(ccp(0.5, 1));
		btRetry->setPosition(ccp(0, btResume->getPosition().y - btResume->getContentSize().height - MENU_ITEMS_SPACING));

        MenuItemFont *btExit = MenuItemFont::create("Exit",
                                                          this,
                                                          menu_selector(MDPauseMenu::quitGame));
        btExit->setColor(ccc3(255, 255, 255));
		btExit->setAnchorPoint(ccp(0.5, 1));
		btExit->setPosition(ccp(0, btRetry->getPosition().y - btRetry->getContentSize().height - MENU_ITEMS_SPACING));
        
        // Menu
        Menu *menu = Menu::create(btResume, btRetry, btExit, NULL);
		menu->setPosition(ccp(visibleSize.width / 2, visibleSize.height / 2));
        addChild(menu);
        
        return true;
    }
    return false;
}
예제 #12
0
bool PauseLayer::init()
{
    if (!Layer::init()) {
        return false;
    }

    const Size &size=Director::getInstance()->getWinSize();
    
    //灰色背景
    LayerColor* backLayerColor = LayerColor::create(Color4B(25, 25, 25, 125));
    this->addChild(backLayerColor);

    // 暂停
    MenuItemFont *menuItemPause = MenuItemFont::create("Continue", CC_CALLBACK_1(PauseLayer::menuContinueCallBack, this));
    menuItemPause->setPosition(Point(size.width / 2 - 100, size.height / 2));
   // 重新开始
    MenuItemFont *menuItemRestart = MenuItemFont::create("Restart", CC_CALLBACK_1(PauseLayer::menuRestartCallBack, this));
    menuItemRestart->setPosition(Point(size.width / 2 + 100, size.height / 2));
    Menu *menu=Menu::create(menuItemPause, menuItemRestart, NULL);
    menu->setPosition(Point::ZERO);
    this->addChild(menu);

//不声明 不定义 ontouchbegan的使用方法
//    auto callback = [](Touch * ,Event *)
//    {
//        return true;
//    };
//    auto listener = EventListenerTouchOneByOne::create();
//    listener->onTouchBegan = callback;
//    listener->setSwallowTouches(true);
//    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this);
    EventListenerTouchOneByOne* listener = EventListenerTouchOneByOne::create();
    listener->onTouchBegan = CC_CALLBACK_2(PauseLayer::onTouchBegan, this);
    listener->setSwallowTouches(true);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

    return true;
}
// on "init" you need to initialize your instance
bool TestAnalytics::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }

    _pluginAnalytics = NULL;
    loadPlugins();

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();
    Point posBR = Point(origin.x + visibleSize.width, origin.y);

    /////////////////////////////
    // 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
    MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestAnalytics::menuBackCallback, this));
    Size backSize = pBackItem->getContentSize();
    pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));

    // create menu, it's an autorelease object
    Menu* pMenu = Menu::create(pBackItem, NULL);
    pMenu->setPosition( Point::ZERO );
    this->addChild(pMenu, 1);

    float yPos = 0;
    for (int i = 0; i < sizeof(s_EventMenuItem)/sizeof(s_EventMenuItem[0]); i++) {
        LabelTTF* label = LabelTTF::create(s_EventMenuItem[i].id.c_str(), "Arial", 24);
        MenuItemLabel* pMenuItem = MenuItemLabel::create(label, CC_CALLBACK_1(TestAnalytics::eventMenuCallback, this));
        pMenu->addChild(pMenuItem, 0, s_EventMenuItem[i].tag);
        yPos = visibleSize.height - 35*i - 100;
        pMenuItem->setPosition( Point(visibleSize.width / 2, yPos));
    }

    std::string strName = _pluginAnalytics->getPluginName();
    std::string strVer = _pluginAnalytics->getSDKVersion();
    char ret[256] = { 0 };
    sprintf(ret, "Plugin : %s, Ver : %s", strName.c_str(), strVer.c_str());
    LabelTTF* pLabel = LabelTTF::create(ret, "Arial", 18, Point(visibleSize.width, 0), Label::HAlignment::CENTER);
    pLabel->setPosition(Point(visibleSize.width / 2, yPos - 80));
    addChild(pLabel);

    return true;
}
예제 #14
0
bool ListLayer::init() {
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();
    Point posMid = Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2);
    Point posBR = Point(origin.x + visibleSize.width, origin.y);
    Point posBL = Point(origin.x, origin.y);
    
    
    MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(ListLayer::onBackCallback, this));
    Size backSize = pBackItem->getContentSize();
    pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));
    
    MenuItemFont *pMenuItem = MenuItemFont::create("Menu", CC_CALLBACK_1(ListLayer::onMenuCallback, this));
    Size menuSize = pMenuItem->getContentSize();
    pMenuItem->setPosition(posBL + Point(menuSize.width / 2, menuSize.height / 2));
    
    Menu* pMenu = Menu::create(pBackItem, pMenuItem, nullptr);
    pMenu->setPosition(Point::ZERO);
    addChild(pMenu, 1);
    
    _testListView = TableView::create(this, visibleSize);
    _testListView->setDelegate(this);
    _testListView->setPosition(posBL);
    _testListView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
    
    addChild(_testListView);
    
    return true;
}
void StoreScene::showInGameMenuLayer() {
	Size winSize = Director::getInstance()->getWinSize();

	InGameMenuLayer* _inGameMenuLayer = InGameMenuLayer::create();
	addChild(_inGameMenuLayer);

	MenuItemFont *menuButton = MenuItemFont::create("Menu", this,menu_selector(StoreScene::menuButtonCallback));
	menuButton->setColor(Color3B(0,0,0));

	menuButton->setPosition(Point(winSize.width - menuButton->getContentSize().width, winSize.height - menuButton->getContentSize().height));

	Menu *pMenu = Menu::create(menuButton,NULL);
	pMenu->setPosition(Point::ZERO);

	_inGameMenuLayer->addChild(pMenu, 1);
}
예제 #16
0
bool PlayersSelectLayer::init()
{
    if (!Layer::init())
        return false;

    //return true;
    
    Size visibleSize = Director::sharedDirector()->getVisibleSize();
    Menu* menu = Menu::create();

    // Add all possibilities
    int position = 0;
    for(unsigned int i = 1; i <= 2; i++ )
    {
        std::string label = std::to_string(i);
        label += (i == 1) ? " Player" : " Players";

        ccMenuCallback callback = std::bind(&PlayersSelectLayer::newGame, this, this, i);

        MenuItemFont *newLevel = new MenuItemFont();
        newLevel->initWithString(
            label.c_str(),
            callback
        );
        newLevel->setPosition(ccp(0, position));
        menu->addChild(newLevel);
        position -= 50;
    }

    // Add menu to layer
    this->addChild(menu, 1);

    menu->setPosition(
        ccp(
            visibleSize.width/2,
            visibleSize.height - 100
        )
    );

    this->setTouchEnabled(true);

    return true;
}
예제 #17
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point 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
    MenuItemImage *pCloseItem = MenuItemImage::create(
                                                      "CloseNormal.png",
                                                      "CloseSelected.png",
                                                      CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    
    pCloseItem->setPosition(Point(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 ,
                                  origin.y + pCloseItem->getContentSize().height/2));
    
    // create menu, it's an autorelease object
    Menu* pMenu = Menu::create(pCloseItem, NULL);
    pMenu->setPosition(Point::ZERO);
    this->addChild(pMenu, 1);
    
    Point beginPos = Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height - 50);
    float step = 60.0f;
    int nCaseCount = sizeof(g_testCases) / sizeof(std::string);
    for (int i = 0; i < nCaseCount; ++i) {
        std::string caseName = g_testCases[i];
        MenuItemFont *pItem = MenuItemFont::create(caseName.c_str(), CC_CALLBACK_1(HelloWorld::menuCallback, this));
        pItem->setTag(i);
        pItem->setPosition(Point(beginPos.x, beginPos.y - i * step));
        pMenu->addChild(pItem);
    }
    return true;
}
예제 #18
0
파일: MenuScene.cpp 프로젝트: 110440/Tui-x
void MenuScene::onLoadScene()
{
	
	m_vMenuItems.push_back("Basic Test");

	Size tContainerSize = Size(700, 100 * m_vMenuItems.size());

	Layer* pScrollViewContainer = Layer::create();
	pScrollViewContainer->setPosition(Point::ZERO);
	pScrollViewContainer->setContentSize(tContainerSize);

	m_pScrollView = ScrollView::create(Size(700, 640));
	m_pScrollView->ignoreAnchorPointForPosition(false);
	m_pScrollView->setPosition(CCPoint(480, 320));
	m_pScrollView->setContainer(pScrollViewContainer);
	addChild(m_pScrollView);
	
	Vector<MenuItem *> vet;

	float height = tContainerSize.height;

	unsigned int i = 0;
	unsigned int end = m_vMenuItems.size();
	for(; i < end; ++i )
	{
		MenuItemFont* pFont = MenuItemFont::create(m_vMenuItems[i].c_str());
		pFont->setCallback(CC_CALLBACK_1(MenuScene::onClick,this));
		pFont->setFontSizeObj(45.0f);
		pFont->setPosition(Point(700 / 2, height - 100 / 2));
		pFont->setTag(i + 1);
		vet.pushBack(pFont);

		height -= 100;
	}

	Menu* pMenu = Menu::createWithArray(vet);
	pMenu->setPosition(Point(0,0));
	pScrollViewContainer->addChild(pMenu);

	m_pScrollView->setContentOffset(Point(0, -(tContainerSize.height - 640)));
	
}
예제 #19
0
void Picking::displayUI()
{
    eventHandler();

    displayHP();

    for (int i = 0; i < 4; i++)
    {
        m_glow[i] = Sprite::create("img/UI/battle/glow.png");
        m_glow[i]->setScale(m_Mag*0.5);
        m_glow[i]->setPosition(Vec2(m_visibleSize.width / 8 * (((i + 1) * 1.5) + 1), m_cards[1]->getPositionY()));
        m_glow[i]->setZOrder(2);
        m_glow[i]->setTag(5);
        m_instance->addChild(m_glow[i]);
    }

    //instructions to reshuffle
    instructions = Label::createWithTTF("いらないカードをシャッフルしよう!", "fonts/ant-maru.ttf", 55);
    instructions->enableOutline(Color4B::BLACK, 2);
    instructions->setPosition(Vec2(m_visibleSize.width / 2, m_visibleSize.height /2.4));
    m_instance->addChild(instructions);

    auto Label = Label::createWithTTF("<< Enemy Card", "fonts/arial.ttf", 25);
    Label->setColor(Color3B::RED);
    Label->enableOutline(Color4B::BLACK, 2);
    Label->setPosition(Vec2(m_enemyCard->getPosition().x * 0.9, m_enemyCard->getBoundingBox().getMaxY()));
    Label->setName("EnemyCard");
    //m_instance->addChild(Label);

    MenuItemFont::setFontSize(80);
    MenuItemFont* goItem = MenuItemFont::create("Go!", CC_CALLBACK_1(Picking::startBattle, this));
    auto label = Label::createWithTTF("GO!", "fonts/ant-maru.ttf", 60);
    label->enableOutline(Color4B::RED, 2);
    goItem->setLabel(label);
    goItem->setPosition(Vec2(m_visibleSize.width / 1.15, m_visibleSize.height / 2));

    m_menu = Menu::create(goItem, NULL);
    m_menu->setPosition(Point::ZERO);
    m_instance->addChild(m_menu);
}
예제 #20
0
cocos2d::Node* SceneEditorTestLayer::createGameScene()
{
    Node *pNode = SceneReader::getInstance()->createNodeWithSceneFile("scenetest/FishJoy2.json");
	if (pNode == NULL)
	{
		return NULL;
	}
	_curNode = pNode;
   
    MenuItemFont *itemBack = MenuItemFont::create("Back", CC_CALLBACK_1(SceneEditorTestLayer::toExtensionsMainLayer, this));
        itemBack->setColor(Color3B(255, 255, 255));
        itemBack->setPosition(Point(VisibleRect::rightBottom().x - 50, VisibleRect::rightBottom().y + 25));
        Menu *menuBack = Menu::create(itemBack, NULL);
        menuBack->setPosition(Point(0.0f, 0.0f));
		menuBack->setZOrder(4);

    pNode->addChild(menuBack);
    
    //ui action
	cocos2d::extension::ActionManagerEx::shareManager()->playActionByName("startMenu_1.json","Animation1");
    return pNode;
}
예제 #21
0
// on "init" you need to initialize your instance
bool TestSocial::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }

    MySocialManager::getInstance()->loadPlugins();

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();
    Point posMid = Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2);
    Point posBR = Point(origin.x + visibleSize.width, origin.y);

    MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestSocial::menuBackCallback, this));
    Size backSize = pBackItem->getContentSize();
    pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));

    // create menu, it's an autorelease object
    Menu* pMenu = Menu::create(pBackItem, NULL);
    pMenu->setPosition( Point::ZERO );

    LabelTTF* label1 = LabelTTF::create("Submit Score", "Arial", 28);
    MenuItemLabel* pItemSubmit = MenuItemLabel::create(label1, CC_CALLBACK_1(TestSocial::testSubmit, this));
    pItemSubmit->setAnchorPoint(Point(0.5f, 0));
    pMenu->addChild(pItemSubmit, 0);
    pItemSubmit->setPosition(posMid + Point(-140, -60));

    LabelTTF* label2 = LabelTTF::create("Unlock Achievement", "Arial", 28);
    MenuItemLabel* pItemUnlock = MenuItemLabel::create(label2, CC_CALLBACK_1(TestSocial::testUnlock, this));
    pItemUnlock->setAnchorPoint(Point(0.5f, 0));
    pMenu->addChild(pItemUnlock, 0);
    pItemUnlock->setPosition(posMid + Point(140, -60));

    LabelTTF* label3 = LabelTTF::create("Show Leaderboard", "Arial", 28);
    MenuItemLabel* pItemLeader = MenuItemLabel::create(label3, CC_CALLBACK_1(TestSocial::testLeaderboard, this));
    pItemLeader->setAnchorPoint(Point(0.5f, 0));
    pMenu->addChild(pItemLeader, 0);
    pItemLeader->setPosition(posMid + Point(-140, -120));

    LabelTTF* label4 = LabelTTF::create("Show Achievement", "Arial", 28);
    MenuItemLabel* pItemAchi = MenuItemLabel::create(label4, CC_CALLBACK_1(TestSocial::testAchievement, this));
    pItemAchi->setAnchorPoint(Point(0.5f, 0));
    pMenu->addChild(pItemAchi, 0);
    pItemAchi->setPosition(posMid + Point(140, -120));

    // create optional menu
    // cases item
    _caseItem = MenuItemToggle::createWithCallback(NULL,
                                                MenuItemFont::create( s_aTestCases[0].c_str() ),
                                                NULL );
    int caseLen = sizeof(s_aTestCases) / sizeof(std::string);
    for (int i = 1; i < caseLen; ++i)
    {
        _caseItem->getSubItems().pushBack( MenuItemFont::create( s_aTestCases[i].c_str() ) );
    }
    _caseItem->setPosition(posMid + Point(0, 120));
    pMenu->addChild(_caseItem);

    this->addChild(pMenu, 1);

    return true;
}
예제 #22
0
void UI::createLevelEditorUI()
{
	Size visibleSize = Director::getInstance()->getVisibleSize();
	auto labelMenuTitle = LabelTTF::create("Level Editor", "Segoe UI", 12);
	labelMenuTitle->setPosition(35.0f, visibleSize.height - 40.0f);
	m_pLevelEditor->addChild(labelMenuTitle);

	MenuItemImage* sidebarBackground = MenuItemImage::create("Resources/pictures/generic/ui_background.png", "ui_background.png", CC_CALLBACK_0(UI::nullCallback, this));
	sidebarBackground->setPosition(100.0f, visibleSize.height * 0.5f);
	sidebarBackground->setScale(200, visibleSize.height);

	MenuItemFont* addTextureObject = MenuItemFont::create("add texture", CC_CALLBACK_1(LevelEditor::addTextureObjectCallback, pLevelEditor));
	addTextureObject->setFontNameObj("Arial");
	addTextureObject->setFontSizeObj(30);
	addTextureObject->setPosition(80.0f, visibleSize.height - 80.0f);

	MenuItemFont* addGroundObject = MenuItemFont::create("add ground", CC_CALLBACK_1(LevelEditor::addGroundObjectCallback, pLevelEditor));
	addGroundObject->setFontNameObj("Arial");
	addGroundObject->setFontSizeObj(30);
	addGroundObject->setPosition(80.0f, visibleSize.height - 120.0f);

	MenuItemFont* addNutObject = MenuItemFont::create("add nut", CC_CALLBACK_1(LevelEditor::addNutObjectCallback, pLevelEditor));
	addNutObject->setFontNameObj("Arial");
	addNutObject->setFontSizeObj(30);
	addNutObject->setPosition(80.0f, visibleSize.height - 160.0f);

	MenuItemFont* addCrystalObject = MenuItemFont::create("add crystal", CC_CALLBACK_1(LevelEditor::addCrystalObjectCallback, pLevelEditor));
	addCrystalObject->setFontNameObj("Arial");
	addCrystalObject->setFontSizeObj(30);
	addCrystalObject->setPosition(80.0f, visibleSize.height - 200.0f);

	MenuItemFont* addAirObject = MenuItemFont::create("add aircurrent", CC_CALLBACK_1(LevelEditor::addAirObjectCallback, pLevelEditor));
	addAirObject->setFontNameObj("Arial");
	addAirObject->setFontSizeObj(30);
	addAirObject->setPosition(80.0f, visibleSize.height - 240.0f);

	MenuItemFont* changeLayerObject = MenuItemFont::create("mainLayer", CC_CALLBACK_0(LevelEditor::changeLayerCallback, pLevelEditor));
	changeLayerObject->setFontNameObj("Arial");
	changeLayerObject->setFontSizeObj(30);
	changeLayerObject->setPosition(73.0f, visibleSize.height - 280.0f);
	changeLayerObject->setTag(111);

	MenuItemFont* toggleGrid = MenuItemFont::create("snap to grid", CC_CALLBACK_0(LevelEditor::toggleGridCallback, pLevelEditor));
	toggleGrid->setFontNameObj("Arial");
	toggleGrid->setFontSizeObj(30);
	toggleGrid->setPosition(80.0f, visibleSize.height - 320.0f);
	toggleGrid->setTag(112);

	MenuItemFont* toggleSelectionMode = MenuItemFont::create("selection", CC_CALLBACK_0(LevelEditor::toggleSelectionMode, pLevelEditor));
	toggleSelectionMode->setFontNameObj("Arial");
	toggleSelectionMode->setFontSizeObj(30);
	toggleSelectionMode->setPosition(80.0f, visibleSize.height - 360.0f);
	toggleSelectionMode->setTag(113);

	MenuItemFont* saveLevelObject = MenuItemFont::create("save level", CC_CALLBACK_0(LevelEditor::saveLevelCallback, pLevelEditor));
	saveLevelObject->setFontNameObj("Arial");
	saveLevelObject->setFontSizeObj(30);
	saveLevelObject->setPosition(70.0f, visibleSize.height - 400.0f);

	MenuItemFont* mainMenuObject = MenuItemFont::create("Mainmenu", CC_CALLBACK_0(LevelEditor::mainMenuCallback, pLevelEditor));
	mainMenuObject->setFontNameObj("Arial");
	mainMenuObject->setFontSizeObj(30);
	mainMenuObject->setPosition(70.0f, visibleSize.height - 440.0f);

	auto menu = Menu::create(addTextureObject, addGroundObject, addNutObject, addCrystalObject, addAirObject, changeLayerObject, toggleSelectionMode, saveLevelObject, toggleGrid, mainMenuObject, NULL);
	auto menuBackground = Menu::create(sidebarBackground, NULL);
	menuBackground->setPosition(0, 0);
	menu->setPosition(0, 0);
	m_pLevelEditor->addChild(menu);
	m_pLevelEditor->addChild(menuBackground, -10);
	pLevelEditor->MainMenu = menu;
}
예제 #23
0
void LabelMainScene::initWithSubTest(int nodes)
{
    //srandom(0);
    auto s = Director::getInstance()->getWinSize();

    _lastRenderedCount = 0;
    _quantityNodes = 0;
    _accumulativeTime = 0.0f;

    _labelContainer = Layer::create();
    addChild(_labelContainer);

    MenuItemFont::setFontSize(65);
    auto decrease = MenuItemFont::create(" - ", CC_CALLBACK_1(LabelMainScene::onDecrease, this));
    decrease->setColor(Color3B(0,200,20));
    auto increase = MenuItemFont::create(" + ", CC_CALLBACK_1(LabelMainScene::onIncrease, this));
    increase->setColor(Color3B(0,200,20));

    auto menu = Menu::create(decrease, increase, NULL);
    menu->alignItemsHorizontally();
    menu->setPosition(Vec2(s.width/2, s.height-65));
    addChild(menu, 1);

    auto infoLabel = Label::createWithTTF("0 nodes", "fonts/Marker Felt.ttf", 30);
    infoLabel->setColor(Color3B(0,200,20));
    infoLabel->setPosition(Vec2(s.width/2, s.height-90));
    addChild(infoLabel, 1, kTagInfoLayer);

    // add menu
    auto menuLayer = new LabelMenuLayer(true, TEST_COUNT, LabelMainScene::_s_labelCurCase);
    addChild(menuLayer, 1, kTagMenuLayer);
    menuLayer->release();
    
    /**
     *  auto test menu
     */
    
    auto menuAutoTest = Menu::create();
    menuAutoTest->setPosition( Vec2::ZERO );
    MenuItemFont::setFontName("fonts/arial.ttf");
    MenuItemFont::setFontSize(24);
    
    MenuItemFont* autoTestItem = NULL;
    if (LabelMainScene::_s_autoTest)
    {
        autoTestItem = MenuItemFont::create("Auto Test On",CC_CALLBACK_1(LabelMainScene::onAutoTest, this));
    }
    else
    {
        autoTestItem = MenuItemFont::create("Auto Test Off",CC_CALLBACK_1(LabelMainScene::onAutoTest, this));
    }
    autoTestItem->setTag(1);
    autoTestItem->setPosition(Vec2( s.width - 90, s.height / 2));
    autoTestItem->setColor(Color3B::RED);
    menuAutoTest->addChild(autoTestItem);
    addChild( menuAutoTest, 3, kTagAutoTestMenu );
    
    _title = Label::createWithTTF(title().c_str(), "fonts/arial.ttf", 32);
    addChild(_title, 1);
    _title->setPosition(Vec2(s.width/2, s.height-50));

    while(_quantityNodes < nodes)
        onIncrease(this);
}
예제 #24
0
bool LevelSelectLayer::init()
{
    if (!Layer::init())
        return false;

    // map filenames to level names
    _levelNameMap["00.tmx"] = "0. Test Level";
    _levelNameMap["01.tmx"] = "1. Test Level";
    _levelNameMap["02.tmx"] = "2. Test Level";
    _levelNameMap["03.tmx"] = "3. Test Level";

    Size visibleSize = Director::sharedDirector()->getVisibleSize();
    Menu* menu = Menu::create();

    // Scan directory
    DIR *dp;
    struct dirent *ep;

    std::vector<std::string> files;

    std::vector<std::string> dirs;
    dirs.push_back("../Resources/levels");
    dirs.push_back("./Resources/levels");
    dirs.push_back("./levels");

    for (auto path : dirs)
    {
        std::cout << "Searching for levels in " << path << std::endl;

        dp = opendir(path.c_str());
        if (dp != NULL)
        {
            while (ep = readdir(dp))
            {
                std::string name(ep->d_name);

                // Must contain .tmx and must not be dir or hidden file
                if (name[0] != '.' && name.find(".tmx") != std::string::npos)
                    files.push_back(name);
            }
            (void) closedir(dp);
            std::sort(files.begin(), files.end());
        }

        if (files.size() > 0)
        {
            std::cout << "Directory OK!" << std::endl;
            break;
        }
    }

    if (files.size() == 0)
    {
        std::cerr << "Couldn't open the directory containing maps!" << std::endl;
    }

    int position = 0;

    Bomber::Common::XMLStorage *storage = Bomber::Common::XMLStorage::getInstance();

    for (auto filename : files)
    {
        if (_levelNameMap.count(filename) == 0)
        {
            std::cerr << "Not defined name for " << filename << std::endl;
            //continue;
            _levelNameMap[filename] = "Not defined name for " + filename;
        }

        ccMenuCallback callback = std::bind(&LevelSelectLayer::playersSelect, this, this, filename);

        MenuItemFont *newLevel = new MenuItemFont();

        std::string nameToDisplay(_levelNameMap[filename]);

        if (storage->get("level_status", filename) != "")
        {
            nameToDisplay += " - ";
            nameToDisplay += storage->get("level_status", filename);
        }

        newLevel->initWithString(
            nameToDisplay.c_str(),
            callback
        );
        newLevel->setPosition(ccp(0, position));
        menu->addChild(newLevel);
        position -= 50;
    }

    this->addChild(menu, 1);

    menu->setPosition(
        ccp(
            visibleSize.width/2,
            visibleSize.height - 100
        )
    );

    this->setTouchEnabled(true);
    this->setKeyboardEnabled(true);

    return true;
}
SocketIOTestLayer::SocketIOTestLayer(void)
	: _sioClient(NULL)
	, _sioEndpoint(NULL)
{
	//set the clients to NULL until we are ready to connect

	Size winSize = Director::getInstance()->getWinSize();
    
    const int MARGIN = 40;
    const int SPACE = 35;
    
    LabelTTF *label = LabelTTF::create("SocketIO Extension Test", "Arial", 28);
    label->setPosition(Point(winSize.width / 2, winSize.height - MARGIN));
    addChild(label, 0);
    	
    Menu *menuRequest = Menu::create();
    menuRequest->setPosition(Point::ZERO);
    addChild(menuRequest);
    
    // Test to create basic client in the default namespace
    LabelTTF *labelSIOClient = LabelTTF::create("Open SocketIO Client", "Arial", 22);
    MenuItemLabel *itemSIOClient = MenuItemLabel::create(labelSIOClient, CC_CALLBACK_1(SocketIOTestLayer::onMenuSIOClientClicked, this));
	itemSIOClient->setPosition(Point(VisibleRect::left().x + labelSIOClient->getContentSize().width / 2 + 5, winSize.height - MARGIN - SPACE));
    menuRequest->addChild(itemSIOClient);

	// Test to create a client at the endpoint '/testpoint'
    LabelTTF *labelSIOEndpoint = LabelTTF::create("Open SocketIO Endpoint", "Arial", 22);
    MenuItemLabel *itemSIOEndpoint = MenuItemLabel::create(labelSIOEndpoint, CC_CALLBACK_1(SocketIOTestLayer::onMenuSIOEndpointClicked, this));
	itemSIOEndpoint->setPosition(Point(VisibleRect::right().x - labelSIOEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - SPACE));
    menuRequest->addChild(itemSIOEndpoint);

	// Test sending message to default namespace
    LabelTTF *labelTestMessage = LabelTTF::create("Send Test Message", "Arial", 22);
    MenuItemLabel *itemTestMessage = MenuItemLabel::create(labelTestMessage, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestMessageClicked, this));
    itemTestMessage->setPosition(Point(VisibleRect::left().x + labelTestMessage->getContentSize().width / 2 + 5, winSize.height - MARGIN - 2 * SPACE));
    menuRequest->addChild(itemTestMessage);

	// Test sending message to the endpoint '/testpoint'
    LabelTTF *labelTestMessageEndpoint = LabelTTF::create("Test Endpoint Message", "Arial", 22);
    MenuItemLabel *itemTestMessageEndpoint = MenuItemLabel::create(labelTestMessageEndpoint, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestMessageEndpointClicked, this));
    itemTestMessageEndpoint->setPosition(Point(VisibleRect::right().x - labelTestMessageEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - 2 * SPACE));
    menuRequest->addChild(itemTestMessageEndpoint);

	// Test sending event 'echotest' to default namespace
    LabelTTF *labelTestEvent = LabelTTF::create("Send Test Event", "Arial", 22);
    MenuItemLabel *itemTestEvent = MenuItemLabel::create(labelTestEvent, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestEventClicked, this));
    itemTestEvent->setPosition(Point(VisibleRect::left().x + labelTestEvent->getContentSize().width / 2 + 5, winSize.height - MARGIN - 3 * SPACE));
    menuRequest->addChild(itemTestEvent);

	// Test sending event 'echotest' to the endpoint '/testpoint'
    LabelTTF *labelTestEventEndpoint = LabelTTF::create("Test Endpoint Event", "Arial", 22);
    MenuItemLabel *itemTestEventEndpoint = MenuItemLabel::create(labelTestEventEndpoint, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestEventEndpointClicked, this));
    itemTestEventEndpoint->setPosition(Point(VisibleRect::right().x - labelTestEventEndpoint->getContentSize().width / 2 - 5, winSize.height - MARGIN - 3 * SPACE));
    menuRequest->addChild(itemTestEventEndpoint);

	// Test disconnecting basic client
    LabelTTF *labelTestClientDisconnect = LabelTTF::create("Disconnect Socket", "Arial", 22);
    MenuItemLabel *itemClientDisconnect = MenuItemLabel::create(labelTestClientDisconnect, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestClientDisconnectClicked, this));
    itemClientDisconnect->setPosition(Point(VisibleRect::left().x + labelTestClientDisconnect->getContentSize().width / 2 + 5, winSize.height - MARGIN - 4 * SPACE));
    menuRequest->addChild(itemClientDisconnect);

	// Test disconnecting the endpoint '/testpoint'
    LabelTTF *labelTestEndpointDisconnect = LabelTTF::create("Disconnect Endpoint", "Arial", 22);
    MenuItemLabel *itemTestEndpointDisconnect = MenuItemLabel::create(labelTestEndpointDisconnect, CC_CALLBACK_1(SocketIOTestLayer::onMenuTestEndpointDisconnectClicked, this));
    itemTestEndpointDisconnect->setPosition(Point(VisibleRect::right().x - labelTestEndpointDisconnect->getContentSize().width / 2 - 5, winSize.height - MARGIN - 4 * SPACE));
    menuRequest->addChild(itemTestEndpointDisconnect);
    
	// Sahred Status Label
    _sioClientStatus = LabelTTF::create("Not connected...", "Arial", 14, Size(320, 100), Label::HAlignment::LEFT);
    _sioClientStatus->setAnchorPoint(Point(0, 0));
    _sioClientStatus->setPosition(Point(VisibleRect::left().x, VisibleRect::rightBottom().y));
    this->addChild(_sioClientStatus);

	// Back Menu
    MenuItemFont *itemBack = MenuItemFont::create("Back", CC_CALLBACK_1(SocketIOTestLayer::toExtensionsMainLayer, this));
    itemBack->setPosition(Point(VisibleRect::rightBottom().x - 50, VisibleRect::rightBottom().y + 25));
    Menu *menuBack = Menu::create(itemBack, NULL);
    menuBack->setPosition(Point::ZERO);
    addChild(menuBack);

}
예제 #26
0
void SpriteMainScene::initWithSubTest(int asubtest, int nNodes)
{
    //srandom(0);

    subtestNumber = asubtest;
    _subTest = new SubTest;
    _subTest->initWithSubTest(asubtest, this);

    auto s = Director::getInstance()->getWinSize();

    lastRenderedCount = 0;
    quantityNodes = 0;

    MenuItemFont::setFontSize(65);
    auto decrease = MenuItemFont::create(" - ", CC_CALLBACK_1(SpriteMainScene::onDecrease, this));
    decrease->setColor(Color3B(0,200,20));
    auto increase = MenuItemFont::create(" + ", CC_CALLBACK_1(SpriteMainScene::onIncrease, this));
    increase->setColor(Color3B(0,200,20));

    auto menu = Menu::create(decrease, increase, NULL);
    menu->alignItemsHorizontally();
    menu->setPosition(Point(s.width/2, s.height-65));
    addChild(menu, 1);

    auto infoLabel = LabelTTF::create("0 nodes", "Marker Felt", 30);
    infoLabel->setColor(Color3B(0,200,20));
    infoLabel->setPosition(Point(s.width/2, s.height-90));
    addChild(infoLabel, 1, kTagInfoLayer);

    // add menu
    auto menuLayer = new SpriteMenuLayer(true, TEST_COUNT, SpriteMainScene::_s_nSpriteCurCase);
    addChild(menuLayer, 1, kTagMenuLayer);
    menuLayer->release();
    
    /**
     *  auto test menu
     */
    
    auto menuAutoTest = Menu::create();
    menuAutoTest->setPosition( Point::ZERO );
    MenuItemFont::setFontName("Arial");
    MenuItemFont::setFontSize(24);
    
    MenuItemFont* autoTestItem = NULL;
    if (SpriteMainScene::_s_autoTest)
    {
        autoTestItem = MenuItemFont::create("Auto Test On",CC_CALLBACK_1(SpriteMainScene::onAutoTest, this));
    }
    else
    {
        autoTestItem = MenuItemFont::create("Auto Test Off",CC_CALLBACK_1(SpriteMainScene::onAutoTest, this));
    }
    autoTestItem->setTag(1);
    autoTestItem->setPosition(Point( s.width - 90, s.height / 2));
    menuAutoTest->addChild(autoTestItem);
    addChild( menuAutoTest, 3, kTagAutoTestMenu );
    
    // Sub Tests
    MenuItemFont::setFontSize(28);
    auto subMenu = Menu::create();
    for (int i = 1; i <= 13; ++i)
    {
        char str[10] = {0};
        sprintf(str, "%d ", i);
        auto itemFont = MenuItemFont::create(str, CC_CALLBACK_1(SpriteMainScene::testNCallback, this));
        itemFont->setTag(i);
        subMenu->addChild(itemFont, 10);

        if( i<= 4)
            itemFont->setColor(Color3B(200,20,20));
        else if(i <= 8)
            itemFont->setColor(Color3B(0,200,20));
        else if( i<=12)
            itemFont->setColor(Color3B(0,20,200));
        else
            itemFont->setColor(Color3B::GRAY);
    }

    subMenu->alignItemsHorizontally();
    subMenu->setPosition(Point(s.width/2, 80));
    addChild(subMenu, 2);

    // add title label
    auto label = LabelTTF::create(title(), "Arial", 40);
    addChild(label, 1);
    label->setPosition(Point(s.width/2, s.height-32));
    label->setColor(Color3B(255,255,40));


    // subtitle
    std::string strSubtitle = subtitle();
    if( ! strSubtitle.empty() )
    {
        auto l = LabelTTF::create(strSubtitle.c_str(), "Thonburi", 16);
        addChild(l, 9999);
        l->setPosition( Point(VisibleRect::center().x, VisibleRect::top().y - 60) );
    }

    while(quantityNodes < nNodes)
        onIncrease(this);
}
bool TestFragmentEffect::init()
{
    if ( !TestBase::init() )
    {
        return false;
    }
    
    //都是菜单设置,可以不看
	MenuItemFont* MIF0 = MenuItemFont::create("ES_NONE");
	MIF0->setColor(Color3B::RED);
	MIF0->setTag(0);
	MenuItemFont* MIF1 = MenuItemFont::create("ES_BLACK_AND_WHITE");
	MIF1->setColor(Color3B::RED);
	MIF1->setTag(0);
	MenuItemFont* MIF2 = MenuItemFont::create("ES_OLD_PHOTOS");
	MIF2->setColor(Color3B::RED);
	MIF2->setTag(0);
	MenuItemFont* MIF3 = MenuItemFont::create("ES_INVERT");
	MIF3->setColor(Color3B::RED);
	MIF3->setTag(0);
	MenuItemFont* MIF4 = MenuItemFont::create("ES_BURNS");
	MIF4->setColor(Color3B::RED);
	MIF4->setTag(0);
	MenuItemFont* MIF5 = MenuItemFont::create("ES_POISONING");
	MIF5->setColor(Color3B::RED);
	MIF5->setTag(0);
	MenuItemFont* MIF6 = MenuItemFont::create("ES_COLD");
	MIF6->setColor(Color3B::RED);
	MIF6->setTag(0);
	MenuItemFont* MIF7 = MenuItemFont::create("ES_USER_DEFINED");
	MIF7->setColor(Color3B::RED);
	MIF7->setTag(0);
	m_sel = MenuItemToggle::createWithCallback(CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this),MIF0,MIF1,MIF2,MIF3,MIF4,MIF5,MIF6,MIF7,NULL);

	m_sel->setTag(0);
	m_sel->setAnchorPoint(Vec2(0.5f,1.0f));
	m_sel->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
							m_visibleOrigin.y + m_visibleSize.height - 7));
	
	MenuItemImage* last = MenuItemImage::create("FragmentEffect/lastNor.png","FragmentEffect/lastCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this));
	last->setTag(-1);
	last->setAnchorPoint(Vec2(0.5f,1.0f));
	last->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 1,
						   m_visibleOrigin.y + m_visibleSize.height));

	MenuItemImage* next = MenuItemImage::create("FragmentEffect/nextNor.png","FragmentEffect/nextCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this));
	next->setTag(1);
	next->setAnchorPoint(Vec2(0.5f,1.0f));
	next->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 9, 
						   m_visibleOrigin.y + m_visibleSize.height));

	MenuItemFont* UDF = MenuItemFont::create("goto ES_USER_DEFINED",CC_CALLBACK_1(TestFragmentEffect::gotoUserDefine,this));
	UDF->setColor(Color3B::RED);
	UDF->setTag(0);
	UDF->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
						  m_visibleOrigin.y + m_visibleSize.height - 50.0f));

    Menu* pMenu = Menu::create(m_sel,last,next,UDF,NULL);
	pMenu->setPosition(Vec2::ZERO);
    this->addChild(pMenu, 1);


    m_bgSprite = Sprite::create("FragmentEffect/HelloWorld.png");
    m_bgSprite->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
								 m_visibleOrigin.y + m_visibleSize.height / 2));
    this->addChild(m_bgSprite, 0);
	
	//加载骨骼动画
	ArmatureDataManager::getInstance()->addArmatureFileInfo("FragmentEffect/Hero0.png","FragmentEffect/Hero0.plist","FragmentEffect/Hero.ExportJson");
	m_armature = Armature::create("Hero");
	m_armature->getAnimation()->playWithIndex(0);
	m_armature->setPosition(Vec2(m_visibleOrigin.x+m_visibleSize.width/2, 0.0f));
	m_armature->setAnchorPoint(Vec2(0.5f,0.0f));
	this->addChild(m_armature,1);

	//淡出淡入这样的动作依然可以使用
	m_armature->runAction(Sequence::create(FadeOut::create(0.5f),FadeIn::create(0.5f),0));

	//就这几句是设置效果的,toggleCallback 和 gotoUserDefine方法里面也有
	m_indexSprite   = FragmentEffect::getInstance()->addEffectNode(m_bgSprite); //m_indexSprite接收返回的序号,setEffect 和 getEffectSelect 的时候使用
	m_indexArmature = FragmentEffect::getInstance()->addEffectNode(m_armature); //m_indexArmature接收返回的序号,setEffect 和 getEffectSelect 的时候使用


	float f[] = {
		0.5f,0.0f,0.0f,0.0f,
		0.0f,0.5f,0.0f,0.0f,
		0.0f,0.0f,0.5f,0.0f,
		0.0f,0.0f,0.0f,0.5f
	};
	FragmentEffect::getInstance()->addEffectMatrix(Mat4(f));//增加自定义特效矩阵,序号从 ES_USER_DEFINED 开始增加

    return true;
}
//一些菜单的设置不看也可以,与地图相关的操作在okCallback里面
void HelloWorld::createInitMenu()
{
	Size visibleSize = Director::getInstance()->getVisibleSize();

	m_setLayer = Layer::create();
	this->addChild(m_setLayer);

	//方向设置
	Vector<MenuItem*> dirItemFronts;
	dirItemFronts.pushBack(MenuItemFont::create("Right to Left"));
	dirItemFronts.pushBack(MenuItemFont::create("Left to Right"));
	dirItemFronts.pushBack(MenuItemFont::create("Top to Bottom"));
	dirItemFronts.pushBack(MenuItemFont::create("Bottom to Top"));
	m_dirSelItem = MenuItemToggle::createWithCallback(
		CC_CALLBACK_1(HelloWorld::toggleCallback,this),
        dirItemFronts);

	m_dirSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_dirSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/4*3));

    MenuItemImage *nextDir = MenuItemImage::create(
                                        "nextNor.png",
                                        "nextCli.png",
                                        CC_CALLBACK_1(HelloWorld::dirChangeCallback,this));

	nextDir->setTag(1);
	nextDir->setAnchorPoint(Vec2(0.5f,0.5f));
	nextDir->setPosition(Vec2(visibleSize.width/6*5,
                             visibleSize.height/4*3));

	MenuItemImage *lastDir = MenuItemImage::create(
                                        "lastNor.png",
                                        "lastCli.png",
                                        CC_CALLBACK_1(HelloWorld::dirChangeCallback,this));
	lastDir->setTag(-1);
	lastDir->setAnchorPoint(Vec2(0.5f,0.5f));
	lastDir->setPosition(Vec2(visibleSize.width/6,
                             visibleSize.height/4*3));



   //模式设置
	Vector<MenuItem*> modeItemFronts;
	modeItemFronts.pushBack(MenuItemFont::create("Loop Mode"));
	modeItemFronts.pushBack(MenuItemFont::create("Drop Mode"));
	m_modeSelItem = MenuItemToggle::createWithCallback(
	   CC_CALLBACK_1(HelloWorld::toggleCallback,this),
       modeItemFronts);

	m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_modeSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/3));

	m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_modeSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/2));

	MenuItemImage *nextMode = MenuItemImage::create(
                                        "nextNor.png",
                                        "nextCli.png",
                                        CC_CALLBACK_1(HelloWorld::modeChangeCallback,this));
	nextMode->setTag(1);
	nextMode->setAnchorPoint(Vec2(0.5f,0.5f));
	nextMode->setPosition(Vec2(visibleSize.width/6*5,
                             visibleSize.height/2));

	MenuItemImage *lastMode = MenuItemImage::create(
                                        "lastNor.png",
                                        "lastCli.png",
                                        CC_CALLBACK_1(HelloWorld::modeChangeCallback,this));
	lastMode->setTag(-1);
	lastMode->setAnchorPoint(Vec2(0.5f,0.5f));
	lastMode->setPosition(Vec2(visibleSize.width/6,
                             visibleSize.height/2));

	MenuItemFont* pOK = MenuItemFont::create("OK",CC_CALLBACK_1(HelloWorld::okCallback,this));
	pOK->setPosition(Vec2(visibleSize.width/3,visibleSize.height/4));

	MenuItemFont* pQuit = MenuItemFont::create("Quit",CC_CALLBACK_1(HelloWorld::quitCallback,this));
	pQuit->setPosition(Vec2(visibleSize.width/3*2,visibleSize.height/4));

	Menu* pMenu = Menu::create(lastDir,m_dirSelItem,nextDir,lastMode,m_modeSelItem,nextMode,pOK,pQuit,NULL);
	pMenu->setPosition(Vec2::ZERO);

    m_setLayer->addChild(pMenu);

	m_bg = 0;
}
void HelloWorld::okCallback(Ref* pSender)
{
	if(!m_bg)
	{
		m_runLayer = Layer::create();
		this->addChild(m_runLayer);

		int dirSel = m_dirSelItem->getSelectedIndex();
		switch (dirSel)
		{
		case 0:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_RIGHT_TO_LEFT);
			m_direction = ScrollDirection::SD_RIGHT_TO_LEFT;
			break;
		case 1:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_LEFT_TO_RIGHT);
			m_direction = ScrollDirection::SD_LEFT_TO_RIGHT;
			break;
		case 2:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_TOP_TO_BOTTOM);
			m_direction = ScrollDirection::SD_TOP_TO_BOTTOM;
			break;
		case 3:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_BOTTOM_TO_TOP);
			m_direction = ScrollDirection::SD_BOTTOM_TO_TOP;
			break;
		default:
			break;
		}

		m_runLayer->addChild(m_bg,1);

		for (int i = 1; i < 5; i++)
		{
			addBgSprite(i);
		}

		/*
		//当有一个背景精灵彻底离开屏幕的时候的消息,两种方式
		if(m_modeSelItem->getSelectedIndex()==0)
			m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::loopBgChangeCallback)); //循环模式
		else
			m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::dropBgChangeCallback)); //丢弃模式
		*/
		//当有一个背景精灵彻底离开屏幕的时候的消息,两种方式
		if(m_modeSelItem->getSelectedIndex()==0)
			m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::loopBgChangeCallback,this)); //循环模式
		else
			m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::dropBgChangeCallback,this)); //丢弃模式

		/*
		//当背景精灵移动时候的消息,两种方式
		m_bg->setBgMoveEventListener(this,bgSpriteMoveEvent(HelloWorld::bgMoveCallback));
		*/
		//当背景精灵移动时候的消息,两种方式
		m_bg->setBgMoveEventListener(CC_CALLBACK_2(HelloWorld::bgMoveCallback,this));

		m_velocity = 300.0f;
		m_bgSprite = m_bg->getCurBgSprite();
		m_bg->beginContinuousScroll(m_velocity);

		//一个跟随背景移动的物体
		m_pItem = Sprite::create("item.png");
		m_pItem->setAnchorPoint(Vec2(0.5f,0.5f));
		m_pItem->setPosition(Vec2(0.0f,0.0f));
		m_runLayer->addChild(m_pItem,2);

		//pItem锚点一直都是(0.5,0.5),坐标一直是(0.0,0.0),注意看当画面切换的时候他会出现在哪里
		//背景精灵精灵的锚点不同,会影响pItem的位置
		m_pItem->setPosition(m_bg->getCurBgSprite()->getPosition());
		




		/*下面的是一些菜单的设置,不看也可以*/
		Size visibleSize = Director::getInstance()->getVisibleSize();

		//返回按钮
		MenuItemFont* back = MenuItemFont::create("back",CC_CALLBACK_1(HelloWorld::backCallback,this));
		back->setAnchorPoint(Vec2(1.0f,1.0f));
		back->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f));

		//设置相反速度的按钮
		MenuItemFont* reverse = MenuItemFont::create("reverse",CC_CALLBACK_1(HelloWorld::reverseCallback,this));

		//暂停
		MenuItemToggle* pause = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::pauseCallback,this),
																	MenuItemFont::create("pause"),
																	MenuItemFont::create("resume"),
																	NULL);
		pause->setPosition(Vec2(0.0f,50.0f));

		//上一个画面
		MenuItemImage* lastBg = MenuItemImage::create("lastBgNor.png","lastBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this));
		lastBg->setTag(0);
		lastBg->setAnchorPoint(Vec2(0.0f,0.5f));
		lastBg->setPosition(Vec2(-visibleSize.width/2.0f,0.0f));

		//下一个画面
		MenuItemImage* nextBg = MenuItemImage::create("NextBgNor.png","NextBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this));
		nextBg->setTag(1);
		nextBg->setAnchorPoint(Vec2(1.0f,0.5f));
		nextBg->setPosition(Vec2(visibleSize.width/2.0f,0.0f));

		//增加背景精灵
		MenuItemFont* add = MenuItemFont::create("add background",CC_CALLBACK_1(HelloWorld::addBgSpriteCallback,this));
		add->setPosition(Vec2(0.0f,-50.0f));

		Menu* pMenu = Menu::create(pause,reverse,add,lastBg,nextBg,back,NULL);
		pMenu->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f));
		m_runLayer->addChild(pMenu,3);

		//文字提示:
		Color3B color(255,0,0);
		m_itemTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_itemTipsLabel->setColor(color);
		m_itemTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_itemTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/6.0f));
		m_runLayer->addChild(m_itemTipsLabel,3);

		m_numBgLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_numBgLabel->setColor(color);
		m_numBgLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_numBgLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f));
		m_runLayer->addChild(m_numBgLabel,3);

		
		m_addTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_addTipsLabel->setColor(color);
		m_addTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_addTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f*9.0f));
		m_addTipsLabel->setString("");
		m_runLayer->addChild(m_addTipsLabel,3);

		setTextTips(m_bg->getCurBgSprite());

		this->removeChild(m_setLayer);
		m_setLayer = 0;
	}
}
예제 #30
0
void DialogLayer::showDialogLayer(Layer *layer, String title, String leftString, SEL_MenuHandler leftHandler, String rightString, SEL_MenuHandler rightHandler, DialogLayer::STATUS status) {
	if (dialogLayer != NULL) {
		dialogLayer->removeFromParentAndCleanup(true);
		//dialogLayer = NULL;
	}

	dialogLayer = DialogLayer::create();

	Size winSize = Director::getInstance()->getWinSize();

	
	
	LabelTTF *label = LabelTTF::create(title.getCString(), "", 48);
	label->setPosition(ccp(winSize.width / 2, winSize.height / 2 + 50));
	dialogLayer->addChild(label);

	MenuItemFont *leftMenuItem;
	MenuItemFont *rightMenuItem;
	Menu * m_pMenu = dialogLayer->getMenu();

	if (leftHandler != NULL) {
		leftMenuItem = MenuItemFont::create(leftString.getCString(), dialogLayer, leftHandler);
		leftMenuItem->setPosition(Point(winSize.width / 2 - 100, winSize.height / 2 - 50));
		m_pMenu->addChild(leftMenuItem);
	}
	if (rightHandler != NULL) {
		rightMenuItem = MenuItemFont::create(rightString.getCString(), dialogLayer, rightHandler);
		rightMenuItem->setPosition(Point(winSize.width / 2 + 100, winSize.height / 2 - 50));
		m_pMenu->addChild(rightMenuItem);
	}
	m_pMenu->setPosition(Point::ZERO);
	dialogLayer->addChild(m_pMenu);
	
	Sprite *sprite_win;

	switch (status) {
	case DialogLayer::STATUS::WIN:
		sprite_win = Sprite::create("layers/win.png");
		sprite_win->setPosition(Point(winSize.width / 2, winSize.height / 2 + 200));
		dialogLayer->addChild(sprite_win, 2);
		break;
	case DialogLayer::STATUS::FAIL:
		sprite_win = Sprite::create("layers/fail.png");
		sprite_win->setPosition(Point(winSize.width / 2, winSize.height / 2 + 200));
		dialogLayer->addChild(sprite_win, 2);
		break;
	case DialogLayer::STATUS::NONE:
		break;
	default:
		break;
	}
	
	
	EventListenerTouchOneByOne * listener = EventListenerTouchOneByOne::create();
	listener->onTouchBegan = [](Touch *, Event *)
	{
		return true;
	};
	listener->setSwallowTouches(true);
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, dialogLayer);

	layer->addChild(dialogLayer, 10);
	//layer->getKeyboardListener();
	Director::getInstance()->getEventDispatcher()->pauseEventListenersForTarget(layer);
}