コード例 #1
0
MenuItem* GameOverLayer::displayGameCenterBtn()
{
    auto spriteNormal = Sprite::create("base.png");
    spriteNormal->setColor(Color3B(246, 222, 160));
    auto spriteSelected = Sprite::create("base.png");
    spriteSelected->setColor(Color3B(248, 224, 164));
    auto spriteDisabled = Sprite::create("base.png");
    spriteDisabled->setColor(Color3B::GRAY);
    
    auto btn = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, CC_CALLBACK_1(GameOverLayer::onClickGameCenter, this) );
    btn->setScale(3.6f, 1.8f);
    btn->setPosition(Vec2(170, -110));
    btn->setOpacity(200);
    
    auto cupIcon = Label::createWithTTF(FC_ICON_BIG, FA_MGR->getContent(FAGamepad));
    if (cupIcon) {
        cupIcon->setTextColor(Color4B::WHITE);
        cupIcon->enableOutline(Color4B::GRAY);
        cupIcon->setScaleX(1.0f / 3.6f);
        cupIcon->setScaleY(1.0f / 1.8f);
        auto size = btn->getContentSize();
        cupIcon->setPosition(Vec2(size.width / 2, size.height / 2));
        btn->addChild(cupIcon, 10);
    }
    
    return btn;
}
コード例 #2
0
ファイル: OptionScene.cpp プロジェクト: qqbbtt/FlightNight
/*------------------------------------------------------------------------------------
| 함 수 명  : initLabel(void)
| 매개변수  :
| 리 턴 값  :
| 설    명  : 라벨 초기화
|------------------------------------------------------------------------------------*/
void OptionScene::initLabel()
{
	auto labe_Music = Label::createWithTTF("", "fonts/hans punch.ttf", 25);
//	labe_Music->setAnchorPoint(Point(0, 1));
	labe_Music->setPosition(Point(SizeW/2, SizeH - 200));
	labe_Music->enableOutline(Color4B::GRAY, 1);
	labe_Music->setTag(TAG_OPTION_LABEL_MUSIC);
	this->addChild(labe_Music);

	auto label_Effect = Label::createWithTTF("", "fonts/hans punch.ttf", 25);
//	label_Effect->setAnchorPoint(Point(0, 1));
	label_Effect->setPosition(Point(SizeW / 2, SizeH - 280));
	label_Effect->enableOutline(Color4B::GRAY, 1);
	label_Effect->setTag(TAG_OPTION_LABEL_EFFECT);
	this->addChild(label_Effect);
}
コード例 #3
0
ファイル: MenuScene.cpp プロジェクト: Evilcome/GrubbyWorm-IOS
void MenuScene::display()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    auto layer = LayerColor::create(Color4B::WHITE, visibleSize.width, visibleSize.height);
    
    this->addChild(layer);
    
    // logo
    auto logoLabel = Label::createWithTTF(FC_NUMBER_MIDDLE, "grubby worm");
    if (logoLabel) {
        logoLabel->setTextColor(C4_LIGHT_GREEN);
        logoLabel->enableOutline(C4_DARK_GREEN);
        logoLabel->setAnchorPoint(Vec2(0.5, 1));
        logoLabel->setPosition(Vec2(VisibleRect::center().x, VisibleRect::top().y - 95));
        this->addChild(logoLabel, 10, logoTag);
        
        auto action = RotateTo::create(3, -2);
        auto action2 = RotateTo::create(6, 2);
        logoLabel->runAction(RepeatForever::create(Sequence::create(action, action2, nullptr)));
    }
    
    // buttons
    auto playBtn = displayPlayBtn();
    auto gameCenterBtn = displayGameCenterBtn();
    
    auto menu = Menu::create(playBtn, gameCenterBtn, nullptr);
    menu->setPosition(Vec2(VisibleRect::center().x, VisibleRect::center().y - 100));
    this->addChild(menu, 10, menuTag);

}
コード例 #4
0
ファイル: MenuScene.cpp プロジェクト: Evilcome/GrubbyWorm-IOS
MenuItem* MenuScene::displayPlayBtn()
{
    auto spriteNormal = Sprite::create("base.png");
    spriteNormal->setColor(Color3B(170, 226, 246));
    auto spriteSelected = Sprite::create("base.png");
    spriteSelected->setColor(Color3B(182, 230, 246));
    auto spriteDisabled = Sprite::create("base.png");
    spriteDisabled->setColor(Color3B::GRAY);
    
    auto btn = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, CC_CALLBACK_1(MenuScene::onClickPlay, this) );
    btn->setScale(3.6f, 1.8f);
    btn->setPosition(Vec2(-170, 0));
    btn->setOpacity(200);
    
    auto cupIcon = Label::createWithTTF(FC_ICON_BIG, FA_MGR->getContent(FAPlayCircle));
    if (cupIcon) {
        cupIcon->setTextColor(Color4B::WHITE);
        cupIcon->enableOutline(Color4B::GRAY);
        cupIcon->setScaleX(1.0f / 3.6f);
        cupIcon->setScaleY(1.0f / 1.8f);
        auto size = btn->getContentSize();
        cupIcon->setPosition(Vec2(size.width / 2, size.height / 2));
        btn->addChild(cupIcon, 10);
    }
    
    return btn;
}
コード例 #5
0
ファイル: UIText.cpp プロジェクト: bonlai/3kaigame
void Text::copySpecialProperties(Widget *widget)
{
    Text* label = dynamic_cast<Text*>(widget);
    if (label)
    {
        setFontName(label->_fontName);
        setFontSize(label->getFontSize());
        setTextColor(label->getTextColor());
        setString(label->getString());
        setTouchScaleChangeEnabled(label->_touchScaleChangeEnabled);
        setTextHorizontalAlignment(label->_labelRenderer->getHorizontalAlignment());
        setTextVerticalAlignment(label->_labelRenderer->getVerticalAlignment());
        setTextAreaSize(label->_labelRenderer->getDimensions());
        setContentSize(label->getContentSize());

        LabelEffect effectType = label->getLabelEffectType();
        if (effectType == LabelEffect::GLOW)
        {
            enableGlow(label->getEffectColor());
        }
        else if (effectType == LabelEffect::OUTLINE)
        {
            enableOutline(label->getEffectColor(),label->getOutlineSize());
        }
        if (label->isShadowEnabled())
        {
            enableShadow(label->getShadowColor(),label->getShadowOffset(),label->getShadowBlurRadius());
        }
    }
}
コード例 #6
0
ファイル: CCLabel.cpp プロジェクト: wade0317/Calc
void Label::setFontDefinition(const FontDefinition& textDefinition)
{
    _systemFont = textDefinition._fontName;
    _systemFontSize = textDefinition._fontSize;
    _hAlignment = textDefinition._alignment;
    _vAlignment = textDefinition._vertAlignment;
    setDimensions(textDefinition._dimensions.width, textDefinition._dimensions.height);
    Color4B textColor = Color4B(textDefinition._fontFillColor);
    textColor.a = textDefinition._fontAlpha;
    setTextColor(textColor);
    
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID) && (CC_TARGET_PLATFORM != CC_PLATFORM_IOS)
    if (textDefinition._stroke._strokeEnabled)
    {
        CCLOGERROR("Currently only supported on iOS and Android!");
    }
    _outlineSize = 0.f;
#else
    if (textDefinition._stroke._strokeEnabled && textDefinition._stroke._strokeSize > 0.f)
    {
        Color4B outlineColor = Color4B(textDefinition._stroke._strokeColor);
        outlineColor.a = textDefinition._stroke._strokeAlpha;
        enableOutline(outlineColor, textDefinition._stroke._strokeSize);
    }
#endif

    if (textDefinition._shadow._shadowEnabled)
    {
        enableShadow(Color4B(0, 0, 0, 255 * textDefinition._shadow._shadowOpacity),
            textDefinition._shadow._shadowOffset, textDefinition._shadow._shadowBlur);
    }
}
コード例 #7
0
void LabelTTF::setFontFile(const std::string& fontFile)
{
	TTFConfig ttfConfig = getTTFConfig();

	if ( FileUtils::getInstance()->isFileExist(fontFile) )
	{
		TTFConfig newConfig(fontFile.c_str(),ttfConfig.fontSize,GlyphCollection::DYNAMIC);
		setTTFConfig(newConfig);
		enableOutline(Color4B::BLACK,2);
	}
}
コード例 #8
0
void LabelTTF::setFontSize(float fontSize)
{
	TTFConfig ttfConfig = getTTFConfig();

	if ( FileUtils::getInstance()->isFileExist(ttfConfig.fontFilePath) )
	{
		TTFConfig newConfig(ttfConfig.fontFilePath.c_str(),fontSize,GlyphCollection::DYNAMIC);
		setTTFConfig(newConfig);
		enableOutline(Color4B::BLACK,2);
	}
}
コード例 #9
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);
}
コード例 #10
0
ファイル: OptionLayer.cpp プロジェクト: TheWindShan/Blocks
void OptionLayer::addOption()
{

	this->setDJ(DiscJockey::getInstance());

	Node *optionNode = CSLoader::createNode("optionNode.csb");//传入Studio2.x的资源路径
	optionNode->setPosition(Point(originPoint.x + visibleSize.width / 2, (originPoint.y + visibleSize.height / 2)));
	this->addChild(optionNode);
	optionNode->setName("optionNode");

	this->setAnchorPoint(Point(0.5, 0.5));
	this->ignoreAnchorPointForPosition(false);
	this->setPosition(Point(originPoint.x + visibleSize.width / 2, -(originPoint.y + visibleSize.height / 2)));


	auto eventListener = EventListenerTouchOneByOne::create();
	eventListener->setSwallowTouches(true);
	eventListener->onTouchBegan = CC_CALLBACK_2(OptionLayer::onTouchBegan, this);
	eventListener->onTouchCancelled = CC_CALLBACK_2(OptionLayer::onTouchCancelled, this);
	eventListener->onTouchEnded = CC_CALLBACK_2(OptionLayer::onTouchEnded, this);
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(eventListener, this);

	auto cancelButton = dynamic_cast<ui::Button*> (optionNode->getChildByName("cancelButton"));
	if (cancelButton)
	{
		cancelButton->addClickEventListener(CC_CALLBACK_1(OptionLayer::cancel, this));
	}

	//set font name again due to the cocos studio 2.0 bugs (Text load ttf error)
	for (auto node : optionNode->getChildren())
	{
		auto textNode = dynamic_cast<ui::Text*>(node);
		if (textNode)
		{
			textNode->enableOutline(Color4B(25, 26, 25, 155), 2);
		}
	}

	auto musicBox = dynamic_cast<ui::CheckBox*>(optionNode->getChildByName("soundCheck"));
	musicBox->addEventListenerCheckBox(this, checkboxselectedeventselector(OptionLayer::musicCheckBoxCallback));
	auto effectBox = dynamic_cast<ui::CheckBox*>(optionNode->getChildByName("effectCheck"));
	effectBox->addEventListenerCheckBox(this, checkboxselectedeventselector(OptionLayer::effectCheckBoxCallback));
	musicBox->setSelectedState(getDJ()->isMusicOn());
	effectBox->setSelectedState(getDJ()->isEffectOn());

	int curSpeed = CommandCenter::getInstance()->getSpeedLevel();
	auto textNode = dynamic_cast<ui::Text*>(optionNode->getChildByName("textCurSpeed"));
	textNode->setText(String::createWithFormat("%d", curSpeed)->getCString());
	auto speedSlider = dynamic_cast<ui::Slider*>(optionNode->getChildByName("speedSlider"));
	speedSlider->addEventListenerSlider(this, sliderpercentchangedselector(OptionLayer::speedSliderCallback));
	speedSlider->setPercent(curSpeed * 10);
}
コード例 #11
0
ファイル: OptionScene.cpp プロジェクト: qqbbtt/FlightNight
/*------------------------------------------------------------------------------------
| 함 수 명  : initMenu(void)
| 매개변수  :
| 리 턴 값  :
| 설    명  : 메뉴 초기화
|------------------------------------------------------------------------------------*/
void OptionScene::initMenu()
{
	// 데이터 정렬 메뉴
	auto label_Music = Label::createWithTTF("배경음악", "fonts/hans punch.ttf", 30);
//	label_Time->enableShadow(Color4B::YELLOW, Size(2, -2));
	label_Music->enableOutline(Color4B::GRAY, 1);
	label_Music->setColor(Color3B(255, 255, 0));
	auto menu_Music = MenuItemLabel::create(label_Music, CC_CALLBACK_1(OptionScene::menuCallback, this));
	menu_Music->setTag(TAG_OPTION_MENU_MUSIC);

	auto label_Effect = Label::createWithTTF("효과음", "fonts/hans punch.ttf", 30);
	label_Effect->enableOutline(Color4B::GRAY, 1);
	label_Effect->setColor(Color3B(255, 255, 0));
	auto menu_Effect = MenuItemLabel::create(label_Effect, CC_CALLBACK_1(OptionScene::menuCallback, this));
	menu_Effect->setTag(TAG_OPTION_MENU_EFFECT);

	auto label_Delete = Label::createWithTTF("순위 데이터 삭제", "fonts/hans punch.ttf", 30);
	label_Delete->enableOutline(Color4B::GRAY, 1);
	label_Delete->setColor(Color3B(255, 255, 0));
	auto menu_Delete = MenuItemLabel::create(label_Delete, CC_CALLBACK_1(OptionScene::menuCallback, this));
	menu_Delete->setTag(TAG_OPTION_MENU_DELETE);

	auto menu = Menu::create(menu_Music, menu_Effect, menu_Delete, NULL);
	menu->alignItemsVertically();
	menu->setPositionY(SizeH-250);
	this->addChild(menu);

	// 좌우 이동 메뉴 아이템 셋팅
	auto menu_Back = MenuItemImage::create("menu/Back_0.png", "menu/Back_1.png", CC_CALLBACK_1(OptionScene::menuCallback, this));
	menu_Back->setTag(TAG_DATA_MENU_BACK);
	menu_Back->setScale(0.1f);

	auto menu2 = Menu::create(menu_Back, NULL);
	menu2->setAnchorPoint(Point(1, 0));
	menu2->setPosition(Point(50, 50));
	this->addChild(menu2);

}
コード例 #12
0
void GameOverLayer::displayScore(Node* parent)
{
    // score
    auto scoreTitle = Label::createWithTTF(FC_NUMBER_SMALL, "score");
    if (scoreTitle) {
        scoreTitle->setTextColor(C4_LIGHT_GREEN);
        scoreTitle->enableOutline(C4_DARK_GREEN);
        scoreTitle->setPosition(Vec2(160, 250));
        parent->addChild(scoreTitle);
    }
    char score[10];
    sprintf(score, "%d", GAME_MGR->getPlayerScore());
    auto scoreLabel = Label::createWithTTF(FC_NUMBER_NORMAL, score);
    if (scoreLabel) {
        scoreLabel->setTextColor(Color4B::YELLOW);
        scoreLabel->enableOutline(Color4B::ORANGE);
        scoreLabel->setPosition(Vec2(160, 170));
        parent->addChild(scoreLabel);
    }
    
    // best score
    auto bestScoreTitle = Label::createWithTTF(FC_NUMBER_SMALL, "best");
    if (bestScoreTitle) {
        bestScoreTitle->setTextColor(C4_LIGHT_GREEN);
        bestScoreTitle->enableOutline(C4_DARK_GREEN);
        bestScoreTitle->setPosition(Vec2(490, 250));
        parent->addChild(bestScoreTitle);
    }
    char bestScore[10];
    sprintf(bestScore, "%d", GAME_MGR->getBestScore());
    auto bestScoreLabel = Label::createWithTTF(FC_NUMBER_NORMAL, bestScore);
    if (bestScoreLabel) {
        bestScoreLabel->setTextColor(Color4B::YELLOW);
        bestScoreLabel->enableOutline(Color4B::ORANGE);
        bestScoreLabel->setPosition(Vec2(490, 170));
        parent->addChild(bestScoreLabel);
    }
}
コード例 #13
0
ファイル: HelpScene.cpp プロジェクト: Fahy15/Poker
bool HelpScene::init()
{
	if (!Layer::init())
	{
		return false;
	}

	auto size = Director::getInstance()->getWinSize();
	auto visible = Director::getInstance()->getVisibleSize();
	auto origin = Director::getInstance()->getVisibleOrigin();
	//ÉèÖñ³¾°
	auto spriteBK = Sprite::create("background.png");
	spriteBK->setPosition(size.width / 2, size.height / 2);
	spriteBK->setOpacity(75);
	this->addChild(spriteBK, 0);
	//¶ÁÈ¡xml×Ö·û
	CCDictionary* message = CCDictionary::createWithContentsOfFile("chinese.xml");
	auto helpTitleKey = message->valueForKey("helpTitle");
	const char* helpTitle = helpTitleKey->getCString();
	//°ïÖúÐÅÏ¢
	auto helpTitleLabel = Label::createWithTTF(helpTitle, "fonts/newSongTi.ttf", 25);
	helpTitleLabel->setPosition(Point(
		size.width - helpTitleLabel->getContentSize().width,
		size.height - helpTitleLabel->getContentSize().height));
	this->addChild(helpTitleLabel, 1);

	auto helpMessageKey = message->valueForKey("helpMessage");
	const char* helpMessage = helpMessageKey->getCString();
	auto helpMessageLabel = Label::createWithTTF(helpMessage, "fonts/newSongTi.ttf",20);
	helpMessageLabel->setDimensions(300,200);
	helpMessageLabel->enableOutline(Color4B(255, 0, 0, 0), 1);
	//helpMessageLabel->setAnchorPoint(Point(1,1));
	/*helpMessageLabel->setPosition(Point(
		size.width - helpTitleLabel->getContentSize().width,
		size.height - (helpTitleLabel->getContentSize().height*2)));*/
	helpMessageLabel->setPosition(size.width / 2, size.height / 2);
	this->addChild(helpMessageLabel, 1);

	//·µ»Ø°´Å¥
	auto menuItemBack = MenuItemFont::create("Back", CC_CALLBACK_1(HelpScene::gotoMenuCallback, this));
	auto menu = Menu::create(menuItemBack, NULL);
	menu->setPosition(Point::ZERO);
	menuItemBack->setPosition(Point(
		size.width - menuItemBack->getContentSize().width,
		menuItemBack->getContentSize().height));
	this->addChild(menu, 2);
	return true;
}
コード例 #14
0
ファイル: LabelTest.cpp プロジェクト: demon90s/LearnCocos
bool LabelTest::init()
{
	BackLayer::init();

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

	//auto num = Director::getInstance()->getOpenGLView()->getReferenceCount();

	//log("reference count:%d", num);

	auto layer = LayerColor::create(Color4B::GRAY);
	addChild(layer);
	
	//LabelBMFont的创建
	auto labelBMFont = Label::createWithBMFont("bitmapFontTest.fnt", "A bit map font Label");
	labelBMFont->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 100));
	layer->addChild(labelBMFont);

	//LabelTTF的创建
	//方法1:直接通过.ttf文件创建
	auto labelTTF1 = Label::createWithTTF("A TTF Label", "fonts/Marker Felt.ttf", 24);
	labelTTF1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 200));
	layer->addChild(labelTTF1);

	//方法2:通过TTFConfig创建
	TTFConfig labelConfig;
	labelConfig.fontFilePath = "fonts/Marker Felt.ttf";
	labelConfig.fontSize = 24;

	auto labelTTF2 = Label::createWithTTF(labelConfig, "A TTF Label from TTFConfig");
	labelTTF2->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 300));
	layer->addChild(labelTTF2);

	//LabelSystemFont的创建
	auto labelSystemFont = Label::createWithSystemFont("A SystemFont Label", "Arial", 36);
	labelSystemFont->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 400));
	layer->addChild(labelSystemFont);

	//为字体加特效
	auto labelTTFEffect = Label::createWithTTF("A TTF Label with effect", "fonts/Marker Felt.ttf", 36);
	labelTTFEffect->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 500));
	labelTTFEffect->enableShadow();
	labelTTFEffect->enableOutline(Color4B::BLACK, 3);
	layer->addChild(labelTTFEffect);

	return true;
}
コード例 #15
0
bool LabelTTF::initWithString(const std::string& string, const std::string& fontFile, float fontSize,
                                const cocos2d::Size &dimensions, TextHAlignment hAlignment,
                                TextVAlignment vAlignment)
{
	if ( FileUtils::getInstance()->isFileExist(fontFile) )
	{
		TTFConfig ttfConfig(fontFile.c_str(),fontSize,GlyphCollection::DYNAMIC);
		if (setTTFConfig(ttfConfig))
		{
			setDimensions(dimensions.width,dimensions.height);
			setString(string);
			setAlignment(hAlignment,vAlignment);
			enableOutline(Color4B::BLACK,2);
			return true;
		}
	}

	return false;
}
コード例 #16
0
ファイル: UIButtonTest.cpp プロジェクト: jafffy/cocos2d-x
bool UIButtonTitleEffectTest::init()
{
    if (UIScene::init())
    {
        Size widgetSize = _widget->getContentSize();
        
        // Add a label in which the button events will be displayed
        _displayValueLabel = Text::create("Button Title Effect", "fonts/Marker Felt.ttf",32);
        _displayValueLabel->setAnchorPoint(Vec2(0.5f, -1.0f));
        _displayValueLabel->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f + 20));
        _uiLayer->addChild(_displayValueLabel);
        
        
        // Create the button
        auto button = Button::create("cocosui/animationbuttonnormal.png",
                                     "cocosui/animationbuttonpressed.png");
        button->setNormalizedPosition(Vec2(0.3f, 0.5f));
        button->setTitleText("PLAY GAME");
        button->setTitleFontName("fonts/Marker Felt.ttf");
        button->setZoomScale(0.3f);
        button->setScale(2.0f);
        button->setPressedActionEnabled(true);
        Label *title = button->getTitleRenderer();
        button->setTitleColor(Color3B::RED);
        title->enableShadow(Color4B::BLACK,Size(2,-2));

        
        _uiLayer->addChild(button);
        
        // Create the button
        auto button2 = Button::create("cocosui/animationbuttonnormal.png",
                                      "cocosui/animationbuttonpressed.png");
        button2->setNormalizedPosition(Vec2(0.8f, 0.5f));
        button2->setTitleText("PLAY GAME");
        auto title2 = button2->getTitleRenderer();
        title2->enableOutline(Color4B::GREEN, 3);
        _uiLayer->addChild(button2);
        
        return true;
    }
    return false;
}
コード例 #17
0
ファイル: CCLabel.cpp プロジェクト: 1007650105/RockChipmunk2D
void Label::setLabelEffect(LabelEffect effect,const Color3B& effectColor)
{
    switch (effect)
    {
    case cocos2d::LabelEffect::NORMAL:
        disableEffect();
        break;
    case cocos2d::LabelEffect::OUTLINE:
        enableOutline(Color4B(effectColor));
        break;
    case cocos2d::LabelEffect::SHADOW:
        enableShadow(Color4B(effectColor));
        break;
    case cocos2d::LabelEffect::GLOW:
        enableGlow(Color4B(effectColor));
        break;
    default:
        break;
    }
}
コード例 #18
0
void GameOverLayer::displayContent()
{
    // effect node
    auto root = Node::create();
    this->addChild(root, 0, rootNodeTag);
    if (root) {
        root->setPosition(Vec2(100, -400));
        root->setRotation(-30);
        auto move = MoveTo::create(0.5f, Vec2::ZERO);
        auto rotate = RotateTo::create(0.5f, 0);
        auto easeRotate = EaseBackOut::create(rotate);
        
        root->runAction(move);
        root->runAction(easeRotate);
    }
    
    // content
    auto size = Size(660, 380);
    auto contentLayer = LayerColor::create(Color4B::WHITE, size.width, size.height);
    contentLayer->setPosition(Vec2(VisibleRect::center().x - size.width / 2, VisibleRect::center().y - size.height / 2));
    root->addChild(contentLayer, 1);
    
    displayScore(contentLayer);
    
    // title
    auto titleLabel = Label::createWithTTF(FC_NUMBER_TITLE, "game over");
    if (titleLabel) {
        titleLabel->setTextColor(C4_LIGHT_GREEN);
        titleLabel->enableOutline(C4_DARK_GREEN);
        titleLabel->setAnchorPoint(Vec2(0.5, 1));
        titleLabel->setPosition(VisibleRect::center() - contentLayer->getPosition() + Vec2(0, 190));
        contentLayer->addChild(titleLabel);
    }
    
    auto restartBtn = displayRestartBtn();
    auto gameCenterBtn = displayGameCenterBtn();
    
    auto menu = Menu::create(restartBtn, gameCenterBtn, nullptr);
    menu->setPosition(VisibleRect::center() - contentLayer->getPosition());
    contentLayer->addChild(menu);
}
コード例 #19
0
ファイル: GameOverScene.cpp プロジェクト: dungtrv/SnackGame
bool GameOver::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
	director = Director::getInstance();  
    visibleSize = director->getVisibleSize();
	Vec2 origin = director->getVisibleOrigin();
    auto pauseItem = MenuItemImage::create(
                                           "play.png",
                                           "play_pressed.png",
                                           CC_CALLBACK_1(GameOver::exitPause, this));
	pauseItem->setPosition(Vec2(origin.x + visibleSize.width - pauseItem->getContentSize().width / 2,
							origin.y + pauseItem->getContentSize().height / 2));
	auto menu = Menu::create(pauseItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);
	auto bg = Sprite::create("background.png");
	bg->setAnchorPoint(Vec2());
	bg->setPosition(0,0);
	this->addChild(bg, -1);
	auto label = Label::createWithTTF("Game Over", "fonts/Marker Felt.ttf", 96);
	label->enableOutline(Color4B(255, 0, 0, 100),6);
	label->enableGlow(Color4B(255, 0, 0, 255));
	label->enableShadow();
    label->setPosition(origin.x + visibleSize.width/2, origin.y + visibleSize.height /2);
	this->addChild(label, 1);
	auto label2 = Label::createWithSystemFont("Your score is", "Arial", 48);
    label2->setPosition(origin.x + visibleSize.width/2,origin.y + visibleSize.height /2.5);
	this->addChild(label2, 1);
	char scoreText[32];
	int score = UserDefault::getInstance()->getIntegerForKey("score",0);
	sprintf(scoreText, "%d", score);
	auto label3 = Label::createWithBMFont("font.fnt", scoreText);
    label3->setPosition(origin.x + visibleSize.width/2,origin.y + visibleSize.height /3.5);
	this->addChild(label3, 1);


    return true;
}
コード例 #20
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    
    auto size = Director::getInstance()->getWinSize();
    
    auto layer = LayerColor::create(Color4B::GRAY);
    this->addChild(layer);
    
    auto label = Label::createWithTTF("Shadow", "fonts/Marker Felt.ttf", 40);
    label->setPosition(Vec2(size.width/2, size.height/3*2));
    this->addChild(label);
    label->enableShadow(Color4B::RED, Size(5,5), 0);
    
    auto label2 = Label::createWithTTF("Shadow & Outline", "fonts/Marker Felt.ttf", 40);
    label2->setPosition(Vec2(size.width/2, size.height/3));
    this->addChild(label2);
    
    label2->enableShadow(Color4B::RED, Size(10,-10), 0);
    label2->enableOutline(Color4B::BLACK, 5);
    
    
    /*
    TTFConfig config;
    config.fontFilePath = "fonts/Marker Felt.ttf";
    config.fontSize = 40.0f;
    config.glyphs = GlyphCollection::DYNAMIC;
    config.outlineSize = 1;
    config.customGlyphs = nullptr;
    config.distanceFieldEnabled = false;
    
    auto label = Label::createWithTTF(config, "True Type Font");
    label->setPosition(size/2);
    this->addChild(label);
    label->setColor(Color3B::RED);
    */
    /*
    sec = 0;
    std::string secString = StringUtils::toString(sec);
    auto label = Label::createWithSystemFont(secString, "Arial", 40);
    label->setPosition(size/2);
    this->addChild(label);
    
    this->schedule([=](float dt) {
        sec++;
        std::string secString = StringUtils::toString(sec);
        label->setString(secString);
    }, 1.0f, "myCallbackKey");
    */
    /*
    auto sprite = Sprite::create("res/run_01.png");
    sprite->setPosition(size/2);
    this->addChild(sprite);
    sprite->setScale(0.2f);
    
    auto cache = AnimationCache::getInstance();
    cache->addAnimationsWithFile("res/run_animation.plist");
    auto animation = cache->getAnimation("run");
    auto action = Animate::create(animation);
    sprite->runAction(action);
    */
    /*
    auto sprite = Sprite::create("res/run_01.png");
    sprite->setPosition(Vec2(size.width/2, size.height));
    sprite->setAnchorPoint(Vec2(0.5f, 0.0f));
    this->addChild(sprite);
    sprite->setScale(0.2f);
    
    auto drop = MoveTo::create(3.0f, Vec2(size.width/2, 0));
    auto ease = EaseOut::create(drop, 10.1f);
    sprite->runAction(ease);
    */
    //auto origin = Director::getInstance()->getVisibleOrigin();
    /*
    {
        auto sprite = Sprite::create("res/run_01.png");
        sprite->setPosition(Vec2(300, 200));
        this->addChild(sprite);
        sprite->setScale(0.2f);
    }
    
    {
        auto sprite = Sprite::create("res/run_01.png");
        sprite->setPosition(Vec2(400, 200));
        this->addChild(sprite);
        sprite->setScale(0.2f);
        sprite->setColor(Color3B(255,0,0));
        
    }
    
    int i = 100;
    std::string int_string = StringUtils::toString(i);
    float j = 123.4f;
    std::string float_string = StringUtils::toString(j);
    CCLOG("i=%s, j=%s", int_string.c_str(), float_string.c_str());
    */
     /*
    {
        auto sprite = Sprite::create("res/run_01.png");
        sprite->setPosition(Vec2(500, 200));
        this->addChild(sprite);
        sprite->setScale(0.2f);
        sprite->setScaleY(0.2f*0.5f);
    }
    
    {
        auto sprite = Sprite::create("res/run_01.png");
        sprite->setPosition(Vec2(650, 200));
        this->addChild(sprite);
        sprite->setScale(0.2f);
        sprite->setScale(0.2f*2.0f, 0.2f*0.5f);
    }
    */
    
    /*
    auto delay = DelayTime::create(2.0f);
    auto move = MoveBy::create(2.0f, Vec2(100, 0));
    auto rotate = RotateBy::create(2.0f, 360.0f);
    auto fade = FadeOut::create(2.0f);
    auto spawn = Spawn::create(rotate, fade, nullptr);
    auto action = Sequence::create(move, spawn, nullptr);
    //auto action = Sequence::create(sequence, sequence->reverse(), nullptr);
    //auto action = RepeatForever::create(rotate);
    sprite->runAction(action);
    */
    
    /*auto func = CallFunc::create([](){
        CCLOG("finished actions");
    });*/
    //auto func = CallFunc::create(CC_CALLBACK_0(HelloWorld::finishedAction, this));
    /*auto func = CallFuncN::create([=](Ref* sender){
        CCLOG("callback");
        Sprite* sprite = dynamic_cast<Sprite*>(sender);
        sprite->runAction(move->reverse());
    });
    auto action = Sequence::create(move, rotate, func, nullptr);
    sprite->runAction(action);
    */
    // texture atlas
    /*
    auto cache = SpriteFrameCache::getInstance();
    cache->addSpriteFramesWithFile("res/running.plist");
    auto sprite = Sprite::createWithSpriteFrameName("run_01.png");
    sprite->setPosition(size/2);
    sprite->setScale(0.2f);
    this->addChild(sprite);
    */
    
    // batch node
    /*auto batchNode = SpriteBatchNode::create("res/run_01.png");
    this->addChild(batchNode);
    for (int i=0; i<300; i++) {
        auto sprite = Sprite::createWithTexture(batchNode->getTexture());
        sprite->setScale(0.2f);
        float x = CCRANDOM_0_1() * size.width;
        float y = CCRANDOM_0_1() * size.height;
        sprite->setPosition(Vec2(x,y));
        batchNode->addChild(sprite);
    }
    */
    
    //sprite->setColor(Color3B(255, 0, 0));
    /*
    Rect rect = sprite->getBoundingBox();
    Size contentSize = sprite->getContentSize();
    CCLOG("rect size=%f,%f, content size=%f,%f", rect.size.width, rect.size.height, contentSize.width, contentSize.height);
    */
    /*
    auto sprite3d = Sprite3D::create("res/girl.c3b");
    sprite3d->setPosition(Vec2(size.width/2, 100));
    this->addChild(sprite3d);
    
    auto animation3d = Animation3D::create("res/girl.c3b");
    auto animate3d = Animate3D::create(animation3d);
    auto repeat = RepeatForever::create(animate3d);
    sprite3d->runAction(repeat);
    
    sprite3d->setPositionX(size.width);
    auto move1 = MoveBy::create(5.0f, Vec2(-size.width, 0));
    auto move2 = MoveBy::create(5.0f, Vec2(size.width, 0));
    auto seq = Sequence::create(move1, move2, NULL);
    auto loop = RepeatForever::create(seq);
    sprite3d->runAction(loop);
    */
    
    /*{
        auto rect = Rect::ZERO;
        rect.size = sprite->getContentSize();
        Vector<AnimationFrame*> frames;
        
        // animation
        for (int i=1; i<=8; i++) {
            std::string name = StringUtils::format("res/run_%02d.png", i);
            auto frame = SpriteFrame::create(name.c_str(), rect);
            ValueMap info;
            auto animationFrame = AnimationFrame::create(frame, i, info);
            frames.pushBack(animationFrame);
        }
        auto animation = Animation::create(frames, 0.1f);
        animation->setDelayPerUnit(0.1f);
        animation->setRestoreOriginalFrame(true);
        animation->setLoops(-1);
        auto action = Animate::create(animation);
        sprite->runAction(action);
    }*/
    
    
    /*{
        // animation
        auto animation = Animation::create();
        for (int i=1; i<=8; i++) {
            std::string name = StringUtils::format("res/run_%02d.png", i);
            animation->addSpriteFrameWithFile(name.c_str());
        }
        animation->setDelayPerUnit(0.1f);
        animation->setRestoreOriginalFrame(true);
        animation->setLoops(-1);
        auto action = Animate::create(animation);
        sprite->runAction(action);
    }*/
    
    // drawing a shape
    /*
     static const Color4F WHITE;
     static const Color4F YELLOW;
     static const Color4F BLUE;
     static const Color4F GREEN;
     static const Color4F RED;
     static const Color4F MAGENTA;
     static const Color4F BLACK;
     static const Color4F ORANGE;
     static const Color4F GRAY;
    */
    
    /*
    auto size = Director::getInstance()->getWinSize();
    auto origin = Director::getInstance()->getVisibleOrigin();
    auto draw = DrawNode::create();
    this->addChild(draw);
    //draw->drawDot(Vec2(size/2), 10.0f, Color4F::WHITE);
    */
    //draw->drawLine(Vec2(300, 200), Vec2(600, 200), Color4F::WHITE);
    //draw->drawSegment(Vec2(300, 100), Vec2(600, 100), 10.0f, Color4F::WHITE);
    
    // drawing circles
    //draw->drawCircle(Vec2(300, size.height/2), 50.0f, 1.0f, 10, true, 1.0f, 1.0f, Color4F::WHITE);
    //draw->drawCircle(Vec2(450, size.height/2), 50.0f, 1.0f, 100, false, 1.0f, 1.0f, Color4F::WHITE);
    //draw->drawSolidCircle(Vec2(600, size.height/2), 50.0f, 1.0f, 100, 1.0f, 1.0f, Color4F::WHITE);
    
    // drawing rects
    //draw->drawRect(Vec2(240, 100), Vec2(340,200), Color4F::WHITE);
    //draw->drawSolidRect(Vec2(480, 100), Vec2(580, 200), Color4F::WHITE);
    
    // drawing triangle
    //draw->drawTriangle(Vec2(380,100), Vec2(480, 200), Vec2(580, 100), Color4F::WHITE);


    // Bezier curve
    // 第4引き数の数値 segment はカーブの滑らかさ
    //draw->drawQuadBezier(Vec2(240, 200), Vec2(480, 320), Vec2(720, 200), 24, Color4F::WHITE);
    //draw->drawCubicBezier(Vec2(240, 100), Vec2(240, 200), Vec2(720, 200), Vec2(720, 100), 24, Color4F::WHITE);

    // draw a polygon
    /*
    std::vector<Vec2>verts;
    verts.push_back(Vec2(380,100));
    verts.push_back(Vec2(380,200));
    verts.push_back(Vec2(480,250));
    verts.push_back(Vec2(580,200));
    verts.push_back(Vec2(580,100));
    verts.push_back(Vec2(480,50));
    draw->drawPolygon(&verts[0], verts.size(), Color4F::RED, 5.0f, Color4F::GREEN);
    */

    
    /*
    {
        auto points = PointArray::create(10);
        draw->drawCatmullRom(points, 10, Color4F::ORANGE);
    }
    */
    /*
    {
        _points = new PointArray();
        _points->initWithCapacity(10000);
        //_points->addControlPoint(Vec2(0,size.height/2));
        //_points->addControlPoint(Vec2(size.width/2,size.height));
        //_points->addControlPoint(Vec2(size.width,size.height/2));
        //draw->drawCardinalSpline(_points, 10.0f, 100, Color4F::ORANGE);
        _draw = draw;
        auto listener = EventListenerTouchOneByOne::create();
        listener->onTouchBegan = [](Touch* touch, Event* event){
            return true;
        };
        listener->onTouchMoved = [&](Touch* touch, Event* event){
            //if (_points->count()>=1000) {
            //    return;
            //}
            _points->addControlPoint(touch->getLocation());
            //if (_points->count()>3) {
            //    _draw->drawCatmullRom(_points, 100, Color4F::RED);
            _draw->drawCardinalSpline(_points, 10.0f, 100, Color4F::ORANGE);
            //}
        };
        this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
        
    }
    */
    return true;
}
コード例 #21
0
Scene* Chapter6_1::createScene()
{
    cocos2d::Rect visibleRect = Director::getInstance()->getOpenGLView()->getVisibleRect();
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    
    int index=2;
    
    // create a scene
    auto scene = Scene::create();
    
    auto layer = LayerColor::create(Color4B::GRAY);
    scene->addChild(layer);
    
    // add title
    auto label = LabelTTF::create("Label", "Marker Felt.ttf", 32);
    label->setPosition(Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height/2).x,
                       Vec2(visibleRect.origin.x+visibleRect.size.width/2, visibleRect.origin.y+visibleRect.size.height).y - 30);
    
    scene->addChild(label, -1);
    
    //add the menu item for back to main menu
    label = LabelTTF::create("MainMenu", "Marker Felt.ttf", 32);
    auto menuItem = MenuItemLabel::create(label);
    menuItem->setCallback([&](cocos2d::Ref *sender) {
        Director::getInstance()->replaceScene(Chapter6::createScene());
    });
    
    auto menu = Menu::create(menuItem, nullptr);
    menu->setPosition(Vec2::ZERO);
    menuItem->setPosition(Vec2(visibleRect.origin.x+visibleRect.size.width - 80, visibleRect.origin.y + 25));
    scene->addChild(menu, 1);
    
    // this is for Labels section of the Programmers Guide
    
    // 1. BMFont
    auto myLabel = Label::createWithBMFont("bitmapRed.fnt", "LabelBMFont");
    myLabel->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                         (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel, 1);
    
    // 2. LabelTTF
    auto myLabel2 = Label::createWithTTF("LabelTTF", "Marker Felt.ttf", 32);
    myLabel2->setColor(Color3B::RED);
    myLabel2->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                 (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel2, 1);
    
    // 3. LabelTTF with TTFConfig
    
    // create a TTFConfig files for labels to share
    TTFConfig labelConfig;
    labelConfig.fontFilePath = "Marker Felt.ttf";
    labelConfig.fontSize = 32;
    
    auto myLabel3 = Label::createWithTTF(labelConfig, "LabelTTF from TTFConfig");
    myLabel3->setColor(Color3B::RED);
    myLabel3->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                          (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel3, 1);
    
    // 4. Label using SystemFont
    auto myLabel4 = Label::createWithSystemFont("Label using SystemFont", "Arial", 32);
    myLabel4->setColor(Color3B::RED);
    myLabel4->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                          (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel4, 1);
    
    // 5. LabelTTF with shadow, outline and glow
    auto myLabel5 = Label::createWithTTF("LabelTTF with Shadow", "Marker Felt.ttf", 32);
    myLabel5->enableShadow();
    myLabel5->setColor(Color3B::RED);
    myLabel5->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                          (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel5, 1);

    auto myLabel6 = Label::createWithTTF("LabelTTF with Outline", "Marker Felt.ttf", 32);
    myLabel6->setTextColor(Color4B::RED);
    //setColor will change the color of the whole label with effects as if 3.4
//    myLabel6->setColor(Color3B::RED);
    myLabel6->enableOutline(Color4B::WHITE, 1);
    myLabel6->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                          (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel6, 1);
    
    auto myLabel7 = Label::createWithTTF("LabelTTF with Glow", "Marker Felt.ttf", 32);
    myLabel7->enableGlow(Color4B::YELLOW);
    myLabel7->setTextColor(Color4B::RED);
    myLabel7->setPosition(Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height/2).x,
                          (Vec2(origin.x+visibleSize.width/2, origin.y+visibleSize.height).y - (++index) * 40));
    
    scene->addChild(myLabel7, 1);
    
    // return the scene
    return scene;
}
コード例 #22
0
ファイル: ResultLayer.cpp プロジェクト: cashwant/equalTenApp
bool ResultLayer::init()
{
	if(!Layer::init()){
		return false;
	}

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


	// 結果画面の生成
	auto resultBackground = Sprite::create("result_background.png");
	auto backSize = resultBackground->getContentSize();
	resultBackground->setPosition(Vec2(winSize.width / 2, winSize.height * 3 / 2));
	this->setResultBackground(resultBackground);
	this->addChild(resultBackground, 1);

	// 結果画面の出現
	auto delay = DelayTime::create(1.0);
	auto moveto = MoveTo::create(1.0, Vec2(winSize.width / 2, winSize.height / 2));
	auto resultSequence = Sequence::create(delay, moveto, NULL);
	resultBackground->runAction(resultSequence);

	// スコアラベルの作成
	auto scoreLabel = Label::createWithSystemFont("0", "Latha", 20);
	scoreLabel->enableShadow(Color4B::BLACK, Size(0.5, 0.5), 3);
	scoreLabel->enableOutline(Color4B::BLACK, 1.5);
	scoreLabel->setPosition(Vec2(backSize.width / 2, RESULT_SCORE_LABEL_POS_Y));
	this->setResultScoreLabel(scoreLabel);
	resultBackground->addChild(scoreLabel);

	// パネル枚数ラベルの作成
	auto panelsLabel = Label::createWithSystemFont("0", "Latha", 20);
	panelsLabel->enableShadow(Color4B::BLACK, Size(0.5, 0.5), 3);
	panelsLabel->enableOutline(Color4B::BLACK, 1.5);
	panelsLabel->setPosition(Vec2(RESULT_PANELS_LABEL_POS_X, RESULT_PANELS_LABEL_POS_Y));
	this->setResultPanelsLabel(panelsLabel);
	resultBackground->addChild(panelsLabel);


	// maxコンボラベルの作成
	auto maxComboLabel = Label::createWithSystemFont("0", "Latha", 20);
	maxComboLabel->enableShadow(Color4B::BLACK, Size(0.5, 0.5), 3);
	maxComboLabel->enableOutline(Color4B::BLACK, 1.5);
	maxComboLabel->setPosition(Vec2(RESULT_MAX_COMBO_LABEL_POS_X, RESULT_MAX_COMBO_LABEL_POS_Y));
	this->setResultMaxComboLabel(maxComboLabel);
	resultBackground->addChild(maxComboLabel);


	//リプレイボタンの作成
	auto replayButton = MenuItemImage::create("replay_button.png", "replay_button_pressed.png",
			[](Ref* ref){
		auto scene = GameScene::createScene();
		Director::getInstance()->replaceScene(scene);
		CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("buttonpush.mp3");
	});

	// ホームボタンの作成
	auto homeButton = MenuItemImage::create("home_button_result.png", "home_button_result_pressed.png",
			[](Ref* ref){
		auto scene = StartScene::createScene();
		auto transition = TransitionPageTurn::create(0.5, scene, true);
		Director::getInstance()->replaceScene(transition);
		CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("buttonpush.mp3");
	});

	// ランキングボタンの作成
	auto rankButton = MenuItemImage::create("rank_button_result.png", "rank_button_result_pressed.png",
			[](Ref* ref){
		auto scene = StartScene::createScene();
		auto layer = RankScene::create();
		layer->setAtmain(false);
		scene->addChild(layer);
		auto transition = TransitionPageTurn::create(0.5, scene, true);
		Director::getInstance()->replaceScene(transition);
		CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("buttonpush.mp3");
	});

	auto menu = Menu::create(homeButton, replayButton, rankButton, NULL);
	resultBackground->addChild(menu, 2);
	menu->setPosition(Vec2(backSize.width / 2, MENU_POS_Y));

	menu->alignItemsHorizontallyWithPadding(MENU_INTERVAL); // ボタンを横に並べる

	return true;
}
コード例 #23
0
ファイル: LevelListScene.cpp プロジェクト: ilyagolota/chips
void LevelListScene::_build()
{
    cocos2d::Vec2 visibleOrigin = cocos2d::Director::getInstance()->getVisibleOrigin();
    cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
    
    //auto background = cocos2d::Sprite::create("background.png");
    //background->setAnchorPoint(cocos2d::Vec2::ZERO);
    //background->setPosition(cocos2d::Vec2::ZERO);
    //background->setOpacity(0);
    //addChild(background);
    //background->runAction(cocos2d::FadeIn::create(0.5));
    
    auto levelPack = _game->getLevelPack(_packIndex);
    const std::vector<LevelPackEntry>& entries = levelPack->getEntries();
    
    cocos2d::Rect menuRect(visibleOrigin.x + 100, visibleOrigin.y + 100, visibleSize.width - 200, visibleSize.height - 140);
    cocos2d::Size cellSize(menuRect.size.width / 5, menuRect.size.height / 5);
    cocos2d::Vec2 point(0, menuRect.size.height - cellSize.height);
    
    bool prevLevelCompleted = true;
    for (size_t i = 0; i + _startLevelIndex < entries.size() && i < 25; i++)
    {
        int levelIndex =_startLevelIndex + i;
        
        auto& record = _game->getHighscores()->getRecord(_packIndex, levelIndex);
        bool canStart = prevLevelCompleted || record.tried;
        
        auto button = cocos2d::ui::Button::create(canStart ? "slide-north-0001.png" : "floor.png", "", "", cocos2d::ui::Widget::TextureResType::PLIST);
        button->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
        button->setPosition(menuRect.origin + point + cocos2d::Vec2(cellSize) * 0.5f - cocos2d::Vec2(0, 100));
        button->setScale(0);
        button->setEnabled(canStart);
        button->addTouchEventListener([this, levelIndex](cocos2d::Ref* sender, cocos2d::ui::Widget::TouchEventType type)
        {
            if (type == cocos2d::ui::Widget::TouchEventType::ENDED)
            {
                auto director = cocos2d::Director::getInstance();
                director->pushScene(LevelScene::create(_game, _packIndex, _startLevelIndex + levelIndex));
            }
        });
        
        if (canStart)
        {
            auto buttonLabel = cocos2d::Label::createWithTTF(std::to_string(i + 1), "fonts/Marker Felt.ttf", 24);
            buttonLabel->setPosition(cocos2d::Vec2(button->getContentSize()) * 0.5f);
            buttonLabel->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
            buttonLabel->enableOutline(cocos2d::Color4B::BLACK, 2);
            button->addChild(buttonLabel);
        }
        
        addChild(button);
        
        if (record.completed)
        {
            auto star = cocos2d::Sprite::createWithSpriteFrameName("ic-chip.png");
            star->setPosition(cocos2d::Vec2(button->getContentSize().width - 10, 11));
            button->addChild(star);
        }
        
        if (i % 5 != 4)
        {
            point.x += cellSize.width;
        }
        else
        {
            point.x = 0;
            point.y -= cellSize.height;
        }

        button->runAction(cocos2d::Sequence::create(
            cocos2d::DelayTime::create(0.01 * i),
            cocos2d::Spawn::create(
                cocos2d::EaseBounceIn::create(cocos2d::ScaleTo::create(0.25, 1)),
                cocos2d::MoveBy::create(0.25, cocos2d::Vec2(0, 100)),
                nullptr
            ),
            nullptr
        ));
        
        prevLevelCompleted = record.completed;
    }
    
    /*auto backButton = cocos2d::MenuItemSprite::create(cocos2d::Sprite::create("boots-ice.png"), nullptr, CC_CALLBACK_1(LevelsScene::_backCallback, this));
    backButton->setPosition(cocos2d::Vec2(100, 60));
    menu->addChild(backButton);*/
}
コード例 #24
0
ファイル: WagonSelect.cpp プロジェクト: songmiao/WagonWar
void WagonSelect::createUI()
{
    auto bk =  Sprite::create("wagonselect_bk.png");
    if(g_visibleRect.visibleWidth>960)
    {
        bk->setScaleX(g_visibleRect.visibleWidth/960);
    }
    bk->setAnchorPoint(Point::ANCHOR_MIDDLE);
    bk->setPosition(g_visibleRect.center);
    this->addChild(bk);
    
    _wagon_bk = Sprite::create("wagon_bk.png");
    if(g_visibleRect.visibleWidth>960)
    {
        _wagon_bk->setScaleX(g_visibleRect.visibleWidth/960);
    }
    _wagon_bk->setAnchorPoint(Point::ANCHOR_MIDDLE_LEFT);
    _wagon_bk->setPosition(Point(130,280));
    this->addChild(_wagon_bk,1);
    
    //boy or girl
    _boy_memuitem = MenuItemImage::create("boy_0.png","boy_1.png",
                                                  CC_CALLBACK_1(WagonSelect::boy_selected_callback, this));
    _boy_memuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _boy_memuitem->setPosition(Point(60,g_visibleRect.visibleHeight/2+60));
    _boy_memuitem->selected();
    
    _girl_memuitem = MenuItemImage::create("girl_0.png","girl_1.png",
                                                 CC_CALLBACK_1(WagonSelect::girl_selected_callback, this));
    _girl_memuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _girl_memuitem->setPosition(Point(60,g_visibleRect.visibleHeight/2-60));
    
    auto menu = Menu::create(_boy_memuitem, _girl_memuitem, nullptr);
    menu->setPosition(Point::ZERO);
    this->addChild(menu,1);
    
    //
    MenuItemImage* ready_menu;
    if (_turntype == FIRST_TURN) {
        ready_menu = MenuItemImage::create("btn_ready_1.png","btn_ready_2.png",CC_CALLBACK_1(WagonSelect::ready_callback, this));
    }
    else if(_turntype == SECOND_TURN) {
        ready_menu = MenuItemImage::create("btn_start_1.png","btn_start_2.png",CC_CALLBACK_1(WagonSelect::ready_callback, this));
    }
    ready_menu->setPosition(Point(g_visibleRect.visibleWidth-120, g_visibleRect.visibleHeight-60));
    auto menu_ready = Menu::create(ready_menu, nullptr);
    menu_ready->setPosition(Point::ZERO);
    this->addChild(menu_ready,1);
    
    //
    _wagon1_menuitem = MenuItemImage::create("wagon_item_0.png","wagon_item_1.png",
                                                 CC_CALLBACK_1(WagonSelect::wagon1_selected_callback, this));
    _wagon1_menuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _wagon1_menuitem->setPosition(Point(120,g_visibleRect.visibleHeight/2-80));
    _wagon1_menuitem->selected();
    
    _wagon2_menuitem = MenuItemImage::create("wagon_item_0.png","wagon_item_1.png",
                                                 CC_CALLBACK_1(WagonSelect::wagon2_selected_callback, this));
    _wagon2_menuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _wagon2_menuitem->setPosition(Point(310,g_visibleRect.visibleHeight/2-80));
    
    _wagon3_menuitem = MenuItemImage::create("wagon_item_0.png","wagon_item_1.png",
                                                 CC_CALLBACK_1(WagonSelect::wagon3_selected_callback, this));
    _wagon3_menuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _wagon3_menuitem->setPosition(Point(500,g_visibleRect.visibleHeight/2-80));
    
    _wagon4_menuitem = MenuItemImage::create("wagon_item_0.png","wagon_item_1.png",
                                                 CC_CALLBACK_1(WagonSelect::wagon4_selected_callback, this));
    _wagon4_menuitem->setAnchorPoint(Point::ANCHOR_MIDDLE);
    _wagon4_menuitem->setPosition(Point(690,g_visibleRect.visibleHeight/2-80));
    
    auto menu_wagon = Menu::create(_wagon1_menuitem, _wagon2_menuitem, _wagon3_menuitem, _wagon4_menuitem, nullptr);
    menu_wagon->setPosition(Point::ZERO);
    _wagon_bk->addChild(menu_wagon,1);
    
    //
    auto wagon1 = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("cnm_idle01.png"));
    wagon1->runAction(RepeatForever::create(g_gameConfig.getAnimate(g_gameAnimation.cnm_idle)));
    wagon1->setAnchorPoint(Point::ANCHOR_MIDDLE);
    wagon1->setPosition(Point(120,g_visibleRect.visibleHeight/2-10));
    wagon1->setScale(1.3f);
    _wagon_bk->addChild(wagon1, 2);
    
    auto wagon2 = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("tankidle01.png"));
    wagon2->runAction(RepeatForever::create(g_gameConfig.getAnimate(g_gameAnimation.tank_idle)));
    wagon2->setAnchorPoint(Point::ANCHOR_MIDDLE);
    wagon2->setPosition(Point(310,g_visibleRect.visibleHeight/2-15));
    wagon2->setScale(1.3f);
    _wagon_bk->addChild(wagon2, 3);
    
    auto wagon3 = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("rockidle01.png"));
    wagon3->runAction(RepeatForever::create(g_gameConfig.getAnimate(g_gameAnimation.rock_idle)));
    wagon3->setAnchorPoint(Point::ANCHOR_MIDDLE);
    wagon3->setPosition(Point(500,g_visibleRect.visibleHeight/2));
    wagon3->setScale(1.3f);
    _wagon_bk->addChild(wagon3, 3);
    
    auto wagon4_1 = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("mechidle01.png"));
    wagon4_1->runAction(RepeatForever::create(g_gameConfig.getAnimate(g_gameAnimation.mech_idle)));
    wagon4_1->setAnchorPoint(Point::ANCHOR_MIDDLE);
    wagon4_1->setPosition(Point(700,g_visibleRect.visibleHeight/2-5));
    wagon4_1->setScale(1.3f);
    _wagon_bk->addChild(wagon4_1, 2);
    
    auto wagon4_2 = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("mechgunidle01.png"));
    wagon4_2->runAction(RepeatForever::create(g_gameConfig.getAnimate(g_gameAnimation.mechgun_idle)));
    wagon4_2->setAnchorPoint(Point::ANCHOR_MIDDLE);
    wagon4_2->setPosition(Point(700,g_visibleRect.visibleHeight/2-20));
    wagon4_2->setScale(1.3f);
    _wagon_bk->addChild(wagon4_2, 3);

    //dude
    auto offsetPoint1 = Point(30.0f, 55.0f);
    _dude1 = Sprite::create("boy.png");
    _dude1->setAnchorPoint(Point(Point::ANCHOR_MIDDLE));
    _dude1->setPosition(wagon1->getPosition() + offsetPoint1);
    _dude1->setScale(1.3f);
    _wagon_bk->addChild(_dude1,2);

    auto offsetPoint2 = Point(20.0f, 65.0f);
    _dude2 = Sprite::create("boy.png");
    _dude2->setAnchorPoint(Point(Point::ANCHOR_MIDDLE));
    _dude2->setPosition(wagon2->getPosition() + offsetPoint2);
    _dude2->setScale(1.3f);
    _wagon_bk->addChild(_dude2,2);
    
    auto offsetPoint3 = Point(30.0f, 50.0f);
    _dude3 = Sprite::create("boy.png");
    _dude3->setAnchorPoint(Point(Point::ANCHOR_MIDDLE));
    _dude3->setPosition(wagon3->getPosition() + offsetPoint3);
    _dude3->setScale(1.3f);
    _wagon_bk->addChild(_dude3,2);
    
    auto offsetPoint4 = Point(10.0f, 55.0f);
    _dude4 = Sprite::create("boy.png");
    _dude4->setAnchorPoint(Point(Point::ANCHOR_MIDDLE));
    _dude4->setPosition(wagon4_1->getPosition() + offsetPoint4);
    _dude4->setScale(1.3f);
    _wagon_bk->addChild(_dude4,2);
    
    //shawdow
    auto shawdow1 = Sprite::create("shawdow.png");
    shawdow1->setAnchorPoint(Point::ANCHOR_MIDDLE);
    shawdow1->setPosition(Point(120,g_visibleRect.visibleHeight/2-70));
    shawdow1->setOpacity(200);
    _wagon_bk->addChild(shawdow1,2);

    auto shawdow2 = Sprite::create("shawdow.png");
    shawdow2->setAnchorPoint(Point::ANCHOR_MIDDLE);
    shawdow2->setPosition(Point(310,g_visibleRect.visibleHeight/2-70));
    shawdow2->setOpacity(200);
    _wagon_bk->addChild(shawdow2,2);

    auto shawdow3 = Sprite::create("shawdow.png");
    shawdow3->setAnchorPoint(Point::ANCHOR_MIDDLE);
    shawdow3->setPosition(Point(500,g_visibleRect.visibleHeight/2-70));
    shawdow3->setOpacity(200);
    _wagon_bk->addChild(shawdow3,2);

    auto shawdow4 = Sprite::create("shawdow.png");
    shawdow4->setAnchorPoint(Point::ANCHOR_MIDDLE);
    shawdow4->setPosition(Point(690,g_visibleRect.visibleHeight/2-70));
    shawdow4->setOpacity(200);
    _wagon_bk->addChild(shawdow4,2);

    // params
    initWagonParams();
    
    // name
    TTFConfig horseyTTFConfig;
    horseyTTFConfig.outlineSize = 3;
    horseyTTFConfig.fontSize = 30;
    horseyTTFConfig.fontFilePath = "fonts/britanic bold.ttf";
    auto horseyLabel = Label::createWithTTF(horseyTTFConfig, "HORSEY", TextHAlignment::CENTER, 20);
    horseyLabel->setPosition(120,g_visibleRect.visibleHeight/2-110);
    //horseyLabel->setSpacing(-5);
    horseyLabel->setAnchorPoint(Point::ANCHOR_MIDDLE);
    horseyLabel->enableOutline(Color4B::BLACK);
    _wagon_bk->addChild(horseyLabel,2);
    
    TTFConfig tankTTFConfig;
    tankTTFConfig.outlineSize = 3;
    tankTTFConfig.fontSize = 30;
    tankTTFConfig.fontFilePath = "fonts/britanic bold.ttf";
    auto tankLabel = Label::createWithTTF(horseyTTFConfig, "TANK", TextHAlignment::CENTER, 20);
    tankLabel->setPosition(310,g_visibleRect.visibleHeight/2-110);
    //tankLabel->setSpacing(-5);
    tankLabel->setAnchorPoint(Point::ANCHOR_MIDDLE);
    tankLabel->enableOutline(Color4B::BLACK);
    _wagon_bk->addChild(tankLabel,2);
    
    TTFConfig rockTTFConfig;
    rockTTFConfig.outlineSize = 3;
    rockTTFConfig.fontSize = 30;
    rockTTFConfig.fontFilePath = "fonts/britanic bold.ttf";
    auto rockLabel = Label::createWithTTF(horseyTTFConfig, "ROCK", TextHAlignment::CENTER, 20);
    rockLabel->setPosition(500,g_visibleRect.visibleHeight/2-110);
    //rockLabel->setSpacing(-5);
    rockLabel->setAnchorPoint(Point::ANCHOR_MIDDLE);
    rockLabel->enableOutline(Color4B::BLACK);
    _wagon_bk->addChild(rockLabel,2);
    
    TTFConfig mechTTFConfig;
    mechTTFConfig.outlineSize = 3;
    mechTTFConfig.fontSize = 30;
    mechTTFConfig.fontFilePath = "fonts/britanic bold.ttf";
    auto mechLabel = Label::createWithTTF(horseyTTFConfig, "MECH", TextHAlignment::CENTER, 20);
    mechLabel->setPosition(690,g_visibleRect.visibleHeight/2-110);
    //mechLabel->setSpacing(-5);
    mechLabel->setAnchorPoint(Point::ANCHOR_MIDDLE);
    mechLabel->enableOutline(Color4B::BLACK);
    _wagon_bk->addChild(mechLabel,2);
    
    // flash
    flash = Sprite::create("wagon_flash.png");
    flash->setAnchorPoint(Point::ANCHOR_MIDDLE);
    flash->setPosition(Point(120,g_visibleRect.visibleHeight/2-80));
    flash->runAction(RepeatForever::create(Blink::create(1,1)));
    _wagon_bk->addChild(flash,3);
    
    auto returnMenuListener = EventListenerCustom::create("returntoMenu", CC_CALLBACK_0(WagonSelect::returntoMenu, this));
    _eventDispatcher->addEventListenerWithSceneGraphPriority(returnMenuListener, this);
    
    auto wagonselectshowpopwindowlistener = EventListenerCustom::create("wagonselectshowpopwindowlistener", CC_CALLBACK_0(WagonSelect::showConnectingPopWindow, this));
    _eventDispatcher->addEventListenerWithSceneGraphPriority(wagonselectshowpopwindowlistener, this);
}
コード例 #25
0
bool MainScene::init(){
    if(!Layer::init()){
        return false;
    }
    
    auto winSize = Director::getInstance()->getWinSize();
    
    //TJA読み込み
    Tja tja = Tja();
    tja.loadTja();
    _noteTimes = tja.getNoteTimes();
    
    auto background = Sprite::create("background.png");
    background->setPosition(Vec2(winSize.width / 2.0, winSize.height / 2.0));
    this->addChild(background);
    
    auto scoreLabel = Label::createWithSystemFont(StringUtils::toString(_score),
                                                  "Marker Felt",
                                                  FONT_SIZE);
    scoreLabel->enableShadow(Color4B::BLACK, Size(0.5, 0.5), 3);
    scoreLabel->enableOutline(Color4B::BLACK, 1.5);
    scoreLabel->setPosition(Vec2(winSize.width / 2 * 1.5, winSize.height - 40));
    this->setScoreLabel(scoreLabel);
    this->addChild(scoreLabel);
    
    auto scoreLabelHeader = Label::createWithSystemFont("SCORE", "Marker Felt", FONT_SIZE);
    scoreLabelHeader->setPosition(Vec2(winSize.width / 2 * 1.5, winSize.height - 20));
    this->addChild(scoreLabelHeader);
    
    int second = static_cast<int>(_second);
    auto secondLabel = Label::createWithSystemFont(StringUtils::toString(second),
                                                   "Marker Felt",
                                                   FONT_SIZE);
    secondLabel->setPosition(Vec2(winSize.width / 2, winSize.height - 40));
    this->setSecondLabel(secondLabel);
    this->addChild(secondLabel);
    
    auto secondLabelHeader = Label::createWithSystemFont("TIME", "Marker Felt", FONT_SIZE);
    secondLabelHeader->setPosition(Vec2(winSize.width / 2, winSize.height - 20));
    this->addChild(secondLabelHeader);
    
    //当たり判定
    auto hitDetection = DrawNode::create();
    hitDetection->drawDot(INIT_PLAYER_POSITION, 10.0f, Color4F(1.0f, 6.0f, 5.0f, 1.0f));
    this->addChild(hitDetection);
    
    auto listener = EventListenerTouchOneByOne::create();
    listener->onTouchBegan = [this](Touch *touch, Event *event){
        this->setTouchLocation(touch->getLocation());
        return true;
    };
    
    listener->onTouchMoved = [this](Touch *touch, Event *event){
        SwipeDirection swipeDirection = this->getSwipeDirection(touch);
        if(swipeDirection != SwipeDirection::NONE){
            
            
            
//            if(swipeDirection == SwipeDirection::RIGHT){
//                if(_isSwipeTimeRight <= 0){
//                    this->initSwipeTime();
//                    this->setIsSwipeTimeRight(SWIPE_WAIT_TIME);
//                    //音
//                    CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("dong.mp3");
//                    //エフェクト
//                    auto explosion = ParticleFire::create();
//                    explosion->setPosition(INIT_PLAYER_POSITION);
//                    explosion->setDuration(0.0001);
            //                    this->addChild(explosion);
//            explosion->setAutoRemoveOnFinish(true); // 表示が終わったら自分を親から削除!
//                }
//            }
//            else if(swipeDirection == SwipeDirection::LEFT){
//                if(_isSwipeTimeLeft <= 0){
//                    this->initSwipeTime();
//                    this->setIsSwipeTimeLeft(SWIPE_WAIT_TIME);
//                    //音
//                    CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("dong.mp3");
//                    //エフェクト
//                    auto explosion = ParticleFire::create();
//                    explosion->setPosition(INIT_PLAYER_POSITION);
            //                    explosion->setDuration(0.0001);
//            explosion->setAutoRemoveOnFinish(true); // 表示が終わったら自分を親から削除!
//                    this->addChild(explosion);
//                }
//            }
            if(swipeDirection == SwipeDirection::UP){
                if(_isSwipeTimeUp <= 0){
                    this->initSwipeTime();
                    this->setIsSwipeTimeUp(SWIPE_WAIT_TIME);
                    //音
                    CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("dong.mp3");
                    //エフェクト
                    auto explosion = ParticleFire::create();
                    explosion->setPosition(INIT_PLAYER_POSITION);
                    explosion->setDuration(0.0001);
                    explosion->setAutoRemoveOnFinish(true); // 表示が終わったら自分を親から削除!
                    this->addChild(explosion);
                }
            }
            else if(swipeDirection == SwipeDirection::DOWN){
                if(_isSwipeTimeDown <= 0){
                    this->initSwipeTime();
                    this->setIsSwipeTimeDown(SWIPE_WAIT_TIME);
                    //音
                    CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("dong.mp3");
                    //エフェクト
                    auto explosion = ParticleFire::create();
                    explosion->setPosition(INIT_PLAYER_POSITION);
                    explosion->setDuration(0.0001);
                    explosion->setAutoRemoveOnFinish(true); // 表示が終わったら自分を親から削除!
                    this->addChild(explosion);
                }
            }
            this->setTouchLocation(touch->getLocation());
        }
    };
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
    
    //this->scheduleUpdate();
    schedule(schedule_selector(MainScene::test), SFRAME_RATE);

    return true;
}
コード例 #26
0
ファイル: SelectScene.cpp プロジェクト: irukasoft/IrukaJet
bool SelectScene::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    //Dierctorを取り出し
    auto director = Director::getInstance();
    //画像サイズ取り出し
    auto winSize = director->getWinSize();
    //背景色
    auto background = Sprite::create("select_background.png");
    background->setPosition(Vec2(winSize.width / 2.0, winSize.height / 2.0));
    this->addChild(background);

    //ロゴ表示
    auto titleLogo = Sprite::create("select_logo.png");
    titleLogo->setScale(1.3f);
    titleLogo->setAnchorPoint(Vec2::ANCHOR_MIDDLE_TOP);
    titleLogo->setPosition(Vec2(winSize.width /2.0, winSize.height - 10));
	this->addChild(titleLogo);

	//説明の半透明枠を表示
	auto menuground = LayerColor::create(Color4B(51,75,112,200),
			winSize.width - 50,
			winSize.height - 320);
	this->addChild(menuground);
	menuground->ignoreAnchorPointForPosition(false);
	//menuground->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
	menuground->setPosition(Vec2(winSize.width /2.0, winSize.height/2.0));

	//スコア表示
    int i = 1;
    for (; i <= MAX_STAGE; i++){
    	auto stageImg = StringUtils::format(STAGE_IMG_FORMAT, i);
    	auto stageImgPressed = StringUtils::format(STAGE_IMG_PRESSED_FORMAT, i);
    	//ステージ選択ボタン
    	auto gameItem = MenuItemImage::create(stageImg,stageImgPressed,
    			[this](Ref *sender){
    		auto tapItem = (MenuItemImage*)sender;
    		//ゲームスタート
    		onGameStart(tapItem->getTag());
    	});
    	gameItem->setTag(i);
    	gameItem->setScale(0.5f);
    	//ハイスコアレベル
        auto stageHighKey = StringUtils::format(HIGHSCORE_KEY_STAGE, i);
    	auto highScore = UserDefault::getInstance()->getDoubleForKey(stageHighKey.c_str());
        auto scoreLabel = Label::createWithSystemFont(
        		"HIGH SCORE : --.---  ",
        		"Marker Felt",
        		28);
    	if (highScore > 0.0 ) {
    		scoreLabel->setString(StringUtils::format("HIGH SCORE : %6.3lf", highScore));
    	}
    	scoreLabel->setColor(Color3B::YELLOW);
    	scoreLabel->enableShadow(Color4B::BLACK, Size(0.5, 0.5), 3);
    	scoreLabel->enableOutline(Color4B::BLACK, 1.5);

    	//扱いやすいように背景の基準点変更
    	gameItem->setAnchorPoint(Vec2::ANCHOR_TOP_RIGHT);
    	scoreLabel->setAnchorPoint(Vec2::ANCHOR_TOP_LEFT);
    	auto gameMenu = Menu::create(gameItem, NULL);
    	this->addChild(gameMenu);
    	this->addChild(scoreLabel);

    	gameMenu->setPosition(Vec2(winSize.width /2.0 - 70, winSize.height - 200 - ((i-1)* 85)));
    	scoreLabel->setPosition(Vec2(winSize.width /2.0 -35, winSize.height - 200 - ((i-1)* 85)));
    }

	//menuボタン
	auto selectItem = MenuItemImage::create("common_btn_menu.png","common_btn_menu_pressed.png",
			[this](Ref *sender){
				auto scene = TitleScene::createScene();
				auto transition = TransitionFade::create(0.5, scene);
				Director::getInstance()->replaceScene(transition);

	});
	selectItem->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);
	auto menu = Menu::create(selectItem, nullptr);
	menu->setPosition(Vec2(25, 25));

	this->addChild(menu);

	return true;

}
コード例 #27
0
void BackGroundLayer::LoadNode()
{
    topBG = Sprite::create("toppic.png");
    topBG->setPosition(Vec2(0, 640));
    topBG->setAnchorPoint(Vec2(0, 1));
    topBG->setScaleX(1.8750f);
    topBG->setScaleY(1.3370f);
    topBG->runAction(RepeatForever::create(Sequence::create(MoveBy::create(15, Vec2(960.0f, 0)), CallFunc::create([&](){
        topBG->setPosition(Vec2(0, 640));
    }), NULL)));
    this->addChild(topBG);

    topBGclone = Sprite::create("toppic.png");
    topBGclone->setPosition(Vec2(0, 640));
    topBGclone->setAnchorPoint(Vec2(1, 1));
    topBGclone->setScaleX(1.8750f);
    topBGclone->setScaleY(1.3370f);
    topBGclone->runAction(RepeatForever::create(Sequence::create(MoveBy::create(15, Vec2(960, 0)), CallFunc::create([&](){
        topBGclone->setPosition(Vec2(0, 640));
    }), NULL)));
    this->addChild(topBGclone);

    buttomBG = PVEffectSprite::create("miku.jpg");
    buttomBG->setPosition(Vec2(0, 0));
    buttomBG->setAnchorPoint(Vec2(0, 0));
    buttomBG->setScaleY(0.738f);
    buttomBG->setName("buttomBG");
    buttomBG->retain();
    this->addChild(buttomBG);

    //歌词结点
    auto lyrcisNode = Node::create();
    lyrcisNode->setPosition(Vec2(300.0f, 470.0f));
    lyrcisNode->setName("lyrcisNode");
    buttomBG->addChild(lyrcisNode);

    //歌词特效结点
    auto lyrcisParticleNode = Node::create();
    lyrcisParticleNode->setPosition(Vec2(300.0f, 470.0f));
    lyrcisParticleNode->setName("lyrcisParticleNode");
    buttomBG->addChild(lyrcisParticleNode);

	//初始化歌词Node,歌词Node包含5个歌词子结点
	for (int i = 0; i < 5; ++i)
	{
        auto lyrcis = Label::create();
		lyrcis->setAlignment(TextHAlignment::LEFT);
		lyrcis->setOpacity(0);//便于开始的FadeIn动作
        lyrcis->setSystemFontSize(30);
		lyrcis->setPositionY(-i * 40);
		lyrcis->setColor(Color3B{ 241, 125, 170 });
#if (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
		lyrcis->enableOutline(Color4B(255, 192, 203, 255), 1);
		lyrcis->enableGlow(Color4B(255, 255, 255, 255));
#endif
		lyrcisNode->addChild(lyrcis);
	}

    auto lyrcisParticl = ParticleSystemQuad::create("particle/star.plist"); //歌词特效粒子
    lyrcisParticl->setPositionY(40);
    lyrcisParticl->setTotalParticles(20);
    lyrcisParticl->setVisible(false);
	lyrcisParticl->setName("lyrcisParticle");
    lyrcisParticleNode->addChild(lyrcisParticl);


   

    //触摸粒子
    touchparticle = ParticleSystemQuad::create("particle/touch.plist");
    touchparticle->setLocalZOrder(2);
    touchparticle->ignoreAnchorPointForPosition(true);
    touchparticle->setVisible(true);
    this->addChild(touchparticle);



    //初始化魂进度条
    soulProgBar = ProgressTimer::create(Sprite::create("progressUp.png"));
    soulProgBar->setType(ProgressTimer::Type::BAR);
    soulProgBar->setPosition(Vec2(250, 550));
    soulProgBar->ignoreAnchorPointForPosition(true);
    soulProgBar->setMidpoint(Point(0, 1));
    soulProgBar->setBarChangeRate(Point(1, 0));
    soulProgBar->setPercentage(0);
    this->addChild(soulProgBar);

    //添加进度条背景
    auto soulProgBarBG = Sprite::create();
    soulProgBarBG->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("progressDown.png"));
    soulProgBarBG->setPosition(Vec2(-5, -25));
    soulProgBarBG->setAnchorPoint(Vec2(0, 0));
    soulProgBarBG->setName("soul_progBarBG");
    soulProgBarBG->setLocalZOrder(-1);
    soulProgBar->addChild(soulProgBarBG);

    scrollBar_Background = UVEffectSprite::create();  //初始化鼓面背景层
    scrollBar_Background->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("sfieldbg.png"));
    scrollBar_Background->setPosition(Vec2(92.65f, 410.83f));   //设置绝对坐标
    scrollBar_Background->setAnchorPoint(Vec2(0, 0));//设置坐标
    scrollBar_Background->setScaleX(1.6885f);
    scrollBar_Background->setScaleY(1.5645f);
    scrollBar_Background->retain();
    this->addChild(scrollBar_Background);

    scrollBar = Node::create(); //初始化鼓面
    scrollBar->setPosition(Vec2(92.65f, 410.83f));//设置绝对坐标
    scrollBar->setAnchorPoint(Vec2(0, 0));//设置坐标
    scrollBar->setScaleX(1.6885f);
    scrollBar->setScaleY(1.5645f);
    scrollBar->setContentSize(scrollBar_Background->getContentSize());//复制上一层的长度
    this->addChild(scrollBar);

    auto scrollBarGu = Node::create(); //滚动条鼓面结点
    scrollBarGu->setPosition(Vec2(0, 0));
    scrollBarGu->setLocalZOrder(2);
    scrollBar->addChild(scrollBarGu);

    scrollBarClone = Node::create();
    scrollBarClone->setName("scrollBarClone");
    scrollBarClone->setAnchorPoint(Vec2(0, 0));
    scrollBarClone->setPosition(Vec2(512, 0));
    auto scrollBarCloneGu = Node::create();//滚动副条鼓面结点
    scrollBarCloneGu->setPosition(Vec2(0, 0));
    scrollBarClone->addChild(scrollBarCloneGu);
    scrollBar->addChild(scrollBarClone);

    GUcharMap = Label::createWithCharMap("combonumber_balloon.png", 20, 24, '0');   //测试计数
    GUcharMap->setAnchorPoint(Vec2(0, 0));
    GUcharMap->setPosition(Vec2(0, -30));
    GUcharMap->setString("0");// 初始化为0分
    GUcharMap->setGlobalZOrder(4);
    scrollBar->addChild(GUcharMap);

    GUcharMapClone = Label::createWithCharMap("combonumber_balloon.png", 20, 24, '0');   //测试计数
    GUcharMapClone->setAnchorPoint(Vec2(0, 0));
    GUcharMapClone->setString("0");// 初始化为0分
    GUcharMapClone->setGlobalZOrder(4);
    GUcharMapClone->setPosition(Vec2(0, -30));
    scrollBarClone->addChild(GUcharMapClone);


#pragma region 初始游戏谱面
    for (int i = 0; i < DrumSurfaceLoader::PerDrumCount; ++i) //初始化  scrollBarGu与 scrollBarCloneGu的结点	
    {
        auto tempSprite = Sprite::create();
        tempSprite->setVisible(false);
        tempSprite->setPosition(Vec2((i % DrumSurfaceLoader::PerDrumCount) * scrollBar->getContentSize().width / DrumSurfaceLoader::PerDrumCount, 30));
        scrollBarGu->addChild(tempSprite);
        auto tempSprite2 = Sprite::create();
        tempSprite2->setVisible(false);
        tempSprite2->setPosition(Vec2((i % DrumSurfaceLoader::PerDrumCount) * scrollBar->getContentSize().width / DrumSurfaceLoader::PerDrumCount, 30));
        scrollBarCloneGu->addChild(tempSprite2);
    }
    scrollBarSpriteVector = scrollBarGu->getChildren();
    for (const auto &node : scrollBarCloneGu->getChildren())
    {
        scrollBarSpriteVector.pushBack(node);
    }
#pragma endregion

}
コード例 #28
0
ファイル: GameOver.cpp プロジェクト: JUN-Shino/TheEscapist
void GameOver::initShowScore()
{
    auto _user = UserDefault::getInstance();
    
    int sqlFlag = _user->getIntegerForKey("sqlFlag");
    
    if(sqlFlag == 0){
        SaveSQL::sqliteCreateTable();
        SaveSQL::sqliteSetValueForKey();
        _user->setIntegerForKey("sqlFlag", 1);
    }
    
    //今回のスコアを取り出す
   
    int _showScore = _user->getIntegerForKey("gameScore");
    
    //ハイスコアを取り出す
    int _showhighScore = _user->getIntegerForKey("highScore");
    
    //今回のスコアからランクを呼び出す(SQliteを使用)
    const char * gameScoreRank = SaveSQL::sqliteGetRankForScore(_showScore);
    const char * highScoreRank = SaveSQL::sqliteGetRankForScore(_showhighScore);
    
    
    //実績アップデート
    int _collect = SaveSQL::sqliteGetCollectForRank(gameScoreRank);
    CCLOG("collectNO %d",_collect);
    
    if(_collect==0)
    {
            //まだ取得したことのないランクだった場合
        SaveSQL::sqliteUpdateCollectForScore(gameScoreRank,1);
    }
    
    //スコア表示
    auto scoreLabel = Label::createWithSystemFont("","Marker Felt", 48);
    scoreLabel->setPosition(Point(WINSIZE.width * 0.5, WINSIZE.height * 0.9));
    scoreLabel->setColor(Color3B::WHITE);
    scoreLabel->enableOutline(Color4B::BLACK,5);
    this->addChild(scoreLabel,Z_Label);
    
    scoreLabel->setString(StringUtils::format("現実逃避日数 : %d 日 \n現実逃避年数 : %d 年 %d 日", _showScore, _showScore/365, _showScore%365));
    
    
    //ランク表示
    auto rankLabel = Label::createWithSystemFont("","Marker Felt", 50);
    rankLabel->setPosition(Point(WINSIZE.width * 0.5, WINSIZE.height * 0.5));
    rankLabel->setColor(Color3B::MAGENTA);
    rankLabel->enableOutline(Color4B::BLACK,5);
    
    this->addChild(rankLabel,Z_Label);
    
    rankLabel->setString(StringUtils::format("ランク : %s", gameScoreRank));
 
    
    //ハイスコアandランク表示
    auto scoreLabel2 = Label::createWithSystemFont("","Marker Felt", 30);
    scoreLabel2->setPosition(Point(WINSIZE.width * 0.7, WINSIZE.height * 0.7));
    scoreLabel2->setColor(Color3B::RED);
    
    this->addChild(scoreLabel2,Z_Label);
    
    scoreLabel2->setString(StringUtils::format("最高逃避日数 : %d 日 \n最高現実逃避年数 : %d 年 %d 日 \n ランク : %s", _showhighScore, _showhighScore/365, _showhighScore%365, highScoreRank));
}
コード例 #29
0
ファイル: RelayGameLayer.cpp プロジェクト: jg-maon/Atelier
// on "init" you need to initialize your instance
bool RelayGameLayer::init()
{
	//////////////////////////////
	// 1. super init first
	if (!GridLayer::init())
	{
		return false;
	}

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

	_SetDefaultValues();


	//-----------------------------------------------------
	// 背景
	auto spriteBack = Sprite::create("MainBackAll.png");
	if(spriteBack)
	{
		// add "canvas" splash screen"

		spriteBack->setScale(
			this->getContentSize().width / spriteBack->getContentSize().width,
			this->getContentSize().height / spriteBack->getContentSize().height);
		// position the sprite on the center of the screen
		spriteBack->setPosition(
			origin.x + visibleSize.width / 2.f + origin.x,
			origin.y + visibleSize.height / 2.f + origin.y);

		spriteBack->setName("Back");

		// add the sprite as a child to this layer
		this->addChild(spriteBack, ZOrder::BACK);
	}

	//-----------------------------------------------------
	// キャンバス
	auto layerCanvas = LayerCanvas::create();
	if (layerCanvas && layerCanvas->createSprite("canvas.png"))
	{
		this->addChild(layerCanvas, ZOrder::CANVAS, "Canvas");

		layerCanvas->setPosition(
			origin + visibleSize / 2.f
			);
		layerCanvas->setVisible(false);

	}
	//-----------------------------------------------------
	// テーマ発表用
	auto spriteBoard = Sprite::create("BigBoard.png");
	if (spriteBoard)
	{
		spriteBoard->setPosition(
			origin + visibleSize/ 2.f
			);
		spriteBack->setVisible(true);		// 非表示
		this->addChild(spriteBoard, ZOrder::BIGBOARD, "BigBoard");
		auto size = spriteBoard->getContentSize();
		// 表示ラベル設定 余白 x:90*y:60
		// 上
		auto labelTop = Label::createWithSystemFont("描く順番と解答者の発表です", "GenShinGothic-Regular.ttf", calcFontSize(40.f));
		if (labelTop)
		{
			// 中央揃え上揃え
			labelTop->setAlignment(TextHAlignment::CENTER, TextVAlignment::TOP);

			labelTop->setPosition(
				size.width / 2.f,
				size.height - labelTop->getContentSize().height/2.f - 60.f
				);

			spriteBoard->addChild(labelTop, 0, "TopLabel");
		}
		// 中央
		auto labelMiddle = Label::createWithSystemFont("", "GenShinGothic-Medium.ttf", calcFontSize(80.f));
		labelMiddle->setName("MiddleLabel");
		auto itemLabel = MenuItemLabel::create(labelMiddle, [this](Ref* pSender){
			// 検索窓開く
			std::stringstream url;
			url << "https://www.google.co.jp/search?tbm=isch&q=" << m_nowTheme.theme;
			Application::getInstance()->openURL(url.str().c_str());
		});
		if (itemLabel)
		{
			m_pMiddleLabel = itemLabel;
			// 始めのうちは反応なし
			m_pMiddleLabel->setEnabled(false);
			// 中央揃え中央揃え
			labelMiddle->setAlignment(TextHAlignment::CENTER, TextVAlignment::BOTTOM);

			labelMiddle->setColor(Color3B(250, 210, 10));
			m_pMiddleLabel->setColor(Color3B(250, 210, 10));


			labelMiddle->setDimensions(size.width - 90, 0);
			m_pMiddleLabel->setName("ItemMiddleLabel");
			auto menu = Menu::create(m_pMiddleLabel, nullptr);
			menu->setPosition(
				size / 2.f
				);
			spriteBoard->addChild(menu, 0, "MenuMiddleLabel");
		}
		// 下
		auto labelBottom = Label::createWithSystemFont("1人目の人から順に\n画面をタッチしてください", "GenShinGothic-Regular.ttf", calcFontSize(37.f));
		if (labelBottom)
		{
			// 中央揃え下揃え
			labelBottom->setAlignment(TextHAlignment::CENTER, TextVAlignment::BOTTOM);

			labelBottom->setAnchorPoint(Vec2(0.5f, 0.0f));

			labelBottom->setPosition(
				size.width / 2.f,
				labelBottom->getContentSize().height / 2.f + 60.f
				);

			spriteBoard->addChild(labelBottom, 0, "BottomLabel");
		}
	}

	//-----------------------------------------------------
	// ラベル用
	auto spriteSmallBoard = Sprite::create("board.png");
	if (spriteSmallBoard)
	{
		spriteSmallBoard->setPosition(
			origin.x + visibleSize.width / 2.f,
			origin.y + visibleSize.height - spriteSmallBoard->getContentSize().height / 2.f
			);
		this->addChild(spriteSmallBoard, ZOrder::TOPBOARD, "SmallBoard");
	}



	//-----------------------------------------------------
	// ラベル設定
	// アナウンス
	auto label = Label::createWithSystemFont(" ", "GenShinGothic-Medium.ttf", calcFontSize(30.f));
	{
		label->setColor(Color3B(250, 250, 250));	// 白文字
		label->enableOutline(Color4B::BLACK, 3);	// 黒枠線

		label->setHorizontalAlignment(TextHAlignment::CENTER);
		spriteSmallBoard->addChild(label, 10, "Label");
		label->setPosition(spriteSmallBoard->getAnchorPointInPoints());
		m_pLabel = label;			// キャッシュ
	}
	//-----------------------------------------------------


	//-----------------------------------------------------
	// ボタン
	auto nextButton = MenuItemImage::create("button.png",
											"button2.png",
											[this](Ref* pSender)
	{
		if (FlowPhase::ANSWERED == m_flowPhase)
		{
			// タイトルへ
			dynamic_cast<SceneAtelierMain*>(this->getParent()->getParent())->toTitle();
		}
		else
		{
			// 全消去
			m_touchPoints[m_nowPage].clear();
			m_pDrawNode->clear();
		}
	});
	if (nextButton)
	{
		m_pNextButton = nextButton;
		nextButton->setName("NextButton");
		// ボタン非表示
		//nextButton->setVisible(false);
		auto size = nextButton->getContentSize();
		nextButton->setPosition(
			origin.x + visibleSize.width - size.width / 2.f,
			origin.y + size.height / 2.f);
		auto label = Label::createWithSystemFont("全消去", "GenShinGothic-Medium.ttf", calcFontSize(20.f));
		if (label)
		{
			m_pButtonLabel = label;
			label->setPosition(nextButton->getContentSize() / 2.f);
			label->setHorizontalAlignment(TextHAlignment::CENTER);
			// ラベル非表示
			//label->setVisible(false);
			label->setColor(Color3B(5, 5, 5));
			nextButton->addChild(label, ZOrder::NEXTBUTTONLABEL, "ButtonLabel");
	
		}
	}


	auto menuButtons = Menu::create(nextButton, nullptr);
	if (menuButtons)
	{
		menuButtons->setPosition(Vec2::ZERO);
		menuButtons->setVisible(false);
		this->addChild(menuButtons, ZOrder::MENUBUTTONS, "MenuButtons");
	}


	//-----------------------------------------------------
	// 前後ボタン
	// 前
	auto itemBack = MenuItemImage::create("BackButton.png",
										  "BackButton2.png",
										  [this](Ref* pSender){

		auto button = dynamic_cast<MenuItemImage*>(pSender);
		if (0 < m_nowPage)
		{
			// 戻るよ!
			auto oldCanvas = this->getChildByName("Canvas");
			if (!oldCanvas)
				oldCanvas = this->getChildByName("Canvas" + std::to_string(m_nowPage));



			--m_nowPage;
			std::stringstream ss;
			ss << "Canvas" << m_nowPage;
			auto layerCanvas = this->getChildByName(ss.str());
			layerCanvas->setLocalZOrder(oldCanvas->getLocalZOrder() + 1);
			auto drawNode = layerCanvas->getChildByName<DrawNode*>("DrawNode");
			layerCanvas->setVisible(true);
			layerCanvas->runAction(
				Sequence::create(
					ReverseTime::create(PageTurn3D::create(0.5f, Size(24.f, 32.f))),
					CallFunc::create([this, layerCanvas, drawNode](){
						// キャンバスの入れ替え
						
						//--------------------------
						// DrawNode入れ替え
						m_pDrawNode = drawNode;
						//--------------------------
					}),
					nullptr
				)
			);

			if (0 == m_nowPage)
			{
				// もう戻れないよ!
				button->setVisible(false);
			}
			button->getParent()->getChildByName("LastNextButton")->setVisible(true);
		}
	
	});
	{
		itemBack->setName("LastBackButton");
	}
	auto itemNext = MenuItemImage::create("NextButton.png",
										  "NextButton2.png",
										  [this](Ref* pSender){
		auto button = dynamic_cast<MenuItemImage*>(pSender);
		const auto maxPage = m_touchPoints.size() - 1;
		if (maxPage > m_nowPage)
		{
			// 進むよ!
			auto oldCanvas = this->getChildByName("Canvas");
			if (!oldCanvas)
				oldCanvas = this->getChildByName("Canvas" + std::to_string(m_nowPage));


			++m_nowPage;
			std::stringstream ss;
			ss << "Canvas" << m_nowPage;
			auto layerCanvas = this->getChildByName(ss.str());
			layerCanvas->setLocalZOrder(oldCanvas->getLocalZOrder() - 1);
			auto drawNode = layerCanvas->getChildByName<DrawNode*>("DrawNode");
			layerCanvas->setVisible(true);
			
			oldCanvas->runAction(
				Sequence::create(
					PageTurn3D::create(0.5f, Size(24.f, 32.f)),
					CallFunc::create([this, layerCanvas, drawNode](){
						// キャンバスの入れ替え
						
						//--------------------------
						// DrawNode入れ替え
						m_pDrawNode = drawNode;
						//--------------------------
					}),
					nullptr
				)
			);

			if (maxPage == m_nowPage)
			{
				// もう進めないよ!
				button->setVisible(false);
			}
			button->getParent()->getChildByName("LastBackButton")->setVisible(true);
		}

	});
	{
		itemNext->setName("LastNextButton");
		itemNext->setVisible(false);
	}
	auto menuLastButtons = Menu::create(itemBack, itemNext, nullptr);
	{
		// 縦一列,間隔
		const float padding = 10.f;
		menuLastButtons->alignItemsVerticallyWithPadding(padding);

		// 非表示
		menuLastButtons->setVisible(false);

		auto canvas = layerCanvas->getSprite();
		Vec2 leftBottom = canvas->convertToWorldSpace(Vec2::ZERO);

		auto size = itemBack->getContentSize();
		menuLastButtons->setPosition(leftBottom.x / 2.f,
									 leftBottom.y + size.height + padding / 2.f);

		this->addChild(menuLastButtons, ZOrder::MENULASTBUTTONS, "MenuLastButtons");
	}
	//-----------------------------------------------------
	m_pDrawNode = DrawNode::create();
	{
		m_pDrawNode->setAnchorPoint(Vec2::ZERO);
		auto canvas = layerCanvas->getSprite();
		//layerCanvas->addChild(m_pDrawNode, 1);
		m_pDrawNode->setPosition(
			-(layerCanvas->getPositionX() - layerCanvas->getAnchorPoint().x*layerCanvas->getContentSize().width ),
			-(layerCanvas->getPositionY() - layerCanvas->getAnchorPoint().y*layerCanvas->getContentSize().height)
			);
		canvas->addChild(m_pDrawNode, 1, "DrawNode");
	}


	//-----------------------------------------------------
	// 描きすぎレイヤー
	auto layerTouch = Layer::create();
	{
		layerTouch->setVisible(false);

		auto sprite = Sprite::create();	// 背景用
		sprite->setTextureRect(Rect(0, 0, visibleSize.width, visibleSize.height));
		sprite->setPosition(visibleSize / 2.f);
		sprite->setColor(Color3B::BLACK);
		sprite->setOpacity(192);
		layerTouch->addChild(sprite, 0);

		this->addChild(layerTouch, ZOrder::MOST_FRONT, "OverTouchLayer");
		auto label = Label::createWithSystemFont("一人の持ち時間を使い果たしました\n"
												 "\n次の人に回してタッチしてください\n",
												 "GenShinGothic-Medium.ttf", calcFontSize(40.f));
		{
			label->setPosition(layerTouch->getContentSize() / 2.f);
			label->setAlignment(TextHAlignment::CENTER, TextVAlignment::CENTER);
			label->setColor(Color3B(250, 250, 15));
			layerTouch->addChild(label, 10, "Label");
		}

		auto listener = EventListenerTouchOneByOne::create();
		listener->setSwallowTouches(false);
		listener->onTouchBegan = [this, layerTouch](Touch* touch, Event* event){
			if (layerTouch->isVisible())
			{
				return true;
			}
			return false;
		};
		listener->onTouchEnded = [this, layerTouch](Touch* touch, Event* event){
			//layerTouch->setVisible(false);
			//m_pListener->setSwallowTouches(false);
			// 描きすぎレイヤー非表示
			this->_SetOverTouchLayerVisible(false);
			if (m_nowPage >= m_playerNum - 2)
			{
				// 全員描いた場合
				// キャンバスめくらない
				m_flowPhase = FlowPhase::JUDGE;

				// 解答ボックス出現
				auto visibleSize = Director::getInstance()->getVisibleSize();
				m_pEditBox->runAction(
					Sequence::create(
						CallFunc::create([this]{ m_pEditBox->setEnabled(false); }),
						EaseBackOut::create(
							MoveTo::create(0.5f,
								Vec2(visibleSize.width / 2.f,
								m_pEditBox->getPositionY()
								)	// 画面中央まで
							)
						),
						CallFunc::create([this]{ m_pEditBox->setEnabled(true); }),
						nullptr
					)
				);

				// 全消去無効化
				m_pNextButton->setVisible(false);


				// ラベルの設定
				m_pLabel->setString("テーマを答えてください");

			}
			else
			{
				// 前の人の絵を見せる
				m_flowPhase = FlowPhase::SHOW;
				m_pLabel->setString("見終わったらタッチして描き始めてください");
			}

			// 全員描いた場合
			//if (m_nowPage >= m_playerNum - 1)
			//{
			//	// フェーズ
			//	m_flowPhase = FlowPhase::JUDGE;
			//
			//	// 解答ボックス出現
			//	auto visibleSize = Director::getInstance()->getVisibleSize();
			//	m_pEditBox->runAction(
			//		Sequence::create(
			//			CallFunc::create([this]{ m_pEditBox->setEnabled(false); }),
			//			EaseBackOut::create(
			//				MoveTo::create(0.5f,
			//					Vec2(visibleSize.width / 2.f,
			//					m_pEditBox->getPositionY()
			//					)	// 画面中央まで
			//				)
			//			),
			//			CallFunc::create([this]{ m_pEditBox->setEnabled(true); }),
			//			nullptr
			//		)
			//	);
			//
			//	// ラベルの設定
			//	m_pLabel->setString("テーマを答えてください");
			//
			//
			//}

		};
		this->_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, layerTouch);
		m_pListener = listener;
	}

	
	//-----------------------------------------------------
	// 解答入力ボックス
	m_pEditBox = EditBox::create(spriteSmallBoard->getContentSize(), Scale9Sprite::create("board.png"));
	{
		// box
		auto size = m_pEditBox->getContentSize();
		m_pEditBox->setPreferredSize(spriteSmallBoard->getContentSize());
		m_pEditBox->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
		m_pEditBox->setPosition(Vec2(
			origin.x + visibleSize.width + size.width / 2.f,
			origin.y + size.height / 2.f));
		//m_pEditBox->setPosition(Vec2(
		//	origin.x + visibleSize.width / 2.f,
		//	origin.y + size.height / 2.f));
		// 内部ラベル
		m_pEditBox->setFontName("GenShinGothic-Regular.ttf");	// ファミリー
		m_pEditBox->setFontSize(static_cast<int>(calcFontSize(25.f)));		// サイズ
		m_pEditBox->setFontColor(Color3B(250, 250, 250));				// 色
		m_pEditBox->getLabel()->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
		m_pEditBox->getLabel()->setPosition(spriteSmallBoard->getContentSize() / 2.f);
		// 初期ラベル
		m_pEditBox->setPlaceHolder("ここをタッチして解答 (全てひらがなで、数字は半角で入力)");	// 例等初期値(入力時に消える)
		m_pEditBox->setPlaceholderFontColor(Color3B(5, 5, 5));
		m_pEditBox->getPlaceHolderLabel()->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
		m_pEditBox->getPlaceHolderLabel()->setPosition(spriteSmallBoard->getContentSize() / 2.f);

		// Box自体の設定
		m_pEditBox->setMaxLength(20);	// 文字数
		m_pEditBox->setReturnType(EditBox::KeyboardReturnType::DEFAULT);	// Returnキーが押された時
		m_pEditBox->setInputMode(EditBox::InputMode::SINGLE_LINE);			// 1行,自由文字列

		// メソッド
		m_pEditBox->setDelegate(this);

		this->addChild(m_pEditBox, ZOrder::BOX, "EditBox");
	}
	
	//-----------------------------------------------------
	// 間違え
	auto spriteCrossCanvas = Sprite::create("CrossCanvas.png");
	{
		spriteCrossCanvas->setPosition(visibleSize / 2.f);
		spriteCrossCanvas->setVisible(false);
		this->addChild(spriteCrossCanvas, ZOrder::MOST_FRONT, "CrossCanvas");
	}
	//-----------------------------------------------------
	// 正解
	auto spriteCircleCanvas = Sprite::create("CircleCanvas.png");
	{
		spriteCircleCanvas->setPosition(visibleSize / 2.f);
		spriteCircleCanvas->setVisible(false);
		this->addChild(spriteCircleCanvas, ZOrder::MOST_FRONT, "CircleCanvas");
	}


	return true;
}