Entity placement and rendering
Let us start with the basics. Most (if not all) entities in any game we build are going to be positioned within the world. Let us ignore the corner cases of special types of entities for now. In order to represent the entity position, we are going to be creating a position component like so:
class C_Position : public C_Base{ public: C_Position(): C_Base(Component::Position), m_elevation(0){} void ReadIn(std::stringstream& l_stream){ l_stream >> m_position.x >> m_position.y >> m_elevation; } sf::Vector2f GetPosition() const { ... } sf::Vector2f GetOldPosition() const { ... } unsigned int GetElevation() const { ... } void SetPosition(float l_x, float l_y){ ... } void SetPosition(const sf::Vector2f& l_vec){ ... } void SetElevation(unsigned int l_elevation){ ... } void MoveBy(float l_x, float l_y){ ... } void MoveBy(const sf::Vector2f& l_vec){ ... } private: sf::Vector2f m_position; ...