Example #1
0
bool AboutLayer::init()
{
	if (!Layer::init())
	{
		return false;
	}

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

	auto bg = Sprite::create("background.png");
	bg->setAnchorPoint(Vec2::ZERO);
	bg->setPosition(Vec2::ZERO);
	this->addChild(bg);

	auto aboutMsg = Sprite::createWithSpriteFrameName("AboutMsg.png");
	aboutMsg->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
	aboutMsg->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f));
	addChild(aboutMsg);

	auto backItem = MenuItemImage::create();
	backItem->setNormalSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("backNormal.png"));
	backItem->setSelectedSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("backPressed.png"));
	backItem->setCallback([](Ref* sender){
		Director::getInstance()->popScene();
	});
	backItem->setPosition(Vec2(visibleSize.width/2.0f, backItem->getContentSize().height*3.0f));

	auto menu = Menu::create(backItem, nullptr);
	menu->setPosition(Vec2::ZERO);
	menu->setAnchorPoint(Vec2::ZERO);
	addChild(menu);

	return true;
}
Example #2
0
void GameLayer::showDialog()
{
	if (isPaused || isTouched)return;
	else isPaused = true;

	this->unscheduleUpdate();
	dispatcher->removeEventListener(eventTouch);

	dialog = LayerColor::create(Color4B(0.0f, 0.0f, 0.0f, 128.0f));
	dialog->setOpacity(0.0f);
	this->addChild(dialog, 6);
	dialog->runAction(FadeTo::create(0.15f, 128.0f));

	auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("Button5.png");
	auto b1 = MenuItemImage::create("", "", CC_CALLBACK_1(GameLayer::buttonCallback, this));
	b1->setNormalSpriteFrame(frame);
	b1->setSelectedSpriteFrame(frame);
	b1->setPosition(-300.0f, 0.0f);
	b1->setTag(1);
	b1->setOpacity(0.0f);
	b1->runAction(FadeIn::create(0.2f));

	frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("Button4.png");
	auto b2 = MenuItemImage::create("", "", CC_CALLBACK_1(GameLayer::buttonCallback, this));
	b2->setNormalSpriteFrame(frame);
	b2->setSelectedSpriteFrame(frame);
	b2->setPosition(300.0f, 0.0f);
	b2->setTag(2);
	b2->setOpacity(0.0f);
	b2->runAction(FadeIn::create(0.2f));

	auto m = Menu::create(b1, b2, nullptr);
	m->setPosition(Global::getPointCenter());
	dialog->addChild(m, 2);

	auto l1 = TextBase::createText(textTypeHome);
	l1->setPosition(Global::getPointCenter() + Vec2(-300.0f, -190.0f));
	l1->setOpacity(0.0f);
	dialog->addChild(l1, 3);
	l1->runAction(FadeIn::create(0.2f));

	auto l2 = TextBase::createText(textTypeContinue);
	l2->setPosition(Global::getPointCenter() + Vec2(300.0f, -190.0f));
	l2->setOpacity(0.0f);
	dialog->addChild(l2, 3);
	l2->runAction(FadeIn::create(0.2f));
}
Example #3
0
bool GameLayer::init()
{
	if (!LayerColor::initWithColor(Color4B(255, 255, 255, 255)))
	{
		return false;
	}

	dockUp = Sprite::createWithSpriteFrameName("Dock.png");
	dockUp->setPosition(Global::getWinSizeHalfX(), Global::getWinSizeY() + 100.0f);
	this->addChild(dockUp, 4);
	


	dockDown = Sprite::createWithSpriteFrameName("Dock.png");
	dockDown->setPosition(Global::getWinSizeHalfX(), -100.0f);
	this->addChild(dockDown, 4);


	scoreLabel = Label::createWithTTF("0", "fonts/Marker Felt.ttf", 100.0f);
	scoreLabel->setPosition(dockUp->getContentSize().width*0.5f + Global::getWinSizeX()*0.25f, dockUp->getContentSize().height*0.5f);
	scoreLabel->setTextColor(Color4B::BLACK);
	dockUp->addChild(scoreLabel, 5);

	lifeLabel = Label::createWithTTF("0", "fonts/Marker Felt.ttf", 100.0f);
	lifeLabel->setPosition(dockUp->getContentSize().width*0.5f - Global::getWinSizeX()*0.25f, dockUp->getContentSize().height*0.5f);
	lifeLabel->setTextColor(Color4B::BLACK);
	dockUp->addChild(lifeLabel, 5);


	background = Sprite::create("Background.png");
	background->setPosition(Global::getPointCenter());
	background->setOpacity(50.0f);
	this->addChild(background);

	

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
	auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("Pause.png");
	auto pause = MenuItemImage::create("", "", CC_CALLBACK_1(GameLayer::buttonCallback, this));
	pause->setScale(0.5f);
	pause->setNormalSpriteFrame(frame);
	pause->setSelectedSpriteFrame(frame);
	pause->setTag(3);
	pause->setPosition(Global::getWinSizeX() - 50.0f, Global::getWinSizeY() - 50.0f);
	pause->setAnchorPoint(Vec2(1.0f, 1.0f));

	auto menu = Menu::create(pause, nullptr);
	menu->setPosition(0.0f, 0.0f);
	this->addChild(menu, 5);

	scoreLabel->setPosition(dockUp->getContentSize().width*0.5f + Global::getWinSizeX()*0.10f, dockUp->getContentSize().height*0.5f);
	lifeLabel->setPosition(dockUp->getContentSize().width*0.5f - Global::getWinSizeX()*0.3f, dockUp->getContentSize().height*0.5f);

#endif



	return true;
}
Example #4
0
MenuItemImage* CustomTool::createMenuItemImage(const char* normal, const char* selected, ccMenuCallback callback)
{
	auto item = MenuItemImage::create();
	auto nsf = SpriteFrameCache::getInstance()->getSpriteFrameByName(normal);
	auto ssf = SpriteFrameCache::getInstance()->getSpriteFrameByName(selected);
	item->setNormalSpriteFrame(nsf);
	item->setSelectedSpriteFrame(ssf);
	item->setCallback(callback);
	return item;
}
Example #5
0
void CButton::setSelectedSpriteFrameName(const char* pSpriteName)
{
	SpriteFrame *pFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(pSpriteName);

#if COCOS2D_DEBUG > 0
	char msg[256] = {0};
	sprintf(msg, "Invalid spriteFrameName: %s", pSpriteName);
	CCAssert(pFrame != NULL, msg);
#endif

	return setSelectedSpriteFrame(pFrame);
}
Example #6
0
MenuItemImage* createMenuItemImageWithSpriteFrame(const std::string& normalSpriteFrame, const std::string& selectedSpriteFrame, const std::string& disabledSpriteFrame, const ccMenuCallback& callback, Vec2 anchor, Vec2 pos){
    auto item = MenuItemImage::create();

    auto cache = CCSpriteFrameCache::getInstance();
    item->setNormalSpriteFrame(cache->getSpriteFrameByName(normalSpriteFrame));
    item->setSelectedSpriteFrame(cache->getSpriteFrameByName(selectedSpriteFrame));
    item->setDisabledSpriteFrame(cache->getSpriteFrameByName(disabledSpriteFrame));
    
    item->setCallback(callback);
    item->setAnchorPoint(anchor);
    item->setPosition(pos);
    item->setName(normalSpriteFrame);
    return item;
}
Example #7
0
bool MainmenuScene::init()
{
    if(!Layer::init())
    {
        return false;
    }
    SpriteFrameCache::getInstance()->addSpriteFramesWithFile("image/role.plist", "image/role.pvr.ccz");
    SpriteFrameCache::getInstance()->addSpriteFramesWithFile("image/ui.plist", "image/ui.pvr.ccz");
    auto background = Sprite::create("image/start-bg.jpg");
    background->setPosition(VisibleRect::Center());
    this->addChild(background);
    
    auto normal = SpriteFrameCache::getInstance()->getSpriteFrameByName("start1.png");
    auto select = SpriteFrameCache::getInstance()->getSpriteFrameByName("start2.png");
    auto item = MenuItemImage::create();
    item->setNormalSpriteFrame(normal);
    item->setSelectedSpriteFrame(select);
    item->setCallback(CC_CALLBACK_1(MainmenuScene::onStart, this));
    auto menu = Menu::createWithItem(item);
    this->addChild(menu);

    return true;
}
bool WelcomeScene::init()
{
	if (!Layer::init())
	{
		return false;
	}
	auto visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("image/all_pic.plist");

	bgLayer = BgLayer::create();
	bgLayer->removeChildByTag(BgLayer::TimeTag);
	bgLayer->removeChildByTag(BgLayer::ProgressTag);
	bgLayer->removeChildByTag(BgLayer::ProgressBgtag);
	this->addChild(bgLayer);

	menuLayer = MenuLayer::create();
	this->addChild(menuLayer);

	// 标题
	auto titleLabel = Label::createWithTTF("Meteorite Crisis", "fonts/Marker Felt.ttf", 60);
	titleLabel->setPosition(visibleSize.width / 2, visibleSize.height * 0.8);
	addChild(titleLabel);

	//menu play
	auto one_man = MenuItemImage::create();
	auto normal1 = SpriteFrameCache::getInstance()->getSpriteFrameByName("one_man_normal.png");
	auto selected1 = SpriteFrameCache::getInstance()->getSpriteFrameByName("one_man_clicked.png");
	one_man->setNormalSpriteFrame(normal1);
	one_man->setSelectedSpriteFrame(selected1);
	one_man->setCallback([](Ref*){
		auto s = GameScene::createScene();
		float t = 0.5f;
		struct timeval psv;
		gettimeofday(&psv, NULL);
		unsigned rand_seed = (unsigned)(psv.tv_sec + psv.tv_usec);    //转化为毫秒 
		srand(rand_seed);
		float choice = rand_0_1();
		if (choice < 0.25)
		{
			Director::getInstance()->replaceScene(TransitionFlipY::create(t, s));
		}
		else if (choice >= 0.25 && choice < 0.5)
		{
			Director::getInstance()->replaceScene(TransitionFlipY::create(t, s));
		}
		else if (choice >= 0.5 && choice < 0.75)
		{
			Director::getInstance()->replaceScene(TransitionProgressRadialCCW::create(t, s));
		}
		else if (choice >= 0.75 && choice < 1.0)
		{
			Director::getInstance()->replaceScene(TransitionProgressRadialCW::create(t, s));
		}
	});
	one_man->setScale(0.5f);
	//menu how to play
	auto howToPlay = MenuItemImage::create();
	auto normal2 = SpriteFrameCache::getInstance()->getSpriteFrameByName("howtoplay_normal.png");
	auto selected2 = SpriteFrameCache::getInstance()->getSpriteFrameByName("howtoplay_clicked.png");
	howToPlay->setNormalSpriteFrame(normal2);
	howToPlay->setSelectedSpriteFrame(selected2);
	howToPlay->setCallback([&,this](Ref*){
		auto s = HowToPlay::createScene();
		float t = 0.5f;
		struct timeval psv;
		gettimeofday(&psv, NULL);
		unsigned rand_seed = (unsigned)(psv.tv_sec + psv.tv_usec);    //转化为毫秒 
		srand(rand_seed);
		float choice = rand_0_1();
		if (choice < 0.25)
		{
			Director::getInstance()->replaceScene(TransitionFlipY::create(t, s));
		}
		else if (choice >= 0.25 && choice < 0.5)
		{
			Director::getInstance()->replaceScene(TransitionFlipY::create(t, s));
		}
		else if (choice >= 0.5 && choice < 0.75)
		{
			Director::getInstance()->replaceScene(TransitionProgressRadialCCW::create(t, s));
		}
		else if (choice >= 0.75 && choice < 1.0)
		{
			Director::getInstance()->replaceScene(TransitionProgressRadialCW::create(t, s));
		}
	});
	howToPlay->setScale(0.5f);
	howToPlay->setPositionY(- howToPlay->getContentSize().height/2 - 5);
	auto menu = Menu::create(one_man, howToPlay, NULL);
	menu->setPosition(visibleSize.width / 2, visibleSize.height * 0.5);
	menu->setAnchorPoint(Vec2(0.5,1));
	
	addChild(menu);

	// 主角模型
	auto player = Sprite::createWithSpriteFrameName("SpaceFlier4.png");
	player->setScale(0.5);
	player->setPosition(visibleSize.width/2, visibleSize.height * 0.65);
	auto cache = SpriteFrameCache::getInstance();
	Vector<SpriteFrame*> vec_sf;
	SpriteFrame* sf = NULL;
	for (int i = 1; i <= 5; ++i)
	{
		sf = cache->getSpriteFrameByName(StringUtils::format("SpaceFlier%d.png", i));
		vec_sf.pushBack(sf);
	}
	Animation* animation = Animation::createWithSpriteFrames(vec_sf, 0.05f, -1);
	auto action = Animate::create(animation);
	player->runAction(CCRepeatForever::create(
		Sequence::create(action, action->reverse(), NULL)));
	addChild(player);

	// 最高分
	// 最高分标题
	auto highScoreTitle = Label::createWithTTF("BestScore:", "fonts/Marker Felt.ttf", 25);
	highScoreTitle->setPosition(visibleSize.width * 0.48, visibleSize.height * 0.2);
	this->addChild(highScoreTitle);
	// 最高分
	auto bestScore = UserDefault::getInstance()->getIntegerForKey("highScore");
	auto highScore = Label::createWithTTF(
		__String::createWithFormat("%i", bestScore)->getCString(),
		"fonts/Marker Felt.ttf",
		25);
	highScore->setPosition(visibleSize.width * 0.6 , visibleSize.height * 0.2);
	this->addChild(highScore);

	return true;
}
Example #9
0
void CCMenuItemImage::setSelectedSpriteFrame(const char *fileName)
{
    setSelectedSpriteFrame(createSpriteFrame(fileName));
}