diff --git a/EnemigoAzul.cpp b/EnemigoAzul.cpp index 16c7ae3..738de9e 100644 --- a/EnemigoAzul.cpp +++ b/EnemigoAzul.cpp @@ -1,20 +1,16 @@ #include "EnemigoAzul.h" -EnemigoAzul::EnemigoAzul(SDL_Renderer* renderer) +EnemigoAzul::EnemigoAzul(SDL_Renderer* renderer, list *personajes) { texturas.push_back(IMG_LoadTexture(renderer,"EnemigoAzul/standing/1.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoAzul/standing/2.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoAzul/standing/3.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoAzul/standing/4.png")); - SDL_QueryTexture(texturas[0], NULL, NULL, &rect.w, &rect.h); rect.x = 100; rect.y = 250; - frame = 0; - animacion = 0; - hitbox_azul = IMG_LoadTexture(renderer,"hitbox/azul.png"); - hitbox_roja = IMG_LoadTexture(renderer,"hitbox/roja.png"); + init(renderer,personajes); } EnemigoAzul::~EnemigoAzul() diff --git a/EnemigoAzul.h b/EnemigoAzul.h index 0551f90..5688cd0 100644 --- a/EnemigoAzul.h +++ b/EnemigoAzul.h @@ -6,7 +6,7 @@ class EnemigoAzul : public Enemigo { public: - EnemigoAzul(SDL_Renderer* renderer); + EnemigoAzul(SDL_Renderer* renderer,list *personajes); virtual ~EnemigoAzul(); void act(); diff --git a/EnemigoRojo.cpp b/EnemigoRojo.cpp index 1582057..942a0e5 100644 --- a/EnemigoRojo.cpp +++ b/EnemigoRojo.cpp @@ -1,21 +1,16 @@ #include "EnemigoRojo.h" -EnemigoRojo::EnemigoRojo(SDL_Renderer* renderer) +EnemigoRojo::EnemigoRojo(SDL_Renderer* renderer, list *personajes) { texturas.push_back(IMG_LoadTexture(renderer,"EnemigoRojo/standing/1.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoRojo/standing/2.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoRojo/standing/3.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoRojo/standing/4.png")); - - SDL_QueryTexture(texturas[0], NULL, NULL, &rect.w, &rect.h); + rect.x = 750; rect.y = 250; - frame = 0; - animacion = 0; - - hitbox_azul = IMG_LoadTexture(renderer,"hitbox/azul.png"); - hitbox_roja = IMG_LoadTexture(renderer,"hitbox/roja.png"); + init(renderer, personajes); } EnemigoRojo::~EnemigoRojo() diff --git a/EnemigoRojo.h b/EnemigoRojo.h index d0a2198..9546c1f 100644 --- a/EnemigoRojo.h +++ b/EnemigoRojo.h @@ -6,7 +6,7 @@ class EnemigoRojo : public Enemigo { public: - EnemigoRojo(SDL_Renderer* renderer); + EnemigoRojo(SDL_Renderer* renderer,list *personajes); virtual ~EnemigoRojo(); void act(); diff --git a/EnemigoVerde.cpp b/EnemigoVerde.cpp index c90b2da..238607d 100644 --- a/EnemigoVerde.cpp +++ b/EnemigoVerde.cpp @@ -1,21 +1,16 @@ #include "EnemigoVerde.h" -EnemigoVerde::EnemigoVerde(SDL_Renderer* renderer) +EnemigoVerde::EnemigoVerde(SDL_Renderer* renderer, list *personajes) { texturas.push_back(IMG_LoadTexture(renderer,"EnemigoVerde/standing/1.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoVerde/standing/2.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoVerde/standing/3.png")); texturas.push_back(IMG_LoadTexture(renderer,"EnemigoVerde/standing/4.png")); - - SDL_QueryTexture(texturas[0], NULL, NULL, &rect.w, &rect.h); + rect.x = 500; rect.y = 250; - frame = 0; - animacion = 0; - - hitbox_azul = IMG_LoadTexture(renderer,"hitbox/azul.png"); - hitbox_roja = IMG_LoadTexture(renderer,"hitbox/roja.png"); + init(renderer, personajes); } EnemigoVerde::~EnemigoVerde() diff --git a/EnemigoVerde.h b/EnemigoVerde.h index 374597e..dd29c3b 100644 --- a/EnemigoVerde.h +++ b/EnemigoVerde.h @@ -6,7 +6,7 @@ class EnemigoVerde : public Enemigo { public: - EnemigoVerde(SDL_Renderer* renderer); + EnemigoVerde(SDL_Renderer* renderer,list *personajes); virtual ~EnemigoVerde(); void act(); protected: diff --git a/Personaje.cpp b/Personaje.cpp index 9241ce1..063bf8a 100644 --- a/Personaje.cpp +++ b/Personaje.cpp @@ -31,3 +31,16 @@ void Personaje::draw(SDL_Renderer* renderer) // hitbox.h++; // hitbox.w++; } + +void Personaje::init(SDL_Renderer* renderer, list *personajes) +{ + SDL_QueryTexture(texturas[0], NULL, NULL, &rect.w, &rect.h); + + frame = 0; + animacion = 0; + hitbox_azul = IMG_LoadTexture(renderer,"hitbox/azul.png"); + hitbox_roja = IMG_LoadTexture(renderer,"hitbox/roja.png"); + + this->personajes = personajes; +} + diff --git a/Personaje.h b/Personaje.h index 323038f..2a1e13f 100644 --- a/Personaje.h +++ b/Personaje.h @@ -4,12 +4,13 @@ #include #include #include +#include using namespace std; class Personaje { public: - + list *personajes; vectortexturas; SDL_Texture* hitbox_azul; SDL_Texture* hitbox_roja; @@ -20,6 +21,7 @@ class Personaje virtual void draw(SDL_Renderer* renderer); virtual void act()=0; + void init(SDL_Renderer* renderer, list *personajes); Personaje(); virtual ~Personaje(); diff --git a/SDL2Testground.depend b/SDL2Testground.depend index 04498fe..89588fb 100644 --- a/SDL2Testground.depend +++ b/SDL2Testground.depend @@ -557,7 +557,7 @@ -1423251830 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/main.cpp +1423853803 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/main.cpp @@ -568,10 +568,10 @@ "EnemigoVerde.h" "EnemigoRojo.h" -1423852718 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Sho.h +1423853838 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Sho.h "Personaje.h" -1423852740 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Sho.cpp +1423853493 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Sho.cpp "Sho.h" 1423852506 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Enemigo.cpp @@ -580,29 +580,30 @@ 1423852523 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Enemigo.h "Personaje.h" -1423248725 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoAzul.h +1423853744 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoAzul.h "Enemigo.h" -1423852188 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoAzul.cpp +1423853722 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoAzul.cpp "EnemigoAzul.h" -1423852191 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoRojo.cpp +1423853753 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoRojo.cpp "EnemigoRojo.h" -1423250451 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoRojo.h +1423853740 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoRojo.h "Enemigo.h" -1423852196 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoVerde.cpp +1423853761 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoVerde.cpp "EnemigoVerde.h" -1423250236 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoVerde.h +1423853736 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/EnemigoVerde.h "Enemigo.h" -1423852529 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Personaje.h +1423853705 /home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Personaje.h + -1423852516 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Personaje.cpp +1423853690 source:/home/turupawn/Projects/Clases/Progra3/SDL2TestSimple-master/Personaje.cpp "Personaje.h" diff --git a/Sho.cpp b/Sho.cpp index 1495ee3..a29bbc8 100644 --- a/Sho.cpp +++ b/Sho.cpp @@ -1,23 +1,24 @@ #include "Sho.h" -Sho::Sho(SDL_Renderer* renderer) +Sho::Sho(SDL_Renderer* renderer,list *personajes) { texturas.push_back(IMG_LoadTexture(renderer,"Sho/standing/1.png")); texturas.push_back(IMG_LoadTexture(renderer,"Sho/standing/2.png")); texturas.push_back(IMG_LoadTexture(renderer,"Sho/standing/3.png")); texturas.push_back(IMG_LoadTexture(renderer,"Sho/standing/4.png")); - - SDL_QueryTexture(texturas[0], NULL, NULL, &rect.w, &rect.h); + rect.x = 100; rect.y = 250; - frame = 0; - animacion = 0; + init(renderer,personajes); } void Sho::act() { const Uint8* currentKeyStates = SDL_GetKeyboardState(NULL); + + atacando = currentKeyStates[SDL_SCANCODE_SPACE]; + if(currentKeyStates[SDL_SCANCODE_W]) { rect.y--; @@ -37,6 +38,11 @@ void Sho::act() { rect.x++; } + + if(atacando) + { + //detecto colosion con los demas personajes + } } Sho::~Sho() diff --git a/Sho.h b/Sho.h index 21de4db..d7a47d6 100644 --- a/Sho.h +++ b/Sho.h @@ -6,7 +6,7 @@ class Sho : public Personaje { public: - Sho(SDL_Renderer* renderer); + Sho(SDL_Renderer* renderer,list *personajes); void act(); virtual ~Sho(); protected: diff --git a/bin/Debug/SDL2Testground b/bin/Debug/SDL2Testground index 0f40383..7606d88 100755 Binary files a/bin/Debug/SDL2Testground and b/bin/Debug/SDL2Testground differ diff --git a/main.cpp b/main.cpp index b9382c6..f9961a4 100644 --- a/main.cpp +++ b/main.cpp @@ -49,10 +49,10 @@ int main( int argc, char* args[] ) list personajes; - personajes.push_back(new Sho(renderer)); - personajes.push_back(new EnemigoAzul(renderer)); - personajes.push_back(new EnemigoVerde(renderer)); - personajes.push_back(new EnemigoRojo(renderer)); + personajes.push_back(new Sho(renderer,&personajes)); + personajes.push_back(new EnemigoAzul(renderer,&personajes)); + personajes.push_back(new EnemigoVerde(renderer,&personajes)); + personajes.push_back(new EnemigoRojo(renderer,&personajes)); //Main Loop int frame=0; @@ -70,7 +70,7 @@ int main( int argc, char* args[] ) if(frame%200==0) { - personajes.push_back(new EnemigoAzul(renderer)); + personajes.push_back(new EnemigoAzul(renderer,&personajes)); } for(list::iterator p=personajes.begin(); diff --git a/obj/Debug/Enemigo.o b/obj/Debug/Enemigo.o index a5fef57..2e8d7ba 100644 Binary files a/obj/Debug/Enemigo.o and b/obj/Debug/Enemigo.o differ diff --git a/obj/Debug/EnemigoAzul.o b/obj/Debug/EnemigoAzul.o index ee71130..32c821b 100644 Binary files a/obj/Debug/EnemigoAzul.o and b/obj/Debug/EnemigoAzul.o differ diff --git a/obj/Debug/EnemigoRojo.o b/obj/Debug/EnemigoRojo.o index 915ddf9..40a9e4b 100644 Binary files a/obj/Debug/EnemigoRojo.o and b/obj/Debug/EnemigoRojo.o differ diff --git a/obj/Debug/EnemigoVerde.o b/obj/Debug/EnemigoVerde.o index abae3f5..920f253 100644 Binary files a/obj/Debug/EnemigoVerde.o and b/obj/Debug/EnemigoVerde.o differ diff --git a/obj/Debug/Personaje.o b/obj/Debug/Personaje.o index a09b7e7..c08173e 100644 Binary files a/obj/Debug/Personaje.o and b/obj/Debug/Personaje.o differ diff --git a/obj/Debug/Sho.o b/obj/Debug/Sho.o index 33156d6..5b93d29 100644 Binary files a/obj/Debug/Sho.o and b/obj/Debug/Sho.o differ diff --git a/obj/Debug/main.o b/obj/Debug/main.o index 2923d81..2decb2e 100644 Binary files a/obj/Debug/main.o and b/obj/Debug/main.o differ