![]() |
Unuk 1.0
|
00001 #ifndef _ENTITY_H_ 00002 #define _ENTITY_H_ 00003 #include "Geometry.h" 00004 #include "EntityType.h" 00005 #include "Static.h" 00006 00007 class GameWorld; 00008 00009 /* 00010 * Entity is static because we will mainly be handling 00011 * pointers (that can be copied around) but we want 00012 * all entities to be initiaized by the gameworld. 00013 */ 00014 00015 class Entity : private Static { 00016 public: 00017 Entity(GameWorld* const gameWorld); 00018 virtual ~Entity(void); 00019 00020 void Prepare(float dt); 00021 void Render(void) const; 00022 void PostRender(void); 00023 bool Initialize(void); 00024 void Shutdown(void); 00025 bool CanBeRemoved(void) const; 00026 void Destroy(void); 00027 00028 virtual Vector2 GetPosition(void) const = 0; 00029 //virtual Vector2 GetVelocity() const = 0; 00030 virtual void SetPosition(const Vector2& position) = 0; 00031 00032 virtual EntityType GetType(void) const = 0; 00033 00034 private: 00035 virtual void OnPrepare(float dt) = 0; 00036 virtual void OnRender(void) const = 0; 00037 virtual void OnPostRender(void) = 0; 00038 virtual bool OnInitiaize(void) = 0; 00039 virtual void OnShutdown(void) = 0; 00040 00041 bool m_canBeRemoved; 00042 00043 GameWorld* m_world; 00044 }; 00045 00046 #endif