Exemplo n.º 1
0
// on "init" you need to initialize your instance
bool MainScene::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    auto keyboardListener = EventListenerKeyboard::create();
    keyboardListener->onKeyPressed = CC_CALLBACK_2(MainScene::keyPressed, this);
    keyboardListener->onKeyReleased = CC_CALLBACK_2(MainScene::keyReleased, this);
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(keyboardListener, this);

    /////////////////////////////
    // 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(MainScene::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 = LabelTTF::create("Hello World", "Arial", 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 minSize = ::std::min(visibleSize.width, visibleSize.height);
    auto fieldSize = minSize * 0.8;

    auto layerColorBG = LayerColor::create(Color4B(200, 190, 180, 255), fieldSize, fieldSize);
    layerColorBG->setPosition(Vec2(origin.x + visibleSize.width/2 - fieldSize/2,
            origin.y + visibleSize.height/2 - fieldSize/2));
    this->addChild(layerColorBG);

    auto size = board_.size();
    cells_.assign(size, ::std::vector<UiCell>(size, UiCell()));

    const auto cellsProportion = 0.90;
    auto cellSize = fieldSize * cellsProportion / size;
    auto cellMargin = fieldSize * (1 - cellsProportion) / (size + 1);
    for (auto i = 0; i < size; ++i) {
        for (auto j = 0; j < size; ++j) {
            auto cellPos = Vec2(cellMargin + j * (cellSize + cellMargin),
                    fieldSize - cellMargin - cellSize - i * (cellSize + cellMargin));

            auto layerCell = LayerColor::create(Color4B(180, 190, 200, 255), cellSize, cellSize);
            layerCell->setPosition(cellPos);
            layerColorBG->addChild(layerCell);

            layerCell = LayerColor::create(Color4B(190, 200, 180, 0), cellSize, cellSize);
            layerCell->setPosition(cellPos);
            layerColorBG->addChild(layerCell);

            auto label = LabelTTF::create("", "Arial", 48);
            label->setPosition(Vec2(cellSize/2, cellSize/2));

            layerCell->addChild(label);

            cells_[i][j] = { layerCell, label };
        }
    }

    board_.spawnNew();
    board_.spawnNew();
    
    return true;
}
// 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();

    // TiledMapEditorで生成したマップを表示する
    _map = TMXTiledMap::create("TMX/stage1.tmx");
    _mapLayer = _map->getLayer("layer1");

    // マップのサイズ
    Size mapSize = Size(_map->getTileSize().width  * _map->getMapSize().width,
                        _map->getTileSize().height * _map->getMapSize().height);

    // スクロールビュー
    ScrollView *scrollView = ScrollView::create(mapSize*3);
    scrollView->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
    scrollView->setPosition(Vec2(100, 100));
    scrollView->setMaxScale(5.0f);
    scrollView->setBounceable(false);
    scrollView->setContentSize(mapSize*3);
    this->addChild(scrollView);

    // 中のレイヤー
    Layer *innerLayer = Layer::create();
    scrollView->addChild(innerLayer);

    // スクロールビューの背景
    Sprite *sprite = Sprite::create();
    sprite->setTextureRect(Rect(0, 0, scrollView->getContentSize().width, scrollView->getContentSize().height));
    sprite->setColor(Color3B(230,230,230));
    sprite->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
    innerLayer->addChild(sprite);

    // マップを表示
    _map->setScale(3);
    innerLayer->addChild(_map);

    // キャラクターを表示
    _character = Sprite::create("TMX/character.png");
    _character->setAnchorPoint(Vec2(0.5f, 0.25f));
    _charaPos = Vec2(0, 0);
    _character->setPosition(_mapLayer->getPositionAt(_charaPos) + _map->getTileSize()/2);
    _map->addChild(_character);

    // サイコロボタン
    _isMoving = false;
    MenuItemLabel *dice = MenuItemLabel::create(Label::createWithSystemFont("サイコロ", "arial", 30.0f),
                          CC_CALLBACK_1(HelloWorld::dice, this));
    dice->setPosition(Vec2(600, 0));
    this->addChild(Menu::create(dice, NULL));

    // サイコロの目
    Label *pips = Label::createWithSystemFont("-", "arial", 30.0f);
    pips->setPosition(Vec2(1200, 300));
    pips->setTag(10);
    this->addChild(pips);

    return true;
}
Exemplo n.º 3
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();

	auto listener = EventListenerTouchOneByOne::create();
	listener->setSwallowTouches(true);

	listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
	listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);

	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);

	/////////////////////////////
	// 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 = LabelTTF::create("Hello World", "Arial", 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);

	player = Player::create();
	player->setPosition(Vec2(origin.x + visibleSize.width / 2
			, origin.y + visibleSize.height / 2));
	this->addChild(player, 5);

	this->scheduleUpdate();

	return true;
}
Exemplo n.º 4
0
// on "init" you need to initialize your instance
bool Practice1::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(Practice1::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...
	auto label = Label::createWithTTF("練習シーン1", "fonts/07やさしさゴシック.ttf", 24);
	label->setAnchorPoint(Vec2(0.0f, 0.0f));
	label->setPosition(origin.x, origin.y + visibleSize.height);
	this->addChild(label);

	nowCount = Label::createWithTTF("現在のカウント:    0", "fonts/07やさしさゴシック.ttf", 24);
	nowCount->setPosition(origin.x + visibleSize.width/2, origin.y + visibleSize.height/2);
	this->addChild(nowCount);
	count = 0;

	// add this scene to update schedule
	//this->scheduleUpdate();
	//this->schedule(schedule_selector(Practice1::updateByTimer), 1.0f);

	// create field
	// 空のスプライトを用意
	float fieldWidth = visibleSize.width / 2;
	float fieldHeight = visibleSize.height + 100.0f;
	float fieldBlockWidth = fieldWidth / 8;
	const int fieldObjectNumber = 3;
	Rect fieldSizes[fieldObjectNumber] = {
		{ 0, 0, fieldBlockWidth, fieldHeight },
		{ 0, 0, fieldWidth, fieldBlockWidth },
		{ 0, 0, fieldBlockWidth, fieldHeight },
	};
	Point fieldPoints[fieldObjectNumber] = {
		{ origin.x + visibleSize.width / 2 - fieldWidth/2 - fieldBlockWidth, origin.x + visibleSize.height },
		{ origin.x + visibleSize.width / 2 - fieldWidth / 2, origin.x + visibleSize.height },
		{ origin.x + visibleSize.width / 2 + fieldWidth / 2, origin.x + visibleSize.height },
	};
	//for (int i = 0; i < fieldObjectNumber; ++i)
	for (int i = 0; i < 1; ++i)
	{
		Sprite* field = Sprite::create("HelloWorld.png");
		//Sprite* field = Sprite::create();
		//field->setColor(Color3B::WHITE);
		field->setAnchorPoint(Vec2(0, 1.0));

		field->setTextureRect(fieldSizes[i]);
		field->setPosition(fieldPoints[i]);
		
		//auto fieldPhysics = PhysicsBody::createBox(fieldSizes[i].size);
		auto fieldPhysics = PhysicsBody::createBox(Size(field->getContentSize().width, field->getContentSize().height));
		fieldPhysics->setDynamic(false);
		fieldPhysics->setRotationEnable(false);
		field->setPhysicsBody(fieldPhysics);

		this->addChild(field);
	}

	auto sprite2 = Sprite::create("EDGE(after).png");
	sprite2->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height/2 + origin.y));
	auto sprite2Physics = PhysicsBody::createBox(Size(sprite2->getContentSize().width, sprite2->getContentSize().height));
	sprite2Physics->setDynamic(true);
	sprite2Physics->setRotationEnable(false);
	sprite2->setPhysicsBody(sprite2Physics);
	this->addChild(sprite2);

	return true;						
}
Exemplo n.º 5
0
void CGameView::onEnter()
{
    Layer::onEnter();
    //----------------------------------------------------
    //FIXME 
    count = 0;
    

    Size visibleSize    = Director::getInstance()->getVisibleSize();
    Vec2 origin         = Director::getInstance()->getVisibleOrigin();

    // add a "close" icon to exit the progress. it's an autorelease object
    auto closeItem = MenuItemImage::create(
        "CloseNormal.png",
        "CloseSelected.png",
        CC_CALLBACK_1(CGameView::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);

    //----------------------------------------------------

    log("CGameView OnEnter...");

    auto lisnter = EventListenerTouchOneByOne::create();

    lisnter->onTouchBegan = CC_CALLBACK_2(CGameView::onTouchBegan, this);
    lisnter->onTouchEnded = CC_CALLBACK_2(CGameView::onTouchEnded, this);
    lisnter->onTouchMoved = CC_CALLBACK_2(CGameView::onTouchMove, this);

    _eventDispatcher->addEventListenerWithSceneGraphPriority(lisnter, this);

    //--------------------------------------------------------------------

    m_pPath             = new CPath();
	m_pDrawNode			= DrawNode::create();    	      	
    m_pSp               = CMySprite::create();
    m_pPlayer           = CGamePlayer::create();
    m_pShowArea         = CShowArea::create();
    m_pGameLogic        = CGameLogic::create();
    
    //------------------------------------

	m_pSp->setPath(m_pPath);
    m_pSp->setPlayer(m_pPlayer);
    m_pSp->setShowArea(m_pShowArea);
    m_pSp->setVisible(false);
          
    m_pShowArea->setPath(m_pPath);
    m_pShowArea->setPosition(origin);


    m_pPlayer->m_refSp              = m_pSp;
    m_pPlayer->setVisible(false);

    m_pGameLogic->m_refPath         = m_pPath;
    m_pGameLogic->m_refPlayer       = m_pPlayer;
    m_pGameLogic->m_refShowArea     = m_pShowArea;
    m_pGameLogic->m_refSp           = m_pSp; 
    m_pGameLogic->setAnchorPoint(Vec2::ZERO);
   
    //----------------------------
		
    addChild(m_pShowArea);	
	addChild(m_pSp);
	addChild(m_pDrawNode);
    addChild(m_pGameLogic);
    addChild(m_pPlayer);

    //------------------------------------    	
	
	m_oAllRander.push_back(m_pSp);
    m_oAllRander.push_back(m_pShowArea);
    m_oAllRander.push_back(m_pPath); 
    m_oAllRander.push_back(m_pPlayer);
    
    //----------------------------------------  

    m_oAllRunner.push_back(m_pSp);
    m_oAllRunner.push_back(m_pPlayer);   
	
    //------------------------------------------ 

    CEventDispatcher::getInstrance()->regsiterEvent(EVENT_WIN, this);
    CEventDispatcher::getInstrance()->regsiterEvent(EVENT_TIMEOUT, this);
    CEventDispatcher::getInstrance()->regsiterEvent(EVENT_PLAYERDIE, this);

    setState(STATE_INIT);                         
	schedule(schedule_selector(CGameView::run));
}
Exemplo n.º 6
0
void SpriteMainScene::initWithSubTest(int asubtest, int nNodes)
{
     std::srand(0);

    _subtestNumber = asubtest;
    _subTest = new (std::nothrow) 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, nullptr);
    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 (std::nothrow) SpriteMenuLayer(true, TEST_COUNT, SpriteMainScene::_s_nSpriteCurCase);
    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 = nullptr;
    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(Vec2( 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(Vec2(s.width/2, 80));
    addChild(subMenu, 2);

    // add title label
    auto label = Label::createWithTTF(title(), "fonts/arial.ttf", 32);
    addChild(label, 1);
    label->setPosition(Vec2(s.width/2, s.height-50));


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

    while(_quantityNodes < nNodes)
        onIncrease(this);
}
Exemplo n.º 7
0
bool PhysicListener::init(){
    EventListenerPhysicsContact::init();
    this->onContactBegin = CC_CALLBACK_1(PhysicListener::onPhysicContactBegin, this);
    return true;
};
Exemplo n.º 8
0
// on "init" you need to initialize your instance
bool MainMenuScene::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    bool musicOn = UserDefault::getInstance()->getBoolForKey("MusicOn",true);
    
    if(!CocosDenshion::SimpleAudioEngine::getInstance()->isBackgroundMusicPlaying())
    {
    CocosDenshion::SimpleAudioEngine::getInstance()->preloadBackgroundMusic("audio/Fantasy Armies.mp3");
    CocosDenshion::SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.5);
        CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic();
    if(musicOn)
    {
        
        CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("audio/Fantasy Armies.mp3",true);
    }
    }
    auto gameTitle = Label::createWithTTF("Koncentric", "fonts/Marker Felt.ttf", 100);
    gameTitle->setPosition(Point(visibleSize.width/2+origin.x,visibleSize.height*0.9+origin.y));
    gameTitle->setColor(Color3B(100,25, 200));
    
    auto playItem = MenuItemFont::create("Play",CC_CALLBACK_1(MainMenuScene::goToGameScene,this));
    playItem->setColor(cocos2d::Color3B::BLUE);
    playItem->setScale(2);
    playItem->setPosition(Point(visibleSize.width/2+origin.x, visibleSize.height*0.6+origin.y));
    auto optionItem = MenuItemFont::create("Options",CC_CALLBACK_1(MainMenuScene::goToGameScene,this));
    playItem->setTag(0);
    
    optionItem->setColor(cocos2d::Color3B::BLUE);
    optionItem->setScale(2);
    optionItem->setPosition(Point(visibleSize.width/2+origin.x, visibleSize.height*0.6-playItem->getContentSize().height*2+origin.y));
    optionItem->setTag(1);
    
    auto bestTimeItem = MenuItemFont::create("Best Times",CC_CALLBACK_1(MainMenuScene::goToGameScene,this));
    
    bestTimeItem->setColor(cocos2d::Color3B::BLUE);
    bestTimeItem->setScale(2);
    bestTimeItem->setPosition(Point(visibleSize.width/2+origin.x, visibleSize.height*0.6-playItem->getContentSize().height*2-optionItem->getContentSize().height*2+origin.y));
    bestTimeItem->setTag(2);
    
    ParticleSystemQuad* m_emitter = new ParticleSystemQuad();
    m_emitter = ParticleFlower::create();
   // m_emitter->setEmitterMode(cocos2d::ParticleSystem::Mode::RADIUS);
    m_emitter->setEmissionRate(20);
    m_emitter->setSpeed(150);
   // m_emitter->setColor(Color3B(50, 100, 200));
    m_emitter->setStartColor(Color4F(0, 180, 200, 255));
    m_emitter->setPosition(Vec2(visibleSize.width/2+origin.x,visibleSize.height*0.53+origin.y));
//    m_emitter->setStartRadius(10);
//    m_emitter->setEndRadius(50);
    //m_emitter->setGravity(Vec2(0,-90));
    // = kCCParticleModeGravity
    //m_emitter->modeA.gravity = ccp(0,-90);
    
    auto menu = Menu::create(playItem,optionItem,bestTimeItem,NULL);
    menu->setPosition(Point::ZERO);
    this->addChild(m_emitter);
    this->addChild(gameTitle);
    this->addChild(menu);
    
    
    
    return true;
}
Exemplo n.º 9
0
// on "init" you need to initialize your instance
bool LeaderBoard::init()
{
	//super init first
	if (!Layer::init())
	{
		return false;
	}

	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();

	auto label = Label::createWithTTF("LEADERBOARD", "fonts/Marker Felt.ttf", 44);
	label->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height - label->getContentSize().height));
	label->setColor(ccc3(255, 215, 0));
	this->addChild(label, 1);

	auto MainMenu = MenuItemImage::create("Mainmenu.png", "Mainmenu.png", CC_CALLBACK_1(LeaderBoard::GoToMainMenuScene, this));
	MainMenu->setPosition(Vec2(visibleSize.width / 2, origin.y + visibleSize.height / 4.5));

	auto menu1 = Menu::create(MainMenu, NULL);
	menu1->setPosition(Vec2::ZERO);
	this->addChild(menu1, 1);

	auto label2 = Label::createWithTTF("The Top 10 Scores are:", "fonts/Marker Felt.ttf", 33);
	label2->setPosition(Vec2(visibleSize.width / 2, origin.y + visibleSize.height / 1.2));
	label2->setColor(ccc3(160, 32, 240));
	this->addChild(label2, 1);

	auto label3 = Label::createWithTTF("1. ", "fonts/Marker Felt.ttf", 33);
	label3->setPosition(Vec2(visibleSize.width / 3, origin.y + visibleSize.height / 1.3));
	label3->setColor(ccc3(0, 0, 0));
	this->addChild(label3, 1);

	auto label4 = Label::createWithTTF("2. ", "fonts/Marker Felt.ttf", 33);
	label4->setPosition(Vec2(visibleSize.width / 3, origin.y + visibleSize.height / 1.38));
	label4->setColor(ccc3(0, 0, 0));
	this->addChild(label4, 1);

	auto label5 = Label::createWithTTF("3. ", "fonts/Marker Felt.ttf", 33);
	label5->setPosition(Vec2(visibleSize.width / 3, origin.y + visibleSize.height / 1.44));
	label5->setColor(ccc3(0, 0, 0));
	this->addChild(label5, 1);

	auto ExitGame = MenuItemImage::create("Exit.png", "Exit.png",
		CC_CALLBACK_1(LeaderBoard::menuCloseCallback, this));
	ExitGame->setPosition(Vec2(visibleSize.width / 2, origin.y + visibleSize.height / 6.4));

	auto menu = Menu::create(ExitGame, NULL);
	menu->setPosition(Vec2::ZERO);
	this->addChild(menu, 1);

	//This adds a background to the screen
	auto sprite = Sprite::create("Background2.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;
}
Exemplo n.º 10
0
NS_CC_BEGIN


MeshCommand::MeshCommand()
: _displayColor(1.0f, 1.0f, 1.0f, 1.0f)
, _matrixPalette(nullptr)
, _matrixPaletteSize(0)
, _materialID(0)
, _vao(0)
, _material(nullptr)
, _glProgramState(nullptr)
, _stateBlock(nullptr)
, _textureID(0)
{
    _type = RenderCommand::Type::MESH_COMMAND;

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
    // listen the event that renderer was recreated on Android/WP8
    _rendererRecreatedListener = EventListenerCustom::create(EVENT_RENDERER_RECREATED, CC_CALLBACK_1(MeshCommand::listenRendererRecreated, this));
    Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(_rendererRecreatedListener, -1);
#endif
}
Exemplo n.º 11
0
void GameLayer::createTouchManager() {
  _touchMgr = TouchManager::create();
  _touchMgr->onTouch = CC_CALLBACK_1(GameLayer::onTouch, this);

  addChild(_touchMgr);
}
Exemplo n.º 12
0
bool StoreSelectLayer::init(int money)
{
	if (!Layer::init())
	{
		return false;
	}
	addShiledLayer();
	willReduceMoney = money;
	Sprite * bg_sprite = Sprite::create("Select.png");
	bg_sprite->setPosition(Vec2(GET_WINDOWS_SIZE/2));
	this->addChild(bg_sprite);
	auto trueItem = MenuItemSprite::create(Sprite::create("true.png"), Sprite::create("true.png"),CC_CALLBACK_1(StoreSelectLayer::sendInform,this));
	auto falseItem = MenuItemSprite::create(Sprite::create("False.png"),Sprite::create("False.png"),CC_CALLBACK_1(StoreSelectLayer::removeSelfLayer,this));
	Menu * selectMenu = Menu::create(trueItem, falseItem,NULL);
	selectMenu->alignItemsHorizontallyWithPadding(100);
	selectMenu->setPosition(Vec2(bg_sprite->getContentSize().width/2, bg_sprite->getContentSize().height/6));
	bg_sprite->addChild(selectMenu);
	return true;
}
Exemplo n.º 13
0
// on "init" you need to initialize your instance
bool MainMenuScene::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    auto backgroundSprite = Sprite::create( "Background.png" );
    backgroundSprite->setPosition( Point( visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y ) );
    
    this->addChild( backgroundSprite );
    
    auto titleSprite = Sprite::create( "Title.png" );
    titleSprite->setPosition( Point( visibleSize.width / 2 + origin.x, visibleSize.height - titleSprite->getContentSize( ).height ) );
    
    this->addChild( titleSprite );
    
    auto playItem = MenuItemImage::create( "Play Button.png", "Play Button Clicked.png", CC_CALLBACK_1( MainMenuScene::GoToGameScene, this ) );
    playItem->setPosition( Point( visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y ) );
    
    auto menu = Menu::create( playItem, NULL );
    menu->setPosition( Point::ZERO );
    
    this->addChild( menu );
    
    return true;
}
Exemplo n.º 14
0
bool rankBirdLayer::init()
{

    if (!Layer::init()) {
        return false;
    }

    Size visibleSize=Director::getInstance()->getVisibleSize();
    Point origin=Director::getInstance()->getVisibleOrigin();
    
    Sprite *backGround=Sprite::create("night.png");
    backGround->setAnchorPoint(Point(0,0));
    backGround->setPosition(Point(origin.x,origin.y+visibleSize.height-backGround->getContentSize().height));
    this->addChild(backGround,0);
    Sprite *floor=Sprite::create("floor.png");
    floor->setAnchorPoint(Point(0,0));
    floor->setPosition(0,0);
    this->addChild(floor);
    floor->runAction(RepeatForever::create(Sequence::create(MoveTo::create(0.5, Point(-120,0)),MoveTo::create(0,Point(0,0)), NULL)));
    
    Sprite *rank=Sprite::create("rankBackground.png");
    rank->setPosition(270,530);
    this->addChild(rank);
    Sprite *title=Sprite::create("rankBird.png");
    title->setPosition(270,850);
    this->addChild(title,1);
    
    load();
    MenuItemImage *menuItem=MenuItemImage::create("menu.png", "menu_off.png", CC_CALLBACK_1(rankBirdLayer::menuCallBack0, this));
    menuItem->setPosition(80,50);
    MenuItemImage *nextItem=MenuItemImage::create("next.png", "next_off.png", CC_CALLBACK_1(rankBirdLayer::menuCallBack1, this));
    nextItem->setPosition(460,50);
    
    Menu *menu=Menu::create(menuItem,nextItem, NULL);
    menu->setPosition(Point::ZERO);
    this->addChild(menu,10);
   
    //排行的显示
    int *tempBird= new int[5];
    for (int i=0; i<5; i++)
    {
        std::string score;
        std::string number=StringUtils::format("%d",(i+1)); //创建string
        tempBird[i]=atoi(scoreBird[i].c_str());// atoi(const char *) 转换为int; .c_str()将std::string转换为char *
        if (tempBird[i]==0)
        {
            score="-";
        }
    
    else
    {
        score=scoreBird[i];
    }
    
        labels=Label::createWithTTF(number, "FZKATJW.ttf", 60,Size::ZERO,TextHAlignment::LEFT,TextVAlignment::TOP);
        rank->addChild(labels,2);
        labels->setPosition(Point(90,280-(50*i)));
        labels->enableOutline(Color4B(187,187,187,255),2);
        
        labels=Label::createWithTTF(score, "FZKATJW.ttf", 60,Size::ZERO,TextHAlignment::LEFT,TextVAlignment::TOP);
        rank->addChild(labels,2);
        labels->setPosition(Point(315,280-(50*i)));
        labels->enableOutline(Color4B(187,187,187,255),2);
        
    }

    return  true;
}
Exemplo n.º 15
0
bool MainMenuLayer::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

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

	// bind touch event
	auto touchListener = EventListenerTouchOneByOne::create();
	touchListener->onTouchBegan = CC_CALLBACK_2(MainMenuLayer::onTouchBegan, this);
	touchListener->onTouchMoved = CC_CALLBACK_2(MainMenuLayer::onTouchMoved, this);
	touchListener->onTouchEnded = CC_CALLBACK_2(MainMenuLayer::onTouchEnded, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);

	// add scene
	auto rootNode = CSLoader::createNode("MainMenuScene.csb");
	m_pAnimate = CSLoader::createTimeline("MainMenuScene.csb");
	rootNode->runAction(m_pAnimate);
	m_pAnimate->pause();
	this->addChild(rootNode, ZORDER_MAINMENULAYER_MAINLAYER);

	// get node
	auto nodePlayer = dynamic_cast<Node*>(rootNode->getChildByName("FileNode_Player"));
	m_pPlayerAnimate = CSLoader::createTimeline("MainMenuPlayer.csb");
	nodePlayer->runAction(m_pPlayerAnimate);
	m_pPlayerAnimate->pause();
	auto nodeUp = dynamic_cast<Node*>(rootNode->getChildByName("Node_Up"));
	auto nodeDown = dynamic_cast<Node*>(rootNode->getChildByName("Node_Down"));

	// get text
	auto textGameTitle = dynamic_cast<Text*>(nodeUp->getChildByName("Text_GameTitle"));
	auto textPlay = dynamic_cast<Text*>(rootNode->getChildByName("Text_Play"));
	auto textHighscore = dynamic_cast<Text*>(nodeUp->getChildByName("Text_Highscore"));
	auto textGoldNumber = dynamic_cast<Text*>(nodeUp->getChildByName("Node_GoldNumber")->getChildByName("Text_GoldNumber"));
	
	// get button
	auto buttonSetting = dynamic_cast<Button*>(nodeUp->getChildByName("Button_Setting"));
	buttonSetting->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Setting, this));
	auto buttonSignIn = dynamic_cast<Button*>(nodeDown->getChildByName("Button_SignIn"));
	buttonSignIn->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_SignIn, this));
	auto buttonAchievement = dynamic_cast<Button*>(nodeDown->getChildByName("Button_Achievement"));
	buttonAchievement->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Achievement, this));
	auto buttonLeaderboard = dynamic_cast<Button*>(nodeDown->getChildByName("Button_Leaderboard"));
    buttonLeaderboard->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Leaderboard, this));
	auto buttonPurchaseNoAd = dynamic_cast<Button*>(nodeDown->getChildByName("Button_Purchase_noAd"));
	buttonPurchaseNoAd->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_PurchaseNoAd, this));
	auto buttonUpgrade = dynamic_cast<Button*>(rootNode->getChildByName("Button_Upgrade"));
	buttonUpgrade->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Upgrade, this));
	auto buttonReload = dynamic_cast<Button*>(rootNode->getChildByName("Button_Reload"));
	buttonReload->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Reload, this));
    auto buttonPurchase = dynamic_cast<Button*>(rootNode->getChildByName("Button_TestPurchase"));
    buttonPurchase->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Purchase, this));
    auto buttonReset = dynamic_cast<Button*>(rootNode->getChildByName("Button_ResetGameCenter"));
    buttonReset->addClickEventListener(CC_CALLBACK_1(MainMenuLayer::menuCallback_Reset, this));
	// set button
#if DEBUG_FLAG == 0
	buttonReload->setVisible(false);
	buttonPurchase->setVisible(false);
	buttonReset->setVisible(false);
#endif
    if (CSCClass::CSC_IOSHelper::GameCenter_isAuthenticated()) {
        buttonAchievement->setPositionY(10);
        buttonLeaderboard->setPositionY(10);
        buttonSignIn->setPositionY(-200);
    }
    else {
        buttonAchievement->setPositionY(-200);
        buttonLeaderboard->setPositionY(-200);
        buttonSignIn->setPositionY(10);
        auto listener = EventListenerCustom::create(EVENT_GAMECENTER_AUTHENTICATED, [=](EventCustom* event) {
            // change game center buttons when authenticated
            buttonAchievement->runAction(MoveTo::create(0.5f, cocos2d::Point(buttonAchievement->getPositionX(), 10)));
            buttonLeaderboard->runAction(MoveTo::create(0.5f, cocos2d::Point(buttonLeaderboard->getPositionX(), 10)));
            buttonSignIn->runAction(MoveTo::create(0.5f, cocos2d::Point(buttonSignIn->getPositionX(), -200)));
        });
        _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
    }

	if (!m_pGameMediator->getIsAd()) {
        buttonPurchaseNoAd->setPositionY(-200);
	}
	else {
#if IAPTEST_FLAG == 1
		CSCClass::CSC_IOSHelper::IAP_requestAllPurchasedProducts(true);
#else
		CSCClass::CSC_IOSHelper::IAP_requestAllPurchasedProducts(false);
#endif
        auto listener = EventListenerCustom::create(EVENT_RESTORED + "com.reallycsc.endlesslove.adremove", [=](EventCustom* event) {
            m_pGameMediator->setIsAd(false);
            m_pGameMediator->setIsGuidelineForever(true);
            buttonPurchaseNoAd->runAction(MoveTo::create(0.5f, Point(buttonPurchaseNoAd->getPositionX(), -200)));
        });
        _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
        listener = EventListenerCustom::create(EVENT_PURCHASED + "com.reallycsc.endlesslove.adremove", [=](EventCustom* event) {
            m_pGameMediator->setIsAd(false);
            m_pGameMediator->setIsGuidelineForever(true);
            buttonPurchaseNoAd->runAction(MoveTo::create(0.5f, Point(buttonPurchaseNoAd->getPositionX(), -200)));
			CSCClass::CSC_IOSHelper::GameCenter_checkAndUnlockAchievement("com.reallycsc.endlesslove.adremove");
        });
        _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
	}
	// set all text
	auto mapGameText = m_pGameMediator->getGameText();
	textGameTitle->setString(mapGameText->at("ID_COMMON_GAMETITLE"));
	textPlay->setString(mapGameText->at("ID_MAINMENU_PLAY"));
    textGoldNumber->setString(StringUtils::format("%lld", m_pPlayerData->getGoldNumberAll()));
	textHighscore->setString(StringUtils::format("%s%lld",
                                                    mapGameText->at("ID_COMMON_HIGHSCORE").c_str(),
                                                    m_pPlayerData->getHighscore()));

	// add event listener
    auto listener = EventListenerCustom::create(EVENT_PLARERDATA_SCOREUPDATED+"Highscore", [=](EventCustom* event){
        textHighscore->setString(StringUtils::format("%s%lld",
			m_pGameMediator->getGameText()->at("ID_COMMON_HIGHSCORE").c_str(),
			m_pPlayerData->getHighscore()));
    });
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
    
    listener = EventListenerCustom::create(EVENT_PLARERDATA_SCOREUPDATED+"GoldNumber", [=](EventCustom* event){
        textGoldNumber->setString(StringUtils::format("%lld", m_pPlayerData->getGoldNumberAll()));
    });
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

	// Play animation & bind frame event
	m_pAnimate->play("Cardiogram_Play", true);

	// random blink
	this->runAction(Sequence::createWithTwoActions(
		DelayTime::create(random(1.0f, 5.0f)),
		CallFunc::create(CC_CALLBACK_0(MainMenuLayer::playerBlink, this))
		));

	// Play music
	CocosDenshion::SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(1.0);
	CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(BACKGROUND_MUSIC_FILE.c_str(), true);
    
    return true;
}
Exemplo n.º 16
0
bool AttackLayer::init(){
	if (!Layer::init()) {
		return false;
	}
	bgX = Director::getInstance()->getVisibleSize().width;
	bgY = Director::getInstance()->getVisibleSize().height;

	//´´½¨±³¾°
	bg = Sprite::create(choseInformation::getInstence()->getImageName());
	bg->setPosition(Vec2(bgX / 2, bgY / 2));
	bg->setScale(1.109, 1.04);
	addChild(bg);


	//´´½¨Ó¢ÐÛ°´Å¥µÄ±³¾°
	herowindow = Sprite::create("Attack_Hero_Window.png");
	herowindow->setPosition(bgX / 2, herowindow->getContentSize().height / 2);
	addChild(herowindow);



	//µ¼ÈëÓ¢ÐÛ
	addHeroWindow();

	//ÕÚÕÖ²ã
	shield = Sprite::create("Attack_Hero_Window.png");
	shield->setScale(1.37, 4.15);
	shield->setPosition(bgX / 2, bgY / 2);
	shield->setVisible(false);
	this->addChild(shield);


	//ÔÝÍ£°´Å¥
	auto stopItem = MenuItemImage::create("pausebt.png", "pausebtn-disable.png", CC_CALLBACK_1(AttackLayer::stopLayer, this));
	auto stopMenu = Menu::create(stopItem, NULL);
	stopMenu->setName("stop");
	stopItem->setName("name");
	
	float smX = stopItem->getContentSize().width;
	float smY = bgY - stopItem->getContentSize().height / 2;
	stopMenu->setPosition(Vec2(smX, smY));
	addChild(stopMenu);

	//ͨÍùÏÂÒ»²ãµÄ°´Å¥
	nextitem = MenuItemImage::create("NextMapMenuItem.png", "NextMapMenuItem.png", CC_CALLBACK_1(AttackLayer::nextMap, this));
	nextitem->setVisible(false);
	auto nextMenu = Menu::create(nextitem, NULL);
	float nmX = bgX - nextitem->getContentSize().width;
	float nmY = bgY / 2;
	nextMenu->setPosition(Vec2(nmX, nmY));
	addChild(nextMenu);
	auto move_a = MoveBy::create(0.5, Vec2(40, 0));
	auto move_b = MoveTo::create(0.5, nextMenu->getPosition());
	auto seq = Sequence::create(move_a, move_b, NULL);
	nextMenu->runAction(RepeatForever::create(seq));

	//×Ô¶¯Õ½¶·°´Å¥
	auto automaticItem = MenuItemImage::create("Automatic_a.png", "Automatic_b.png",CC_CALLBACK_1(AttackLayer::automaticAttack,this));
	float amX = herowindow->getPosition().x + herowindow->getContentSize().width / 2 + automaticItem->getContentSize().width / 2;
	float amY = herowindow->getPosition().y;
	automaticItem->setPosition(Vec2(amX, amY));
	auto menuMaticItem = Menu::create(automaticItem,nullptr);
	menuMaticItem->setPosition(0,0);
	automaticItem->setName("automatic");
	menuMaticItem->setName("menuMaticItem");
	this->addChild(menuMaticItem);
	return true;
}
Exemplo n.º 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();
    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);
	
	
	// Between
	this->runAction(Sequence::create(Between::to(sprite, "x:240, y:120, rot:30", 3.0f, Easing::QuadOut),
									 Between::to(sprite, "scale:1.2, rot:180", 3.0f, Easing::BackIn),
									 Between::tween(sprite, "scale:0.1, x:200, y:200","scale:1.2, x:400", 3.0f, Easing::ExpoInOut),
									 nullptr));
    return true;
}
Exemplo n.º 18
0
bool TextureAtlas::initWithTexture(Texture2D *texture, ssize_t capacity)
{
    CCASSERT(capacity>=0, "Capacity must be >= 0");
    
//    CCASSERT(texture != nullptr, "texture should not be null");
    _capacity = capacity;
    _totalQuads = 0;

    // retained in property
    this->_texture = texture;
    CC_SAFE_RETAIN(_texture);

    // Re-initialization is not allowed
    CCASSERT(_quads == nullptr && _indices == nullptr, "");

    _quads = (V3F_C4B_T2F_Quad*)malloc( _capacity * sizeof(V3F_C4B_T2F_Quad) );
    _indices = (GLushort *)malloc( _capacity * 6 * sizeof(GLushort) );
    
    if( ! ( _quads && _indices) && _capacity > 0) 
    {
        //CCLOG("cocos2d: TextureAtlas: not enough memory");
        CC_SAFE_FREE(_quads);
        CC_SAFE_FREE(_indices);

        // release texture, should set it to null, because the destruction will
        // release it too. see cocos2d-x issue #484
        CC_SAFE_RELEASE_NULL(_texture);
        return false;
    }

    memset( _quads, 0, _capacity * sizeof(V3F_C4B_T2F_Quad) );
    memset( _indices, 0, _capacity * 6 * sizeof(GLushort) );
    
#if CC_ENABLE_CACHE_TEXTURE_DATA
    // listen the event when app go to background
    _backToForegroundlistener = EventListenerCustom::create(EVENT_COME_TO_FOREGROUND, CC_CALLBACK_1(TextureAtlas::listenBackToForeground, this));
    Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(_backToForegroundlistener, -1);
#endif
    
    this->setupIndices();

    if (Configuration::getInstance()->supportsShareableVAO())
    {
        setupVBOandVAO();
    }
    else
    {
        setupVBO();
    }

    _dirty = true;

    return true;
}
Exemplo n.º 19
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();
	
	/* REGISTERING TOUCH EVENTS
	 ===================================================== */
	auto controls = EventListenerTouchAllAtOnce::create();
	controls->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(controls, this);

	/*  NOTE: don't get in the habit of using auto everywhere
		An iron price to be paid (extra time == life) masquerading as convenience
		No reference can be made with auto and makes code unreadable
		Justified here since controls is a one-off and will not
		be referenced anywhere else but in this temporal block
		
		ALSO: This is what is called a observer pattern in the industry
		controls would be an "interface" of known `subscribers` to the _eventDispatcher `publisher` 
		and events are "published" to the subscribers as they happen. Interface just means a 
		contractual agreement between different parts of code to follow a uniform language
	*/

	/* CREATE A TMXTILEDMAP AND EXTRACT LAYER FOR DISPLAY
	 ===================================================== */
	_tileMap = TMXTiledMap::create("TileMap.tmx");
	// DEPRECATED: _tileMap = new CCTMXTiledMap();
	//			   _tileMap->initWithTMXFile("TileMap.tmx");

	_background = _tileMap->getLayer("Background");
	// DEPRECATED: _tileMap->layerNamed("Background");

	_meta = _tileMap->layerNamed("Meta");
	_meta->setVisible(false);

	this->addChild(_tileMap);

	TMXObjectGroup *objectGroup = _tileMap->objectGroupNamed("Objects");
	// DEPRECATED: CCTMXObjectGroup *objectGroup = _tileMap->objectGroupNamed("Objects");

	if(objectGroup == NULL) {
		CCLOG("tile map has no Objects object layer");
		// DEPRECATED: CCLog("tile map has no objects object layer");
		return false;
	}

	ValueMap spawnPoint = objectGroup->objectNamed("SpawnPoint");
	// DEPRECATED:	CCDictionary *spawnPoint = objectGroup->objectNamed("SpawnPoint");
	Vec2 spawnHere = Point(300, 300);
	if(spawnPoint.size() != 0) {
		CCLOG("LOGCAT!!! There is a spawn point");
	} else {
		CCLOG("LOGCAT!!! There isn't a spawn point. Using default 300 x 300.");
	}

	_player = Sprite::create("Player.png");
	_player->setPosition(spawnHere);

	this->addChild(_player);
	this->setViewPointCenter(_player->getPosition());

	this->setTouchEnabled(true);

	/////////////////////////////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.
    // create menu, it's an autorelease object
    // 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));
    auto menu = Menu::create(closeItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);

    return true;
}
Exemplo n.º 20
0
void LoadingScene::loadRes()
{
	LoaderManager::getInstance()->LoadRes("config/file.xml", CC_CALLBACK_1(LoadingScene::loadResCallback, this));
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    auto 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(tapjoy::Tapjoy::getVersion(), "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);

    ////////
    // TextField
    auto textField = ui::TextField::create("TextField", "fonts/Marker Felt.ttf", 24);
    textField->ignoreContentAdaptWithSize(false);
    textField->setContentSize(Size(320, 100));
    textField->setPosition(Vec2(10, 100));
    this->addChild(textField, 2);
    
    return true;
}
Exemplo n.º 22
0
void Game1Layer::menuStartCallback(Ref* pSender){
	((MenuItemImage*)pSender)->runAction(FadeOut::create(0.5f));
	guideBox->runAction(Sequence::create(FadeOut::create(0.5f), DelayTime::create(0.5f),
		CallFuncN::create(CC_CALLBACK_1(Game1Layer::questionUI,this)),NULL  ));
	
}
bool TestPushNotificationService::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    channelName = "App42TestPushChannelReturnss";
    description = "Testing channel";
    userName = "******";
    deviceToken = "b1d6b70a7fe5a29be43b823f7bd3aa072f60d849c931b3465915773b835f00f3";
    message = "Hello from cocos2d-X!";
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();
    
    
    float button_y_Offset =30;
    float y_pos = visibleSize.height-button_y_Offset;
    float x_pos = origin.x + visibleSize.width/2;
    
    /**
     * Back Button
     */
    auto backButtonItem = MenuItemImage::create(
                                                "BackButton.png",
                                                "BackButton.png",
                                                CC_CALLBACK_1(TestPushNotificationService::menuCloseCallback, this));
    
	backButtonItem->setPosition(Point(x_pos ,origin.y + backButtonItem->getContentSize().height/2));
    backButtonItem->setTag(GO_HOME);
    
    /**
     * Register Device Token
     */
    auto registerDeviceTokenLabel = LabelTTF::create("RegisterDevice", "Marker Felt", 24);
    registerDeviceTokenLabel->setColor(Color3B::WHITE);
    auto registerDeviceTokenItem  = MenuItemLabel::create(registerDeviceTokenLabel, CC_CALLBACK_1(TestPushNotificationService::registerDeviceToken, this));
    //y_pos -= button_y_Offset;
    registerDeviceTokenItem->setPosition(Point(x_pos,y_pos));

    
    /**
     * Create Channel
     */
    auto createChannelLabel = LabelTTF::create("CreateChannel", "Marker Felt", 24);
    createChannelLabel->setColor(Color3B::WHITE);
    auto createChannelItem  = MenuItemLabel::create(createChannelLabel, CC_CALLBACK_1(TestPushNotificationService::createChannel, this));
    y_pos -= button_y_Offset;
    createChannelItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Subscribe To Channel
     */
    auto subscribeToChannelLabel = LabelTTF::create("SubscribeToChannel", "Marker Felt", 24);
    subscribeToChannelLabel->setColor(Color3B::WHITE);
    auto subscribeToChannelItem  = MenuItemLabel::create(subscribeToChannelLabel, CC_CALLBACK_1(TestPushNotificationService::subscribeToChannel, this));
    y_pos -= button_y_Offset;
    subscribeToChannelItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Subscribe Device To Channel
     */
    auto subscribeDeviceToChannelLabel = LabelTTF::create("SubscribeDeviceToChannel", "Marker Felt", 24);
    subscribeDeviceToChannelLabel->setColor(Color3B::WHITE);
    auto subscribeDeviceToChannelItem  = MenuItemLabel::create(subscribeDeviceToChannelLabel, CC_CALLBACK_1(TestPushNotificationService::subscribeDeviceToChannel, this));
    y_pos -= button_y_Offset;
    subscribeDeviceToChannelItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Unsubscribe To Channel
     */
    auto unsubscribeToChannelLabel = LabelTTF::create("UnsubscribeToChannel", "Marker Felt", 24);
    unsubscribeToChannelLabel->setColor(Color3B::WHITE);
    auto unsubscribeToChannelItem  = MenuItemLabel::create(unsubscribeToChannelLabel, CC_CALLBACK_1(TestPushNotificationService::unsubscribeToChannel, this));
    y_pos -= button_y_Offset;
    unsubscribeToChannelItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Unsubscribe Device To Channel
     */
    auto unsubscribeDeviceToChannelLabel = LabelTTF::create("UnsubscribeDeviceToChannel", "Marker Felt", 24);
    unsubscribeDeviceToChannelLabel->setColor(Color3B::WHITE);
    auto unsubscribeDeviceToChannelItem  = MenuItemLabel::create(unsubscribeDeviceToChannelLabel, CC_CALLBACK_1(TestPushNotificationService::unsubscribeDeviceToChannel, this));
    y_pos -= button_y_Offset;
    unsubscribeDeviceToChannelItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Delete DeviceToken for user
     */
    auto deleteDeviceTokenLabel = LabelTTF::create("DeleteDeviceToken", "Marker Felt", 24);
    deleteDeviceTokenLabel->setColor(Color3B::WHITE);
    auto deleteDeviceTokenItem  = MenuItemLabel::create(deleteDeviceTokenLabel, CC_CALLBACK_1(TestPushNotificationService::deleteDevice, this));
    y_pos -= button_y_Offset;
    deleteDeviceTokenItem->setPosition(Point(x_pos,y_pos));

    /**
     *  Delete All Devices for user
     */
    auto deleteAllDevicesLabel = LabelTTF::create("DeleteAllDevices", "Marker Felt", 24);
    deleteAllDevicesLabel->setColor(Color3B::WHITE);
    auto deleteAllDevicesItem  = MenuItemLabel::create(deleteAllDevicesLabel, CC_CALLBACK_1(TestPushNotificationService::deleteAllDevices, this));
    y_pos -= button_y_Offset;
    deleteAllDevicesItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Unsubscribe device
     */
    auto unsubscribeDeviceLabel = LabelTTF::create("UnsubscribeDevice", "Marker Felt", 24);
    unsubscribeDeviceLabel->setColor(Color3B::WHITE);
    auto unsubscribeDeviceItem  = MenuItemLabel::create(unsubscribeDeviceLabel, CC_CALLBACK_1(TestPushNotificationService::unsubscribrDevice, this));
    y_pos -= button_y_Offset;
    unsubscribeDeviceItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  Resubscribe device
     */
    auto resubscribeDeviceLabel = LabelTTF::create("ResubscribeDevice", "Marker Felt", 24);
    resubscribeDeviceLabel->setColor(Color3B::WHITE);
    auto resubscribeDeviceItem  = MenuItemLabel::create(resubscribeDeviceLabel, CC_CALLBACK_1(TestPushNotificationService::resubscribeDevice, this));
    y_pos -= button_y_Offset;
    resubscribeDeviceItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  SendPushMessageToUser
     */
    auto sendPushToUserLabel = LabelTTF::create("SendPushMessageToUser", "Marker Felt", 24);
    sendPushToUserLabel->setColor(Color3B::WHITE);
    auto sendPushToUserItem  = MenuItemLabel::create(sendPushToUserLabel, CC_CALLBACK_1(TestPushNotificationService::sendPushMessageToUser, this));
    y_pos -= button_y_Offset;
    sendPushToUserItem->setPosition(Point(x_pos,y_pos));
    /**
     *  SendPushJsonToUser
     */
    auto sendPushJsonToUserLabel = LabelTTF::create("SendPushJsonToUser", "Marker Felt", 24);
    sendPushJsonToUserLabel->setColor(Color3B::WHITE);
    auto sendPushJsonToUserItem  = MenuItemLabel::create(sendPushJsonToUserLabel, CC_CALLBACK_1(TestPushNotificationService::sendPushJsonToUser, this));
    y_pos -= button_y_Offset;
    sendPushJsonToUserItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  SendPushToAll
     */
    auto sendPushToAllLabel = LabelTTF::create("SendPushToAll", "Marker Felt", 24);
    sendPushToAllLabel->setColor(Color3B::WHITE);
    auto sendPushToAllItem  = MenuItemLabel::create(sendPushToAllLabel, CC_CALLBACK_1(TestPushNotificationService::sendPushMessageToAll, this));
    y_pos -= button_y_Offset;
    sendPushToAllItem->setPosition(Point(x_pos,y_pos));
    
    /**
     *  SendPushToAllByType
     */
    auto sendPushToAllByTypeLabel = LabelTTF::create("SendPushToAllByType", "Marker Felt", 24);
    sendPushToAllByTypeLabel->setColor(Color3B::WHITE);
    auto sendPushToAllByTypeItem  = MenuItemLabel::create(sendPushToAllByTypeLabel, CC_CALLBACK_1(TestPushNotificationService::sendPushMessageToAllByType, this));
    y_pos -= button_y_Offset;
    sendPushToAllByTypeItem->setPosition(Point(x_pos,y_pos));
    
    
    /**
     * Create menu, it's an autorelease object
     */
    auto menu = Menu::create(backButtonItem,
                             registerDeviceTokenItem,
                             createChannelItem,
                             subscribeToChannelItem,
                             subscribeDeviceToChannelItem,
                             unsubscribeToChannelItem,
                             unsubscribeDeviceToChannelItem,
                             deleteDeviceTokenItem,
                             deleteAllDevicesItem,
                             unsubscribeDeviceItem,
                             resubscribeDeviceItem,
                             sendPushToUserItem,
                             sendPushJsonToUserItem,
                             sendPushToAllItem,
                             sendPushToAllByTypeItem, NULL);
    
    menu->setPosition(Point::ZERO);
    this->addChild(menu, 1);
    
    return true;
}
Exemplo n.º 24
0
void Game1Layer::questionUI(Node* node){
	//arrangement
	loadImageAnswer();
	Size visibleSize = Director::getInstance()->getVisibleSize();
	Point origin = Director::getInstance()->getVisibleOrigin();
	cluePoint = Point(visibleSize.width*3/10,visibleSize.height*2/3.3);
	answerPoint = Point(visibleSize.width * 3 / 10, visibleSize.height * 2 / 10);
	submitPoint = Point(visibleSize.width * 7.7f / 10, visibleSize.height * 2 / 10);
	nextPoint = Point(visibleSize.width * 7.7f / 10, visibleSize.height * 4 / 10);
	resultPoint = Point(visibleSize.width * 7.7f / 10, visibleSize.height * 2 / 10);
	guidePoint = Point(visibleSize.width * 7.7f / 10, visibleSize.height * 7.5f / 10);

	//submit and next button
	auto submitItem = MenuItemImage::create(
		"stage1/submit1.png",
		"stage1/submit1.png",
		CC_CALLBACK_1(Game1Layer::menuSubmitCallback, this));
	submitItem->setPosition(submitPoint);
	submitItem->setScale(visibleSize.width / submitItem->getContentSize().width / 3, visibleSize.height / submitItem->getContentSize().height/ 6);
	auto nextItem = MenuItemImage::create(
		"stage1/nextclue.png",
		"stage1/nextclue.png",
		CC_CALLBACK_1(Game1Layer::menuNextCallback, this));
	nextItem->setPosition(nextPoint);
	nextItem->setScale(visibleSize.width / nextItem->getContentSize().width / 3, visibleSize.height / nextItem->getContentSize().height / 6);
	CCLOG("tienhoangna");
	menu = Menu::create(submitItem,nextItem, NULL);
	menu->setPosition(Point::ZERO);
	this->addChild(menu, 2);
	//
	//Add Successful Box and Guide Box
	ingameGuide = CCLabelTTF::create(GAMEGUIDE, "Arial",20,
		Size(visibleSize.width *2/5, visibleSize.height  / 5*2));
	ingameGuide->setPosition(guidePoint);
	this->addChild(ingameGuide);
	ingameGuide->setColor(Color3B::BLUE);
	ingameGuide->setHorizontalAlignment(TextHAlignment::LEFT);

	inform = CCLabelTTF::create("", "Arial", 25,
		Size(visibleSize.width  / 5 * 2, visibleSize.height  / 5 * 2));
	inform->setPosition(guidePoint);
	
	this->addChild(inform,5);
	inform->setOpacity(0);
	inform->setColor(Color3B::BLUE);
	inform->setHorizontalAlignment(TextHAlignment::LEFT);
	//
	//Add answer box to game
	auto answerBoxSize = Size(visibleSize.width *2/5 , visibleSize.height / 12);
	answerBox = EditBox::create(answerBoxSize, Scale9Sprite::create("stage1/tb.png"));
	answerBox->setPosition(answerPoint);
	answerBox->setPlaceHolder("Please enter the answer");
	answerBox->setFont("Arial", 37);
	answerBox->setText("answer here!");
	answerBox->setFontColor(cocos2d::Color3B::MAGENTA);
	//answerBox->setDelegate(this);

	this->addChild(answerBox,2);
	//
	openQuestion();
}
Exemplo n.º 25
0
void GameInfoScene::createGamePanel()
{
	Size visibleSize = Director::getInstance()->getVisibleSize();
	auto bgcolor = LayerColor::create(GameInfos[game].color, visibleSize.width, visibleSize.height);
	bgcolor->setPosition(Point::ZERO);
	addChild(bgcolor);

	addChild(BackgroundWidget::createWithoutBackground());
    
	auto hooker = TopAnchor::create();
	addChild(hooker, 1);
    
	addChild(Vignette::create());

	auto gamelogo = MAKESPRITE(GameInfos[game].logo);
	hooker->addChild(gamelogo);
	gamelogo->setPosition(VCP(0.5f, 0.70f));
	gamelogo->runAction(RepeatForever::create(Sequence::createWithTwoActions(
		ScaleTo::create(3.0f, 1.05f),
		ScaleTo::create(3.0f, 1.0f)
		)));

	auto hookerMenu = Menu::create();
	hookerMenu->setPosition(Point::ZERO);
	hooker->addChild(hookerMenu);
    
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
	auto btnMenu = MAKEBUTTON("btnBackUp", "btnBackDn", GameInfoScene::menuCloseCallback);
	btnMenu->setPosition(VCP(0.03f, 0.95f));
	btnMenu->setAnchorPoint(Point(0, 1.0f));
	btnMenu->setScale(1.3f);
	hookerMenu->addChild(btnMenu);
    
	auto gems = GemsLayer::create();
	gems->setAnchorPoint(Point(1, 1));
	gems->setPosition(VCP(0.97f, 0.95f));
	hooker->addChild(gems);
#endif
    
	auto pMenu = Menu::create();
	pMenu->setPosition(Point::ZERO);
	addChild(pMenu, 1);

	auto episodetitle = Label::createWithTTF(LS(GameInfos[game].title), NORMAL_TTF, 60.0f);
	episodetitle->setHorizontalAlignment(TextHAlignment::CENTER);
	episodetitle->setPosition(CP(0.5f, 0.45f));
	addChild(episodetitle);

	auto unlocktext = Label::createWithTTF(LS(GameInfos[game].description), NORMAL_TTF, 38.0f);
	unlocktext->setHorizontalAlignment(TextHAlignment::CENTER);
	unlocktext->setPosition(CP(0.5f, 0.30f));
	addChild(unlocktext);

#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
	if (GameSettings::Gems >= 1)
	{
		//show buy button
		auto btnBuy = MakeButton("btnGreenUp", "btnGreenDn", LS("PlayFor1Gem"), 42.0f,
			CC_CALLBACK_1(GameInfoScene::btnBuyPressed, this));
		btnBuy->setPosition(CP(0.5f, 0.05f));
		btnBuy->setAnchorPoint(Point(0.5f, 0));
		pMenu->addChild(btnBuy);
	}
	else
	{
		auto errortext = Label::createWithTTF(LS("NotEnoughGems"), FANCY_TTF, 42.0f);
		errortext->setColor(Color3B::RED);
		errortext->enableShadow();
		errortext->setPosition(CP(0.5f, 0.05f));
		addChild(errortext);
	}
#else
    auto btnBuy = MakeButton("btnGreenUp", "btnGreenDn", LS("Play"), 42.0f,
                             CC_CALLBACK_1(GameInfoScene::btnBuyPressed, this));
    btnBuy->setPosition(CP(0.5f, 0.05f));
    btnBuy->setAnchorPoint(Point(0.5f, 0));
    pMenu->addChild(btnBuy);
#endif
}
Exemplo n.º 26
0
bool GameOverLayer::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

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

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    sdkbox::PluginVungle::init();
    sdkbox::PluginVungle::setListener(this);
