[ create a new paste ] login | about

Link: http://codepad.org/U8ddn42S    [ raw code | fork ]

C++, pasted on May 31:
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include "item.h"

Item::Item(sf::RenderWindow *App, sf::Sprite &Sprite, unsigned int x, unsigned int y, int ItemNumber, 
		   unsigned int ItemMaxNumber, unsigned int ID, sf::Font &Font)
: Game(App)
{
	//Dem Item das Sprite übergeben, die Position und die ID setzen
	ItemSprite = Sprite;
	X = x; Y = y; ItemID = ID;
	ItemSprite.SetPosition(X*50.0f, Y*50.0f);

	//Anzahl und maximale Anzahl festlegen
	Number = ItemNumber;
	MaxNumber = ItemMaxNumber;

	//Font übergeben und die Anzahl vom ItemStack als Text erstellen
	MyFont = Font;
	NumberText = sf::Text("", MyFont, 12);
	NumberText.SetColor(sf::Color::White);
	NumberText.SetPosition(ItemSprite.GetPosition().x + 10, ItemSprite.GetPosition().y + 10);

	//Das Item exisitert und es bewegt sich nicht (ist nicht ausgewählt)
	Life = true;
	Move = false;
}

Item::~Item()
{
	//new löschen!
}

void Item::Update(sf::Clock &Clock, sf::Font &MyFont)
{
	NumberText = sf::Text(NumberText.GetString(), MyFont, 12);
}

void Item::Render()
{
	//Das Item und die Anzahl davon zeichnen (wenn nur 1 da is, soll keine Zahl dabei sein)
	Game->Draw(ItemSprite);
	if(Number > 1)
		Game->Draw(NumberText);
}

void Item::SetColor(sf::Uint8 Red, sf::Uint8 Green, sf::Uint8 Blue)
{
	ItemSprite.SetColor(sf::Color(Red, Green, Blue));
}

void Item::SetNumber(unsigned int x, unsigned int y)
{
	X = x; Y = y;
}

void Item::SetNumber(unsigned int NewNumber)
{
	Number = NewNumber;
}

void Item::SetPosition(float xPos, float yPos, std::stringstream &stream)
{
	//Die Position vom Item und von der Anzahl des Stacks setzen
	ItemSprite.SetPosition(xPos, yPos);

	//Stream bekommt die Anzahl der Items und lässt es dann als Text erscheinen
	stream.str("");
	stream<<Number;
	NumberText.SetString(stream.str());
	NumberText.SetPosition(ItemSprite.GetPosition().x+12-(int)(NumberText.GetLocalBounds().Width/2), ItemSprite.GetPosition().y+10);
}

void Item::SetLife(bool NewLife)
{
	Life = NewLife;
}

void Item::SetMove(bool NewMove)
{
	Move = NewMove;
}

void Item::ChangeNumber(unsigned int Value, bool Change)
{
	//Wenn Change true ist, wird addiert, bei false wird subtrahiert
	if(Change == true)
		Number += Value;
	else
		Number -= Value;
}

const unsigned int Item::GetX() const
{
	return X;
}

const unsigned int Item::GetY() const
{
	return Y;
}

const unsigned int Item::GetItemID() const
{
	return ItemID;
}

const unsigned int Item::GetNumber() const
{
	return Number;
}

const unsigned int Item::GetMaxNumber() const
{
	return MaxNumber;
}

const bool Item::GetLife() const
{
	return Life;
}
const bool Item::GetMove() const
{
	return Move;
}


Create a new paste based on this one


Comments: