Пример #1
0
bool GUIImage::render(sf::RenderWindow *window, sf::RenderStates &states)
{
	bool visible = getVisible();
	if(!visible)return false;
	float x = getLocalX(), y = getLocalY();
	std::shared_ptr<GUIElement> parent = getParent();
	while(parent != NULL)
	{
		x += parent->getLocalX();
		y += parent->getLocalY();
		visible = parent->getVisible();
		if(!visible)
			return false;
		parent = parent->getParent();
	}
	if(visible)

	{
		mSprite.setPosition(x, y);
		window->draw(mSprite, states);
	}

	if(!mChilds.empty())
	{
		for(std::vector<std::shared_ptr<GUIElement> >::size_type i = 0; i < mChilds.size(); ++i)
		{
			mChilds[i]->render(window, states);
		}
	}
	return true;
}
Пример #2
0
bool GUIText::render(sf::RenderWindow *window, sf::RenderStates &states)
{
	bool visible = getVisible();
	if(!visible)return false;
	float x = getLocalX(), y = getLocalY();
	std::shared_ptr<GUIElement> parent = getParent();
	while(parent != NULL)
	{
		visible = parent->getVisible();
		x += parent->getLocalX();
		y += parent->getLocalY();
		if(!visible)
			return false;
		parent = parent->getParent();
	}
	if(visible)
	{		
		float posX = x, posY = y;
		if(mAlignment == "left")
		{
			mText.setPosition(getX(), getY());
			mText.setOrigin(0, 0);
		}
		else if(mAlignment == "middle")
		{
			mText.setPosition(getX(), getY());
			mText.setOrigin(mText.getLocalBounds().width/2, 0);
		}
		else if(mAlignment == "right")
		{
			mText.setPosition(getX(), getY());
			mText.setOrigin(mText.getLocalBounds().width, 0);
		}

		window->draw(mText, states);
	}

	

	if(!mChilds.empty())
	{
		for(std::vector<std::shared_ptr<GUIElement> >::size_type i = 0; i < mChilds.size(); ++i)
		{
			mChilds[i]->render(window, states);
		}
	}
	return true;
}
Пример #3
0
bool GUIButton::render(sf::RenderWindow *window, sf::RenderStates &states)
{
	bool visible = getVisible();
	if(!visible) 
		return false;
	std::shared_ptr<GUIElement> parent = getParent();
	float x = getLocalX(), y = getLocalY();
	while(parent != NULL)
	{
		x += parent->getLocalX();
		y += parent->getLocalY();
		visible = parent->getVisible();
		if(!visible)
			return false;
		parent = parent->getParent();
	}
	if(visible)
	{
		sf::RenderStates _state = states;
		if(getMouseIsInside())
			_state.shader = mGlowEffect;
		//sf::RectangleShape rect(sf::Vector2f(getWidth(), getHeight()));
		//rect.setPosition(x, y);
		//rect.setFillColor(sf::Color::Color(255, 255, 255, 255));

		//window->draw(rect);
		mSprite.setPosition(x, y);
		window->draw(mSprite, _state);
	}

	if(!mChilds.empty())
	{
		for(std::vector<std::shared_ptr<GUIElement> >::size_type i = 0; i < mChilds.size(); ++i)
		{
			mChilds[i]->render(window, states);
		}
	}
	return true;
}
Пример #4
0
Point Space::fromPhysical(int x, int y){
    return Point(getLocalX(x), getLocalY(y), *this);
}