#endif

	// load csb
	auto rootNode = CSLoader::createNode("GameOverLayer.csb");
	m_pAnimate = CSLoader::createTimeline("GameOverLayer.csb");
	rootNode->runAction(m_pAnimate);
	this->addChild(rootNode);

	m_pLayout = dynamic_cast<Layout*>(rootNode->getChildByName("Panel_GameOver"));
	// get botton
	m_pButtonRetry = dynamic_cast<Button*>(m_pLayout->getChildByName("Button_Retry"));
	m_pButtonRetry->addClickEventListener(CC_CALLBACK_1(GameOverLayer::menuCallback_Retry, this));
	m_pButtonMainMenu = dynamic_cast<Button*>(m_pLayout->getChildByName("Button_MainMenu"));
	m_pButtonMainMenu->addClickEventListener(CC_CALLBACK_1(GameOverLayer::menuCallback_MainMenu, this));
	m_pButtonRevive = dynamic_cast<Button*>(m_pLayout->getChildByName("Button_Revive"));
    m_pSpriteRevivePlay = dynamic_cast<Sprite*>(m_pButtonRevive->getChildByName("Sprite_playAd"));
	m_pButtonRevive->addClickEventListener(CC_CALLBACK_1(GameOverLayer::menuCallback_Revive, this));
	m_pButtonDoubleCoin = dynamic_cast<Button*>(m_pLayout->getChildByName("Button_DoubleCoin"));
    m_pSpriteDoublePlay = dynamic_cast<Sprite*>(m_pButtonDoubleCoin->getChildByName("Sprite_playAd"));
	m_pButtonDoubleCoin->addClickEventListener(CC_CALLBACK_1(GameOverLayer::menuCallback_DoubleGold, this));
    
	// if revive number get to max, disable the revive button
	if (m_pGameMediator->getReviveNumber() > 0)
	{
		m_pButtonRevive->setVisible(false);
		m_pButtonDoubleCoin->setPositionX(m_pLayout->getContentSize().width / 2);
	}
	// if gold == 0, disable the double button
	if (m_pPlayerData->getGoldNumber() == 0)
	{
		m_pButtonDoubleCoin->setVisible(false);
		m_pButtonRevive->setPositionX(m_pLayout->getContentSize().width / 2);
	}
    // if purchased noAd, noAd icon
    if(!m_pGameMediator->getIsAd())
    {
        m_pSpriteRevivePlay->setVisible(false);
        m_pSpriteDoublePlay->setVisible(false);
    }
	else
	{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
		if (!sdkbox::PluginVungle::isCacheAvailable())
		{
			// if vungle not ready
            m_pSpriteRevivePlay->setColor(Color3B(77, 77, 77));
            m_pSpriteDoublePlay->setColor(Color3B(77, 77, 77));
		}
#endif
	}

	// get score text
	m_pTextHighscore = dynamic_cast<Text*>(m_pLayout->getChildByName("Node_EnlargeAnimation")->getChildByName("Text_Highscore"));
	m_pTextGoldNumber = dynamic_cast<Text*>(m_pLayout->getChildByName("Node_EnlargeAnimation")->getChildByName("Node_GoldNumber")->getChildByName("Text_GoldNumber"));

	// set all text
	dynamic_cast<Text*>(m_pLayout->getChildByName("Text_GameOver"))->setString(m_pMapGameText->at("ID_GAMEOVER_TITLE"));
	m_pButtonRetry->setTitleText(m_pMapGameText->at("ID_GAME_RETRY"));
	m_pButtonMainMenu->setTitleText(m_pMapGameText->at("ID_GAME_MAINMENU"));
	m_pButtonRevive->setTitleText(m_pMapGameText->at("ID_GAMEOVER_REVIVE"));

	// run animation
    m_pLayout->setPosition(cocos2d::Point(winSize.width / 2, winSize.height + m_pLayout->getContentSize().height));
    m_pLayout->runAction(MoveTo::create(0.2f, cocos2d::Point(winSize.width / 2, winSize.height / 2)));

	this->showScore();

    return true;
}
Exemplo n.º 27
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));

    // 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 labelStart = LabelTTF::create("开始游戏","Arial",48);
    auto labelHelp = LabelTTF::create("游戏帮助","Arial",48);
    auto labelAbout = LabelTTF::create("退出游戏","Arial",48);
    
    auto startItem = MenuItemLabel::create(labelStart,CC_CALLBACK_1(HelloWorld::menuCallback, this));
    startItem->setTag(START);
    startItem->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height*0.5+50));
    
    auto helpItem = MenuItemLabel::create(labelHelp,CC_CALLBACK_1(HelloWorld::menuCallback,this));
    helpItem->setTag(HELP);
    helpItem->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height*0.5-50));
    
    auto aboutItem = MenuItemLabel::create(labelAbout,CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));
    aboutItem->setTag(ABOUT);
    aboutItem->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height*0.5-150));
    
    
    auto mainMenu = Menu::create(startItem, helpItem, aboutItem, NULL);
    mainMenu->setPosition(origin);
    this->addChild(mainMenu,1);
    
 
