#ifndef _CONTROLLER_H #define _CONTROLLER_H #include "Engine.h" #include "ControllerBase.h" namespace asteroids { /** \brief All possible controller states for an Entity * * These are used by the controller to update the current state of an Entity * (e.g. EntityPhysicState). */ enum EntityControllerKeyState { EntityKeyStateForward = 0, EntityKeyStateTurnLeft, EntityKeyStateTurnRight, EntityKeyStateLast }; class Controller : public Engine::ControllerBase { public: Controller () {}; void ResetPlayerEntity (); protected: /** \brief Set up basic keybindings */ virtual int OnInit (int argc, char* argv[]); /** \brief Registers the commands of the cnotroller */ virtual void OnRegisterCommands (); virtual bool OnReceiveEvent (const Engine::EventBasePtr &event); }; } #endif // _CONTROLLER_H