00001 #ifndef ENEMIGO_H 00002 #define ENEMIGO_H 00003 00004 #include <Gosu/Gosu.hpp> 00005 #include "Nivel.h" 00006 #include "Constantes.h" 00007 #include <vector> 00008 00014 00015 using namespace std; 00016 00017 class Nivel; 00018 class Ventana; 00019 00020 class Enemigo { 00021 public: 00024 Enemigo(Gosu::Graphics& graphics, int movX_min, int movX_max, int movY, int width, int height, int velX = 0 ); 00026 virtual ~Enemigo(); 00029 int movX1(); 00032 int movX2(); 00035 int movY(); 00038 int width(); 00041 int height(); 00044 int posicion(); 00046 void posicion(int pos); 00049 int direccion(); 00051 void direccion(int dir); 00054 int palader(); 00057 int palaizq(); 00060 int velX(); 00061 00062 pair<vector<Gosu::Image*>,int> control_der() const; 00063 pair<vector<Gosu::Image*>,int> control_izq() const; 00064 00065 pair<vector<Gosu::Image*>,int>& control_der(); 00066 pair<vector<Gosu::Image*>,int>& control_izq(); 00067 00068 00069 private: 00070 vector<Gosu::Image*> enemy_der_,enemy_izq_; 00071 int movX1_,movX2_,movY_,width_,height_,pos_; 00072 00073 int dir_,der_,izq_; 00074 int velX_; 00075 00076 protected: 00077 pair<vector<Gosu::Image*>,int> control_der_,control_izq_; 00078 }; 00079 00080 00081 00087 00088 class Abeja : virtual public Enemigo 00089 { 00090 public: 00091 Abeja(Gosu::Graphics& graphics, int movX_min, int movX_max, int movY); 00092 }; 00093 00095 00096 class Mosca : virtual public Enemigo 00097 { 00098 public: 00099 Mosca(Gosu::Graphics& graphics, int movX_min, int movX_max, int movY); 00100 }; 00101 00103 00104 class Cucaracha : virtual public Enemigo 00105 { 00106 public: 00107 Cucaracha(Gosu::Graphics& graphics, int movX_min, int movX_max, int movY); 00108 }; 00109 00110 #endif