//    Sprite *background=Sprite::create("background2.png");
//    background->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height*0.5));
//    background->setScale(visibleSize.height/960);
//    addChild(background,0);
    Sprite *Hbackground = Sprite::create("Hbackground.png");
    Hbackground->setPosition(320,568);
    addChild(Hbackground);
    
    
    
//   auto *title=LabelTTF::create("蛋蛋快跑","Arial",60);
//   title->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height-title->getContentSize().height/2-180));
//    addChild(title,1);
    
        
    Sprite *title=Sprite::create("title.png");
    title->setPosition(Vec2(visibleSize.width*0.5,visibleSize.height-title->getContentSize().height/2-140));
    addChild(title);
        
    
    
    
    return true;
}
Exemplo n.º 28
0
bool MainMenuLayer::init()
{
	if (!Layer::init())
	{
		return false;
	}

	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();

	CC_SAFE_RELEASE_NULL(_pPauseAndGold);
	CC_SAFE_RELEASE_NULL(_pRestartButton);
	CC_SAFE_RELEASE_NULL(_pGoldText);
	CC_SAFE_RELEASE_NULL(_pGoldImage);
	CC_SAFE_RELEASE_NULL(_pPauseButton);

	_pPauseAndGold = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("HUD/HUD.json");
	this->addChild(_pPauseAndGold, 100);
	CC_SAFE_RETAIN(_pPauseAndGold);

	_pGoldText = dynamic_cast<ui::TextAtlas *>(_pPauseAndGold->getChildByName("gold"));
	CC_SAFE_RETAIN(_pGoldText);
	_pGoldText->setString("0");
	_pGoldText->setPosition(Vec2(origin.x + visibleSize.width - _pGoldText->getContentSize().width,
		origin.y + visibleSize.height - _pGoldText->getContentSize().height));

	_pGoldImage = dynamic_cast<ui::ImageView *>(_pPauseAndGold->getChildByName("Image_3"));
	_pGoldImage->setPosition(Vec2(_pGoldText->getPositionX() - _pGoldImage->getContentSize().width,
		_pGoldText->getPositionY()));
	CC_SAFE_RETAIN(_pGoldImage);
	
	_pPauseButton = dynamic_cast<cocos2d::ui::Button *>(_pPauseAndGold->getChildByName("Button_1"));
	CC_SAFE_RETAIN(_pPauseButton);
	_pPauseButton->addTouchEventListener(
		[&](Ref * sender,cocos2d::ui::Widget::TouchEventType type)
		{
			static bool bIsPaused = false;
			if (type == cocos2d::ui::Widget::TouchEventType::ENDED)
			{
				if (bIsPaused)
				{
					bIsPaused = false;
					Director::getInstance()->resume();
				}
				else
				{
					Director::getInstance()->pause();
					bIsPaused = true;
				}
			}//if_type
			
		}//lambdy
	);

	_pPauseButton->setPosition(Vec2(origin.x + _pPauseButton->getContentSize().width / 2,
		origin.y + visibleSize.height - _pPauseButton->getContentSize().height / 2));
	_pPauseButton->setVisible(true);

	auto closeItem = MenuItemImage::create(
		"CloseNormal.png",
		"CloseSelected.png",
		CC_CALLBACK_1(MainMenuLayer::menuCloseCallback, this));

	closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width / 2,
		origin.y + closeItem->getContentSize().height / 2));

	auto menu = Menu::create(closeItem, NULL);
	menu->setPosition(Vec2::ZERO);
	this->addChild(menu, 100);


	auto label = Label::createWithTTF("Game Parkour", "fonts/Marker Felt.ttf", 24);
	label->setPosition(Vec2(origin.x + visibleSize.width / 2,
		origin.y + visibleSize.height - label->getContentSize().height));

	this->addChild(label,100);

	//this->scheduleUpdate();

	_pGoldChanged = EventListenerCustom::create(RegitsteredEvents::GOLD_CHANGED, CC_CALLBACK_1(MainMenuLayer::ChangeGold, this));
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(_pGoldChanged, this);
	CC_SAFE_RETAIN(_pGoldChanged);

	_pRestartButton = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("Menu/Menu.json");
	this->addChild(_pRestartButton, 10);
	auto restart_btn = dynamic_cast<cocos2d::ui::Button *>(_pRestartButton->getChildByName("restart"));
	restart_btn->addTouchEventListener([&](Ref* sender, cocos2d::ui::Widget::TouchEventType type) {
		if (type == cocos2d::ui::Widget::TouchEventType::ENDED) {
			Director::getInstance()->getEventDispatcher()->dispatchCustomEvent(RegitsteredEvents::GAME_RESTART);
		}
	});

	_pRestartButton->setVisible(false);

	CC_SAFE_RETAIN(_pRestartButton);
	

	return true;
}
Exemplo n.º 29
0
bool GameLayer::init(){
    if(Layer::init()) {
        //get the origin point of the X-Y axis, and the visiable size of the screen
        Size visiableSize = Director::getInstance()->getVisibleSize();
        Point origin = Director::getInstance()->getVisibleOrigin();
        
        this->gameStatus = GAME_STATUS_READY;
        this->score = 0;
        
        // Add the bird
        this->bird = BirdSprite::getInstance();
        this->bird->createBird();
        PhysicsBody *body = PhysicsBody::create();
        body->addShape(PhysicsShapeCircle::create(BIRD_RADIUS));
        body->setCategoryBitmask(ColliderTypeBird);
        body->setCollisionBitmask(ColliderTypeLand & ColliderTypePip | ColliderTypeBall);
        body->setContactTestBitmask(ColliderTypeLand | ColliderTypePip | ColliderTypeBall);
        body->setDynamic(true);
        body->setLinearDamping(0.0f);
        body->setGravityEnable(false);
        this->bird->setPhysicsBody(body);
        this->bird->setPosition(origin.x + visiableSize.width*1/3 - 5,origin.y + visiableSize.height/2 + 5);
        this->bird->idle();
        this->addChild(this->bird);
        
        /*
         //初始化加速粒子
         accelerateParticle = ParticleSystemQuad::create("particleImpact.plist");
         accelerateParticle->setScale(0.5f);
         accelerateParticle->setPosition(0,0);
         addChild(accelerateParticle);
         */
        accelerateParticle = NULL;
        pipSpeed = 2;
        /*
         //闪亮
         Blink *blink = Blink::create(5.0f, 10);
         bird->runAction(blink);
         */
        //Ball
        this->ball = Sprite::create("ball.png");
        PhysicsBody *ballbody = PhysicsBody::create();
        ballbody->addShape(PhysicsShapeCircle::create(BIRD_RADIUS+5));
        
        
        ballbody->setCategoryBitmask(ColliderTypeBall);
        ballbody->setCollisionBitmask(ColliderTypePip | ColliderTypeLand);
        ballbody->setContactTestBitmask(ColliderTypePip | ColliderTypeLand);
        
        
        ballbody->setDynamic(true);
        ballbody->setLinearDamping(0.0f);
        ballbody->setGravityEnable(false);
        ball->setPhysicsBody(ballbody);
        //    static Shaky3D* create(float duration, const Size& gridSize, int range, bool shakeZ);
        
        ball->setPosition(bird->getPositionX(),bird->getPositionY()+30);
        ball->setTag(100);
        //		addChild(ball);
        
        BallisTouch = false;
        
        //BallName
        ballName = Sprite::create("BallWithHoney.png");
        ballName->setPosition(ball->getPositionX(),ball->getPositionY()+40);
        //addChild(ballName);
        
        // Add the ground
        this->groundNode = Node::create();
        float landHeight = BackgroundLayer::getLandHeight();
        auto groundBody = PhysicsBody::create();
        groundBody->addShape(PhysicsShapeBox::create(Size(288, landHeight)));
        groundBody->setDynamic(false);
        groundBody->setLinearDamping(0.0f);
        groundBody->setCategoryBitmask(ColliderTypeLand);
        groundBody->setCollisionBitmask(ColliderTypeBird | ColliderTypeBall);
        groundBody->setContactTestBitmask(ColliderTypeBird | ColliderTypeLand);
        this->groundNode->setPhysicsBody(groundBody);
        this->groundNode->setPosition(144, landHeight/2);
        this->addChild(this->groundNode);
        
        // init land
        this->landSpite1 = Sprite::createWithSpriteFrame(AtlasLoader::getInstance()->getSpriteFrameByName("land"));
        this->landSpite1->setAnchorPoint(Point::ZERO);
        this->landSpite1->setPosition(Point::ZERO);
        this->addChild(this->landSpite1, 30);
        
        this->landSpite2 = Sprite::createWithSpriteFrame(AtlasLoader::getInstance()->getSpriteFrameByName("land"));
        this->landSpite2->setAnchorPoint(Point::ZERO);
        this->landSpite2->setPosition(this->landSpite1->getContentSize().width-2.0f,0);
        this->addChild(this->landSpite2, 30);
        
        shiftLand = schedule_selector(GameLayer::scrollLand);
        this->schedule(shiftLand, 0.01f);
        
        this->scheduleUpdate();
        
        auto contactListener = EventListenerPhysicsContact::create();
        contactListener->onContactBegin = CC_CALLBACK_1(GameLayer::onContactBegin, this);
        this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(contactListener, this);
        
        return true;
    }else {
        return false;
    }
}
Exemplo n.º 30
0
bool HelloWorld::init()
{
    if (!Layer::init())
    {
        return false;
    }

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

    //在界面上添加菜单内容

    //添加关闭程序按钮
    auto closeItem = MenuItemImage::create(
                         "CloseNormal.png",//默认显示图片
                         "CloseSelected.png",//点击按下显示图片
                         CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));//绑定点击事件

    closeItem->setPosition(Point(origin.x + visibleSize.width - closeItem->getContentSize().width / 2,
                                 origin.y + closeItem->getContentSize().height / 2));//设定显示位置为屏幕宽度-控件自身宽高一半。也就是显示在右下角


    //添加开始按钮
    auto startMenu = MenuItemImage::create(
                         "btn_start.png",
                         "btn_start.png",
                         CC_CALLBACK_1(HelloWorld::menuStartCallback, this));

    startMenu->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y + 50));

    //添加帮助按钮
    auto helpMenu = MenuItemImage::create(
                        "btn_help.png",
                        "btn_help.png",
                        CC_CALLBACK_1(HelloWorld::menuHelpCallback, this));

    helpMenu->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
    //添加退出按钮
    auto exitMenu = MenuItemImage::create(
                        "btn_exit.png",
                        "btn_exit.png",
                        CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));

    exitMenu->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y - 50));


    //创建菜单载体,将上面的菜单内容都添加到载体中
    auto pMenu = Menu::create(startMenu, helpMenu, exitMenu, closeItem, NULL);//添加制定的菜单项
    pMenu->setPosition(Point::ZERO);//设置显示位置
    this->addChild(pMenu, 1);//添加到场景中


    //制定游戏背景
    auto sprite = Sprite::create("HelloWorld.png");
    sprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
    this->addChild(sprite, 0);

    //------------------------

    return true;
}