Exemplo n.º 1
0
//==============================================================================
Drawable* DrawableButton::getCurrentImage() const noexcept
{
    if (isDown())  return getDownImage();
    if (isOver())  return getOverImage();

    return getNormalImage();
}
Exemplo n.º 2
0
void MainMenuScene::initButton()
{
    auto mBackGround = Sprite::create("bg3.png");
    mBackGround->setScale(visibleSize.height/mBackGround->getContentSize().height);
    mBackGround->setAnchorPoint(Vec2(0.5,0.5));
    mBackGround->setPosition((origin.x +visibleSize.width)/2, (origin.y +visibleSize.height)/2);
    addChild(mBackGround);
    
    auto mNameSprite = Sprite::create("GameName.png");
    mNameSprite->setScale((visibleSize.width/2)/mNameSprite->getContentSize().width);
    mNameSprite->setAnchorPoint(Vec2(0.5,1));
    mNameSprite->setPosition(Vec2((origin.x +visibleSize.width)/2,origin.y + visibleSize.height - 50));
    addChild(mNameSprite);
    
    auto mRaceButton = MenuItemImage::create("RaceNormal.png","RaceSelected.png",CC_CALLBACK_1(MainMenuScene::menuPlayCallback,this));

    mRaceButton->setAnchorPoint(Vec2(0.5,1));
    mRaceButton->setScale((visibleSize.width/5)/mRaceButton->getNormalImage()->getContentSize().width);
    Vec2 tRaceButtonPos = Vec2((origin.x +visibleSize.width)/2,(origin.y + visibleSize.height)/2 + mRaceButton->getNormalImage()->getContentSize().height/3);
    mRaceButton->setPosition(tRaceButtonPos);
    
	mSoundButton = MenuItemImage::create("SettingNormal.png", "SettingSelected.png", CC_CALLBACK_1(MainMenuScene::menuSoundCallback, this));

	mSoundButton->setAnchorPoint(Vec2(0, 1));
	mSoundButton->setScale((visibleSize.width / 5) / mRaceButton->getNormalImage()->getContentSize().width);
	Vec2 tSoundButtonPos = Vec2(mRaceButton->getPosition().x + 20, mRaceButton->getPosition().y - 120);
	mSoundButton->setPosition(tSoundButtonPos);
    
	auto mRateButton = MenuItemImage::create("SettingNormal.png", "SettingSelected.png", CC_CALLBACK_1(MainMenuScene::menuRateCallback, this));

	mRateButton->setAnchorPoint(Vec2(1, 1));
	mRateButton->setScale((visibleSize.width / 5) / mRaceButton->getNormalImage()->getContentSize().width);
	Vec2 tRateButtonPos = Vec2(mRaceButton->getPosition().x - 20, mRaceButton->getPosition().y - 120);
	mRateButton->setPosition(tRateButtonPos);
    
    cocos2d::Vector<MenuItem*> items;
    items.pushBack(mRaceButton);
	items.pushBack(mSoundButton);
	items.pushBack(mRateButton);

    auto menu = Menu::createWithArray(items);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);
    
    
}
Exemplo n.º 3
0
Image ImageButton::getCurrentImage() const
{
    if (isDown() || getToggleState())
        return getDownImage();

    if (isOver())
        return getOverImage();

    return getNormalImage();
}
//==============================================================================
const Drawable* DrawablePad::getCurrentImage() const throw()
{
    if (isDown())
        return getDownImage();

    if (isOver())
        return getOverImage();

    return getNormalImage();
}
Exemplo n.º 5
0
void CMenuItemWithDesciption::MouseMove(Point pos)
{
	if(isVisible() && getNormalImage()->getBoundingBox().containsPoint(convertToNodeSpace(pos)))
	{
		m_IsCursorUnder = true;
	}
	else
	{
		m_IsCursorUnder = false;
		m_CursorOverTime = 0.0f;
	}
}
Exemplo n.º 6
0
void HeroIcon::setHero( Hero::Pointer hero )
{
	assert( !_hero );
	assert( hero );
	_hero = hero;
	_hero->observerHealth.add( _ID, 
		[this]( float current, float health )
	{
		float percent = current / health * 100.f;
		_timer->setPercentage( percent );

		bool enabled = _hero->current_state().get_name() != Hero::State::state_death;
		unsigned char opacity = enabled ? 255 : 128;
		setEnabled( enabled );
		getNormalImage()->setOpacity( opacity );
		_timer->setOpacity( opacity );
	} );
}
Exemplo n.º 7
0
void HeroIcon::showCancel( bool mode )
{
	if( _cancelImage )
	{
		_cancelImage->setVisible( mode );
	}

	if( _hero )
	{
		_hero->runEvent( mode ? "onselect" : "ondeselect" );
	}

	std::string image = mode ? _selectedHero : _unselectedHero;
	xmlLoader::setProperty( getNormalImage(), xmlLoader::kImage, image );
	//auto frame = ImageManager::shared().spriteFrame( image );
	//if( frame )
	//	static_cast<Sprite*>(getNormalImage())->setSpriteFrame( frame );
}
Exemplo n.º 8
0
void DrawableButton::buttonStateChanged()
{
    repaint();

    Drawable* imageToDraw = nullptr;
    float opacity = 1.0f;

    if (isEnabled())
    {
        imageToDraw = getCurrentImage();
    }
    else
    {
        imageToDraw = getToggleState() ? disabledImageOn
                                       : disabledImage;

        if (imageToDraw == nullptr)
        {
            opacity = 0.4f;
            imageToDraw = getNormalImage();
        }
    }

    if (imageToDraw != currentImage)
    {
        removeChildComponent (currentImage);
        currentImage = imageToDraw;

        if (currentImage != nullptr)
        {
            currentImage->setInterceptsMouseClicks (false, false);
            addAndMakeVisible (currentImage);
            resized();
        }
    }

    if (currentImage != nullptr)
        currentImage->setAlpha (opacity);
}
Exemplo n.º 9
0
bool HeroIcon::init( const std::string & heroname, const ccMenuCallback & callback )
{
	do
	{
		CC_BREAK_IF( !MenuItemImageWithText::initWithNormalImage( empty, empty, empty, empty, empty, callback ) );
		std::string cancel = k::resourceGameSceneFolder + "icon_x_10.png";
		std::string normal = k::resourceGameSceneFolder + heroname + "_2" + ext;
		std::string selected = k::resourceGameSceneFolder + heroname + "_3" + ext;
		std::string disabled = k::resourceGameSceneFolder + heroname + "_1" + ext;

		_unselectedHero = normal;
		_selectedHero = selected;
		
		std::string timer = k::resourceGameSceneFolder + "hero_progressbar1" + ext;
		std::string timer_bg = k::resourceGameSceneFolder + "hero_progressbar2" + ext;

		setImageNormal( normal );
		setImageDisabled( disabled );

		auto progress = Node::create();
		Sprite * image = ImageManager::sprite( timer );
		CC_BREAK_IF( !image );
		_timer = ProgressTimer::create( image );
		CC_BREAK_IF( !_timer );

		image->setAnchorPoint( Point::ANCHOR_BOTTOM_LEFT );
		_timer->setType( ProgressTimer::Type::BAR );
		_timer->setMidpoint( Point( 0.0f, 0.5f ) );
		_timer->setBarChangeRate( Point( 1, 0 ) );
		_timer->setPercentage( 0 );
		
		progress->addChild( ImageManager::sprite( timer_bg ) );
		progress->addChild( _timer, 1 );

		addChild( progress );
		Point pos;
		pos.x = getNormalImage()->getContentSize().width / 2;
		pos.y = -image->getContentSize().height * 0.7f;
		progress->setPosition( pos );
		
		if( 0 )
		{
			_cancelImage = ImageManager::sprite( cancel );
			getNormalImage()->addChild( _cancelImage );
			_cancelImage->setPosition( Point( getNormalImage()->getContentSize() ) - Point( 5, 5 ) );
			_cancelImage->setVisible( false );
			_cancelImage->setScale( 1.5f );
			
			auto s1 = ScaleTo::create( 0.4f, 1.2f );
			auto s2 = ScaleTo::create( 0.4f, 1.0f );
			auto d = DelayTime::create( 1 );
			auto s = Sequence::create( s1, s2, d, nullptr );
			auto action = RepeatForever::create( EaseInOut::create( s, 0.5f ) );
			_cancelImage->runAction( action );
		}


		return true;
	}
	while( false );
	return false;
}
Exemplo n.º 10
0
void comboUC::paintStatusImage(HDC hdc)
{
	if( isFocused() ) m_uButtonState |= UCSTATE_FOCUSED;
	else m_uButtonState &= ~ UCSTATE_FOCUSED;
	if( !isEnabled() ) m_uButtonState |= UCSTATE_DISABLED;
	else m_uButtonState &= ~ UCSTATE_DISABLED;

	Gdiplus::Graphics grap(hdc);
	RECT rcSrc = {0};
	if( (m_uButtonState & UCSTATE_DISABLED) != 0 ) {
		if (getDisabledImage(rcSrc))
		{
			gtc::drawer::drawImage(grap, m_pImage, m_rcItem, rcSrc);
			return;
		}
		//if( !m_sDisabledImage.IsEmpty() ) {
		//	if( !DrawImage(hDC, (LPCTSTR)m_sDisabledImage) ) m_sDisabledImage.Empty();
		//	else return;
		//}
	}
	else if( (m_uButtonState & UCSTATE_PUSHED) != 0 ) {
		if (getPushedImage(rcSrc))
		{
			gtc::drawer::drawImage(grap, m_pImage, m_rcItem, rcSrc);
			return;
		}
		//if( !m_sPushedImage.IsEmpty() ) {
		//	if( !DrawImage(hDC, (LPCTSTR)m_sPushedImage) ) m_sPushedImage.Empty();
		//	else return;
		//}
	}
	else if( (m_uButtonState & UCSTATE_HOT) != 0 ) {
		if (getHotImage(rcSrc))
		{
			gtc::drawer::drawImage(grap, m_pImage, m_rcItem, rcSrc);
			return;
		}
		//if( !m_sHotImage.IsEmpty() ) {
		//	if( !DrawImage(hDC, (LPCTSTR)m_sHotImage) ) m_sHotImage.Empty();
		//	else return;
		//}
	}
	else if( (m_uButtonState & UCSTATE_FOCUSED) != 0 ) {
		if (getFocusedImage(rcSrc))
		{
			gtc::drawer::drawImage(grap, m_pImage, m_rcItem, rcSrc);
			return;
		}
		//if( !m_sFocusedImage.IsEmpty() ) {
		//	if( !DrawImage(hDC, (LPCTSTR)m_sFocusedImage) ) m_sFocusedImage.Empty();
		//	else return;
		//}
	}
	if (getNormalImage(rcSrc))
	{
		gtc::drawer::drawImage(grap, m_pImage, m_rcItem, rcSrc);
	}
	//if( !m_sNormalImage.IsEmpty() ) {
	//	if( !DrawImage(hDC, (LPCTSTR)m_sNormalImage) ) m_sNormalImage.Empty();
	//	else return;
	//}
}
void DrawableButton::paintButton (Graphics& g,
                                  bool isMouseOverButton,
                                  bool isButtonDown)
{
    Rectangle imageSpace;

    if (style == ImageOnButtonBackground)
    {
        const int insetX = getWidth() / 4;
        const int insetY = getHeight() / 4;

        imageSpace.setBounds (insetX, insetY, getWidth() - insetX * 2, getHeight() - insetY * 2);

        getLookAndFeel().drawButtonBackground (g, *this,
                                               getBackgroundColour(),
                                               isMouseOverButton,
                                               isButtonDown);
    }
    else
    {
        g.fillAll (getBackgroundColour());

        const int textH = (style == ImageAboveTextLabel)
                            ? jmin (16, proportionOfHeight (0.25f))
                            : 0;

        const int indentX = jmin (edgeIndent, proportionOfWidth (0.3f));
        const int indentY = jmin (edgeIndent, proportionOfHeight (0.3f));

        imageSpace.setBounds (indentX, indentY,
                              getWidth() - indentX * 2,
                              getHeight() - indentY * 2 - textH);

        if (textH > 0)
        {
            g.setFont ((float) textH);

            g.setColour (Colours::black.withAlpha (isEnabled() ? 1.0f : 0.4f));
            g.drawFittedText (getButtonText(),
                              2, getHeight() - textH - 1,
                              getWidth() - 4, textH,
                              Justification::centred, 1);
        }
    }

    g.setImageResamplingQuality (Graphics::mediumResamplingQuality);
    g.setOpacity (1.0f);

    const Drawable* imageToDraw = 0;

    if (isEnabled())
    {
        imageToDraw = getCurrentImage();
    }
    else
    {
        imageToDraw = getToggleState() ? disabledImageOn
                                       : disabledImage;

        if (imageToDraw == 0)
        {
            g.setOpacity (0.4f);
            imageToDraw = getNormalImage();
        }
    }

    if (imageToDraw != 0)
    {
        if (style == ImageRaw)
        {
            imageToDraw->draw (g, 1.0f);
        }
        else
        {
            imageToDraw->drawWithin (g,
                                     imageSpace.getX(),
                                     imageSpace.getY(),
                                     imageSpace.getWidth(),
                                     imageSpace.getHeight(),
                                     RectanglePlacement::centred,
                                     1.0f);
        }
    }
}
Exemplo n.º 12
0
const Drawable* MidiPad::getCurrentImage() const throw()
{
    return getNormalImage();
}
//==============================================================================
void DrawablePad::paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown)
{
    const int insetX = getWidth() / 4;
    const int insetY = getHeight() / 4;

    Rectangle imageSpace;
    imageSpace.setBounds (insetX, insetY, getWidth() - insetX * 2, getHeight() - insetY * 2);
 
    drawButtonBackground (g,
                          *this,
                          getBackgroundColour(),
                          isMouseOverButton,
                          isButtonDown);

    g.setOpacity (1.0f);

    const Drawable* imageToDraw = 0;

    if (isEnabled())
    {
        imageToDraw = getCurrentImage();
    }
    else
    {
        imageToDraw = getToggleState() ? disabledImageOn
                                       : disabledImage;

        if (imageToDraw == 0)
        {
            g.setOpacity (0.4f);
            imageToDraw = getNormalImage();
        }
    }

    if (imageToDraw != 0)
    {
        g.setImageResamplingQuality (Graphics::highResamplingQuality);

        imageToDraw->drawWithin (g,
                                 imageSpace.getX(),
                                 imageSpace.getY(),
                                 imageSpace.getWidth(),
                                 imageSpace.getHeight(),
                                 RectanglePlacement::centred,
                                 1.0f);
    }

    float fontsize = jmin ((float)(proportionOfWidth(0.2f)),(float)(proportionOfHeight(0.15f)));
    if (fontsize < 5.0) fontsize=5.0;

    g.setFont (Font (fontsize, Font::bold));
    g.setColour (getBackgroundColour().contrasting(0.8f));
    g.drawText (Label,
                proportionOfWidth (0.0447f),
                proportionOfHeight (0.0499f),
                proportionOfWidth (0.9137f),
                proportionOfHeight (0.1355f),
                Justification::centred, true);

    if (showdot && ! hex)
    {
        g.setFont (Font (fontsize*0.9f, Font::plain));

        String xy;
        if (showx && showy) xy = T("x:") + String((int)(x*127.1)) + T(" y:") + String((int)(y*127.1));
        else if (showx)     xy = T("x:") + String((int)(x*127.1));
        else if (showy)     xy = T("y:") + String((int)(y*127.1));

        g.drawText (xy,
                    proportionOfWidth (0.0447f),
                    proportionOfHeight (0.8057f),
                    proportionOfWidth (0.9137f),
                    proportionOfHeight (0.1355f),
                    Justification::centred, true);

        float diameter = jmin ((float)(proportionOfHeight(0.125f)), (float)(proportionOfWidth(0.5f)));

        g.setColour (Colour (0x88faa52a));
        g.fillEllipse ((float)(proportionOfWidth(x)) - diameter*0.5f, 
                       (float)(proportionOfHeight(1.0f-y)) - diameter*0.5f, 
                       diameter, 
                       diameter);

        g.setColour (Colour (0x99a52a88));
        g.drawEllipse ((float)(proportionOfWidth(x)) - diameter*0.5f, 
                       (float)(proportionOfHeight(1.0f-y)) - diameter*0.5f, 
                       diameter, 
                       diameter, 
                       diameter*0.1f);
    }

}