00001 #ifndef NIVEL_H
00002 #define NIVEL_H
00003
00004 #include <Gosu/Gosu.hpp>
00005
00006 #include "Aranya.h"
00007 #include "Enemigo.h"
00008 #include "Obstaculo.h"
00009 #include "Mosquito.h"
00010 #include <vector>
00011 #include <iostream>
00012
00013 using namespace std;
00014
00015 class Aranya;
00016 class Enemigo;
00017 class Obstaculo;
00018
00019 class Nivel
00020 {
00021 public:
00022 Nivel (Gosu::Graphics& graphics, int nivel);
00023 ~Nivel ();
00024 int width() const;
00025 int height() const;
00026 int nivel () const;
00027 Gosu::Image* fondo() const;
00030 vector<Obstaculo*>::iterator HayObstaculoDer(Aranya *minyimi);
00033 vector<Obstaculo*>::iterator HayObstaculoIzq(Aranya *minyimi);
00036 vector<Obstaculo*>::iterator HayObstaculoArriba(Aranya *minyimi);
00039 vector<Obstaculo*>::iterator HayObstaculoAbajo(Aranya *minyimi);
00040
00043 bool HayEnemigoDer();
00046 bool HayEnemigoIzq();
00049 bool HayEnemigoArriba();
00052 bool HayEnemigoAbajo();
00053 bool MuereMinyimiMuere(Aranya *minyimi);
00054 vector<Obstaculo*>& Obstaculos();
00055 vector<Enemigo*>& Enemigos();
00056 vector<Mosquito*>& Mosquitos();
00057 void draw (int x, int y = 0, int z = 0);
00058 void mover_enemigos(int desplazamiento);
00059 void mover_mosquitos(int desplazamiento);
00060 bool Comida(Aranya *minyimi);
00061 bool fin();
00062 bool finalactivo();
00063 private:
00064 int nivel_,width_,height_;
00065 Gosu::Image *fondo_;
00066 Gosu::Song *music_;
00067 Gosu::Sample *fin_;
00068 vector<Enemigo*> Enemigos_;
00069 vector<Obstaculo*> Obstaculos_;
00070 vector<Mosquito*> Mosquitos_;
00071 bool finalactivo_;
00072 };
00073
00074
00075 class Menu
00076 {
00077 public:
00078 Menu (Gosu::Graphics& graphics);
00079 ~Menu();
00080 Gosu::Image* fondo() const;
00081 Gosu::Image* jugar() const;
00082 Gosu::Image* salir() const;
00083 void draw(double x, double y);
00084 void pararMusica();
00085 void niveles(double x, double y);
00086 int escogernivel(int ratonx, int ratony);
00087 private:
00088 Gosu::Image *fondo_,*bjugar1_,*bjugar2_,*bsalir1_,*bsalir2_,*nivel11_,*nivel12_,*nivel21_,*nivel22_,*atras1_,*atras2_,*bcreditos1_,*bcreditos2_;
00089 Gosu::Song *music_;
00090 };
00091
00092 #endif
00093