Titulo aniadido y cambio de sprites

parent 4bc4adef
#include "ColeccionPantallas.h" #include "ColeccionPantallas.h"
#include "PantallaPrincipal.h" #include "PantallaPrincipal.h"
#include "PantallaPrincipal2.h" #include "PantallaPrincipal2.h"
#include "PantallaInicio.h"
PantallaPrincipal pant; PantallaPrincipal pant;
PantallaPrincipal2 pant2; PantallaPrincipal2 pant2;
vector<shared_ptr<Pantalla>> colPantallas={make_shared<PantallaPrincipal>(pant),make_shared<PantallaPrincipal2>(pant2)}; PantallaInicio pant3;
vector<shared_ptr<Pantalla>> colPantallas={make_shared<PantallaPrincipal>(pant),make_shared<PantallaPrincipal2>(pant2),
make_shared<PantallaInicio>(pant3)};
No preview for this file type
#include "ColeccionPantallas.h"
#include "PantallaInicio.h"
#include "Video.h"
#include "SDL2/SDL_mixer.h"
PantallaInicio::PantallaInicio() :
fuente1("assets/OpenSans-Italic.ttf", 100),
Fondo1("assets/PantallaInicio.jpg"),
colisionCambioPantalla(1500,-1500,2000,1300)
{
Sprite sprIniciarPartida("assets/iniciarPartida.png");
Hitbox hitIniciarPartida(1247,649,699,501);
Objeto IniciarPartida(sprIniciarPartida,sprIniciarPartida,sprIniciarPartida,hitIniciarPartida,650,500,600,200,normal);
objetos.push_back(IniciarPartida);
colisionesInterfaz.push_back(hitIniciarPartida);
}
void PantallaInicio::manejarEntrada(Handle &handle) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case 13:
play_video("assets/Encerrado.mp4", "es");
handle.reemplazamePor(colPantallas[0]);
break;
}
break;
case SDL_MOUSEBUTTONDOWN:
{
int xRaton=0;
int zRaton=0;
SDL_GetMouseState(&xRaton, &zRaton);
xRaton*=(1920.0/handle.getTamX());
zRaton*=(1080.0/handle.getTamY());
cout<<"Raton x "<<xRaton<<" Raton z "<<zRaton<<endl;
if(colisionesInterfaz[0].colisiona(xRaton, zRaton) ){
play_video("assets/Encerrado.mp4", "es");
handle.reemplazamePor(colPantallas[0]);
}
}
break;
case SDL_QUIT:
handle.removeAll();
}
}
}
void PantallaInicio::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
Fondo1.renderizar(renderer, 0, 0,1920,1080, tamx, tamy);
for(int i=0;i<objetos.size();i++){
objetos[i].renderizar(renderer, tamx, tamy);
}
}
\ No newline at end of file
#pragma once
#include "GestorPantallas.h"
#include <vector>
#include "Objeto.h"
#include "Sprite.h"
#include "Texto.h"
#include "Fuente.h"
class PantallaInicio : public Pantalla {
vector<Objeto> objetos;
vector<Hitbox> colisionesActivas;
vector<Hitbox> colisionesPasivas;
vector<Hitbox> colisionesInterfaz;
Hitbox colisionCambioPantalla;
Fuente fuente1;
Sprite Fondo1;
public:
PantallaInicio();
void manejarEntrada(Handle &) override;
void renderizar(SDL_Renderer *, int tamx, int tamy) override;
bool transparente() override {
return false;
};
};
\ No newline at end of file
...@@ -41,13 +41,13 @@ PantallaPrincipal::PantallaPrincipal() : ...@@ -41,13 +41,13 @@ PantallaPrincipal::PantallaPrincipal() :
colisionesInterfaz.push_back(hitOjo); colisionesInterfaz.push_back(hitOjo);
/*
colisionesActivas.push_back(hitFondo); colisionesActivas.push_back(hitFondo);
colisionesActivas.push_back(hitCama); colisionesActivas.push_back(hitCama);
colisionesActivas.push_back(hitDer); colisionesActivas.push_back(hitDer);
colisionesActivas.push_back(hitIzq); colisionesActivas.push_back(hitIzq);
*/
} }
......
#include "Personaje.h" #include "Personaje.h"
#include <string.h> #include <string.h>
array<array<Sprite, 2>, 4> sprites_constantes = { array<array<Sprite, 4>, 4> sprites_constantes = {
Sprite("assets/agapito_idle_delante.png"), Sprite("assets/agapito_mov_delante.png"), Sprite("assets/AgapitoFront1.png"), Sprite("assets/AgapitoFront2.png"), Sprite("assets/AgapitoFront1.png"), Sprite("assets/AgapitoFront3.png"),
Sprite("assets/agapito_idle_der.png"), Sprite("assets/agapito_mov_der.png"), Sprite("assets/AgapitoRight1.png"), Sprite("assets/AgapitoRight2.png"), Sprite("assets/AgapitoRight1.png"), Sprite("assets/AgapitoRight3.png"),
Sprite("assets/agapito_idle_izq.png"), Sprite("assets/agapito_mov_izq.png"), Sprite("assets/AgapitoLeft1.png"), Sprite("assets/AgapitoLeft2.png"), Sprite("assets/AgapitoLeft1.png"), Sprite("assets/AgapitoLeft3.png"),
Sprite("assets/agapito_idle_detras.png"), Sprite("assets/agapito_mov_detras.png") Sprite("assets/AgapitoBack1.png"), Sprite("assets/AgapitoBack2.png"), Sprite("assets/AgapitoBack1.png"), Sprite("assets/AgapitoBack3.png"),
}; };
Personaje::Personaje() : movimientos(sprites_constantes) { Personaje::Personaje() : movimientos(sprites_constantes) {
...@@ -24,7 +24,7 @@ void Personaje::move(Facing direction) { ...@@ -24,7 +24,7 @@ void Personaje::move(Facing direction) {
} }
this->estado = direction; this->estado = direction;
cout<<" move antes Se mueve a " << x << " "<<profundidades<<endl;
switch (estado) { switch (estado) {
case Frente: case Frente:
profundidades += 5; profundidades += 5;
...@@ -39,6 +39,8 @@ void Personaje::move(Facing direction) { ...@@ -39,6 +39,8 @@ void Personaje::move(Facing direction) {
profundidades -= 5; profundidades -= 5;
break; break;
} }
cout<<" move despues Se mueve a " << x << " "<<profundidades<<endl;
} }
void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
...@@ -48,11 +50,11 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) { ...@@ -48,11 +50,11 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
auto milis = std::chrono::duration_cast<std::chrono::milliseconds>(tiempo_desde_ultimo_movimiento); auto milis = std::chrono::duration_cast<std::chrono::milliseconds>(tiempo_desde_ultimo_movimiento);
if (milis.count() > 1000) { if (milis.count() > 200) {
indice_movimiento = 0; indice_movimiento = 0;
} }
cout<<" Renderizar Se mueve a " << x << " "<<profundidades<<endl;
movimientos[estado][indice_movimiento].renderizar(renderer, x, 100, profundidades, profundidades, tamx, tamy, true); movimientos[estado][indice_movimiento].renderizar(renderer, x, 200, profundidades*0.5, profundidades, tamx, tamy, true);
} }
......
...@@ -22,7 +22,7 @@ typedef std::chrono::time_point<std::chrono::system_clock> Instant; ...@@ -22,7 +22,7 @@ typedef std::chrono::time_point<std::chrono::system_clock> Instant;
class Personaje { class Personaje {
array<array<Sprite, 2>, 4> movimientos; array<array<Sprite, 4>, 4> movimientos;
Instant momento_ultimo_movimiento = std::chrono::system_clock::now(); Instant momento_ultimo_movimiento = std::chrono::system_clock::now();
...@@ -30,8 +30,8 @@ class Personaje { ...@@ -30,8 +30,8 @@ class Personaje {
int indice_movimiento = 0; int indice_movimiento = 0;
int x = -100; int x = 400;
int profundidades = 600; int profundidades = 500;
public: public:
......
#include "GestorPantallas.h" #include "GestorPantallas.h"
#include "PantallaPrincipal.h" #include "PantallaInicio.h"
#include "ColeccionPantallas.h"
#include <memory> #include <memory>
int main(){ int main(){
GestorPantallas gestor( GestorPantallas gestor(
std::shared_ptr<Pantalla>((Pantalla *)new PantallaPrincipal()) colPantallas[2]
); );
gestor.mainLoop(); gestor.mainLoop();
return 0; return 0;
......
CC = g++ CC = g++
CodeFiles = main.cpp Personaje.cpp Sprite.cpp Objeto.cpp Hitbox.cpp Texto.cpp GestorPantallas.cpp PantallaPrincipal.cpp PantallaPrincipal2.cpp ColeccionPantallas.cpp Video.cpp CodeFiles = main.cpp Personaje.cpp Sprite.cpp Objeto.cpp Hitbox.cpp Texto.cpp GestorPantallas.cpp PantallaPrincipal.cpp PantallaPrincipal2.cpp ColeccionPantallas.cpp Video.cpp PantallaInicio.cpp
bin = Executable bin = Executable
objdir = obj objdir = obj
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment