00001 #ifndef BEHAVIOUR_H_INCLUDED 00002 #define BEHAVIOUR_H_INCLUDED 00003 00004 #include "Component.h" 00005 00006 #include <SDL.h> 00007 00008 struct CollisionHit; 00009 class Transform; 00010 class GameObject; 00011 00012 00017 class Behaviour: public Component{ 00018 public : 00019 static const RTTI TYPE; 00020 virtual const RTTI& getType() const{ return TYPE; } 00021 00022 protected: 00023 GameObject * gameObject; 00024 00025 public: 00026 Behaviour(); 00027 virtual ~Behaviour(); 00028 00032 const GameObject& getGameObject(); 00036 void setGameObject(GameObject* object); 00037 00042 virtual void onMouseMotion(const SDL_MouseMotionEvent & event); 00047 virtual void onMouseButton(const SDL_Event & event); 00052 virtual void onJoystickButton(const SDL_Event & event); 00057 virtual void onKeyboard(const SDL_KeyboardEvent & event); 00062 virtual void update(); 00066 virtual void onCollisionEnter(const CollisionHit& hit); 00067 }; 00068 00069 #endif