Implemented move function for entities

Does not consider speed (TODO ?)
This commit is contained in:
Teo-CD 2019-06-07 22:38:55 +02:00
parent 3666b9e7e9
commit dafc442512
2 changed files with 27 additions and 11 deletions

View file

@ -33,16 +33,32 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture)
entityNode.attribute("w").as_int(1), entityNode.attribute("w").as_int(1),
entityNode.attribute("h").as_int(1)) {} entityNode.attribute("h").as_int(1)) {}
void Entity::move() void Entity::move(Orientation orientation)
{ {
// FIXME : Testing purposes shape.setRotation(static_cast<float>(orientation));
shape.setRotation(shape.getRotation()+90);
sf::Vector2f movementVector(0,0);
switch (orientation)
{
case Orientation::Nort:
movementVector.y = -pro_maat::pixelsPerUnit;
break;
case Orientation::East:
movementVector.x = pro_maat::pixelsPerUnit;
break;
case Orientation::South:
movementVector.y = pro_maat::pixelsPerUnit;
break;
case Orientation::West:
movementVector.x = -pro_maat::pixelsPerUnit;
break;
}
shape.setPosition(shape.getPosition()+movementVector);
} }
void Entity::update() void Entity::update()
{ {}
}
const sf::RectangleShape& Entity::getShape() const const sf::RectangleShape& Entity::getShape() const
{ {

View file

@ -29,10 +29,10 @@ enum class State
enum class Orientation enum class Orientation
{ {
Nort, Nort = 0,
East, East = 90,
South, South = 180,
West, West = 270,
}; };
@ -43,7 +43,7 @@ public:
Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1);
explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture);
void move(); void move(Orientation orientation);
void update(); void update();
const sf::RectangleShape& getShape() const; const sf::RectangleShape& getShape() const;