1 #ifndef HUMANMANAGER_H 2 #define HUMANMANAGER_H 3 4 #include "controllable.h" 5 #include "game.h" 6 #include "arrow.h" 7 #include "activecap.h" 8 #include "teammanager.h" 9 #include "cap.h" 10 #include "control.h" 11 12 13 //Clase que controla a un equipo a traves del raton 14 //Funciona como una maquina de estados que se modifican 15 //segun los clicks del raton del usuario 16 class HumanManager : public Controllable, public TeamManager 17 { 18 public: 19 HumanManager(); 20 ~HumanManager(); 21 22 void init(Game::team_t t); update()23 void update(){} 24 void shutdown(); 25 void stop(); 26 27 typedef enum 28 { 29 CLICK, 30 UNCLICK, 31 MOVE_X, 32 MOVE_Y, 33 EXIT 34 }action_t; 35 36 void doAction(Controllable::action_t action,int magnitude); throws()37 void throws(){s=WAIT;} isOver()38 bool isOver(){return s==END;} 39 40 void oneMore(Cap *c); 41 42 private: 43 //Tenemos una instancia flecha que se encarga de la direccion 44 //y la potencia del disparo 45 Arrow *vel_arrow; 46 Arrow *accel_arrow; 47 ActiveCap *ac; 48 49 enum states_t 50 { 51 WAIT, 52 SELECTED, 53 C_ARROW, 54 END 55 }; 56 57 states_t s; 58 59 bool onemore; 60 Control *controller; 61 }; 62 63 #endif 64