Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
José Pardo Madera
/
ProjectoMultimeda2025
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
68e0d33b
authored
Apr 14, 2025
by
Jaime de la Chica Bergillos
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Pantalla cama esiten
parent
c006ac39
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
156 additions
and
16 deletions
ColeccionPantallas.cpp
ColeccionPantallas.h
Executable
Historia.cpp
Historia.h
PantallaCama.cpp
PantallaCama.h
makefile
ColeccionPantallas.cpp
View file @
68e0d33b
...
...
@@ -9,13 +9,15 @@ PantallaPrincipal pant;
PantallaPrincipal2
pant2
;
PantallaInicio
pant3
;
PantallaFecha
pant4
;
PantallaCama
pant5
;
vector
<
shared_ptr
<
Pantalla
>>
colPantallas
=
{
make_shared
<
PantallaPrincipal
>
(
pant
),
make_shared
<
PantallaPrincipal2
>
(
pant2
),
make_shared
<
PantallaInicio
>
(
pant3
),
make_shared
<
PantallaFecha
>
(
pant4
)
make_shared
<
PantallaFecha
>
(
pant4
),
make_shared
<
PantallaCama
>
(
pant5
)
};
shared_ptr
<
PantallaPrincipal
>
getPantalla1
(){
...
...
@@ -27,3 +29,6 @@ shared_ptr<PantallaPrincipal2> getPantalla2(){
shared_ptr
<
PantallaFecha
>
getPantallaFecha
(){
return
std
::
dynamic_pointer_cast
<
PantallaFecha
>
(
colPantallas
[
3
]);
}
shared_ptr
<
PantallaCama
>
getPantallaCama
(){
return
std
::
dynamic_pointer_cast
<
PantallaCama
>
(
colPantallas
[
4
]);
}
ColeccionPantallas.h
View file @
68e0d33b
...
...
@@ -6,6 +6,7 @@
#include "PantallaPrincipal.h"
#include "PantallaPrincipal2.h"
#include "PantallaFecha.h"
#include "PantallaCama.h"
using
namespace
std
;
...
...
@@ -15,3 +16,4 @@ extern vector<shared_ptr<Pantalla>> colPantallas;
shared_ptr
<
PantallaPrincipal
>
getPantalla1
();
shared_ptr
<
PantallaPrincipal2
>
getPantalla2
();
shared_ptr
<
PantallaFecha
>
getPantallaFecha
();
shared_ptr
<
PantallaCama
>
getPantallaCama
();
Executable
View file @
68e0d33b
No preview for this file type
Historia.cpp
View file @
68e0d33b
...
...
@@ -169,23 +169,32 @@ static void iniciarPuzlePantallaResuelto(){
Objeto
destornillador
(
sprDestornillador
,
sprDestornillador
,
sprDestornillador
,
hitDestornillador
,
1200
,
700
,
50
,
70
,
normal
,
nullptr
);
getPantalla1
()
->
anadirObjeto
(
destornillador
);
Sprite
sprCaja
(
"assets/caja.png"
);
Hitbox
hitCaja
(
800
,
760
,
800
,
600
);
auto
funcionCaja
=
[](
Objeto
*
Cajon
,
Handle
&
handle
)
->
bool
{
play_video
(
"assets/NoPuedoAbrirCaja"
,
"es"
);
historiaPrincipal
.
pasarDeEstadoA
(
Historia
::
Secuencia
::
PuzlePantallaResuelto
,
Historia
::
Secuencia
::
CajaVista
);
return
false
;
};
Objeto
caja
(
sprCaja
,
sprCaja
,
sprCaja
,
hitCaja
,
1250
,
700
,
220
,
180
,
normal
,
funcionCaja
);
Objeto
Puerta
=
generarObjetoPuerta
();
getPantalla1
()
->
anadirObjeto
(
caja
);
getPantalla2
()
->
anadirObjeto
(
Puerta
);
}
static
void
iniciarCajaVista
(){
Sprite
sprDestornillador
(
"assets/destornillador.png"
);
Hitbox
hitDestornillador
(
0
,
0
,
0
,
0
);
Objeto
destornillador
(
sprDestornillador
,
sprDestornillador
,
sprDestornillador
,
hitDestornillador
,
1200
,
700
,
50
,
70
,
normal
,
nullptr
);
getPantalla1
()
->
anadirObjeto
(
destornillador
);
Sprite
sprCajon
(
"assets/cajon.png"
);
Hitbox
hitCajon
(
750
,
600
,
600
,
-
1000000000
);
auto
funcionCajon
=
[](
Objeto
*
Cajon
,
Handle
&
handle
)
->
bool
{
play_video
(
"assets/AbreCaja"
,
"es"
);
// Comprobamos si el jugador ha seguido el camino normal de usar la cartera para el puzle anterior
if
(
getPantallaFecha
()
->
tieneCarne
())
{
// En ese caso continuamos normalmente
historiaPrincipal
.
pasarDeEstadoA
(
Historia
::
Secuencia
::
PuzlePantallaResuelto
,
Historia
::
Secuencia
::
CajaAbierta
);
}
else
{
// Si ha descubierto la fecha sin usar la cartera, continua teniendola y no la ha perdido
// El estado "CarteraRecuperada" añade la cartera al inventario
// Asi que para evitar dos carteras, lo borramos
Agapito
.
numObjetos
=
0
;
historiaPrincipal
.
pasarDeEstadoA
(
Historia
::
Secuencia
::
PuzlePantallaResuelto
,
Historia
::
Secuencia
::
CarteraRecuperada
);
}
historiaPrincipal
.
pasarDeEstadoA
(
Historia
::
Secuencia
::
CajaVista
,
Historia
::
Secuencia
::
CajaAbierta
);
return
false
;
};
Objeto
cajon
(
sprCajon
,
sprCajon
,
sprCajon
,
hitCajon
,
760
,
500
,
220
,
180
,
normal
,
funcionCajon
);
...
...
@@ -203,6 +212,7 @@ static void iniciarPuzlePantallaResuelto(){
getPantalla2
()
->
anadirObjeto
(
Puerta
);
}
static
void
iniciarCajaAbierta
(){
Objeto
Puerta
=
generarObjetoPuerta
();
getPantalla2
()
->
anadirObjeto
(
Puerta
);
...
...
@@ -215,6 +225,17 @@ static void iniciarCajaAbierta(){
};
Objeto
llave
(
sprLlave
,
sprLlave
,
sprLlave
,
hitLlave
,
100
,
150
,
50
,
50
,
normal
,
funcionLlave
);
getPantalla1
()
->
anadirObjeto
(
llave
);
Sprite
sprCama
(
"assets/rutaInventada.png"
);
Hitbox
hitCama
(
800
,
760
,
10000000
,
-
10000000
);
auto
funcionCama
=
[](
Objeto
*
Cama
,
Handle
&
handle
)
->
bool
{
handle
.
addPantalla
(
getPantallaCama
());
return
false
;
};
Objeto
cama
(
sprCama
,
sprCama
,
sprCama
,
hitCama
,
100
,
150
,
50
,
50
,
normal
,
funcionCama
);
getPantalla1
()
->
anadirObjeto
(
llave
);
getPantalla1
()
->
anadirObjeto
(
cama
);
}
static
void
iniciarCarteraRecuperada
(){
...
...
@@ -262,6 +283,10 @@ void Historia::siguienteEstado(Secuencia estado){
iniciarPuzlePantallaResuelto
();
break
;
case
CajaVista
:
iniciarCajaVista
();
break
;
case
CajaAbierta
:
iniciarCajaAbierta
();
break
;
...
...
Historia.h
View file @
68e0d33b
...
...
@@ -9,6 +9,7 @@ class Historia{
CalendarioVisto
,
CalendarioQuitado
,
PuzlePantallaResuelto
,
CajaVista
,
CajonAbierto
,
CajaAbierta
,
CarteraRecuperada
,
...
...
@@ -17,7 +18,7 @@ class Historia{
};
private
:
Secuencia
estadoActual
=
PreInicio
;
Secuencia
estadoActual
=
CajaAbierta
;
void
limpiarEstado
();
void
siguienteEstado
(
Secuencia
estado
);
...
...
PantallaCama.cpp
0 → 100644
View file @
68e0d33b
#include "PantallaCama.h"
#include "ColeccionPantallas.h"
#include "Historia.h"
#include <iostream>
PantallaCama
::
PantallaCama
()
:
fuente1
(
"assets/OpenSans-Italic.ttf"
,
100
),
Fondo1
(
"assets/puzleMover.jpeg"
),
atras
(
Sprite
(
"assets/volver.png"
),
Sprite
(
"assets/volver.png"
),
Sprite
(
"assets/volver.png"
),
Hitbox
(
1800
,
1600
,
300
,
200
),
1600
,
200
,
100
,
100
,
normal
,
nullptr
),
obstaculos
{
Sprite
(
"assets/nuez.png"
),
Sprite
(
"assets/marcianito.png"
),
Sprite
(
"assets/pez.png"
),
Sprite
(
"assets/bomba.png"
),
Sprite
(
"assets/cabezaRata.png"
),
Sprite
(
"assets/senorCongelado.png"
),
},
hitObs
{
Hitbox
(
500
,
300
,
300
,
200
)
},
cancion
(
"assets/LonesomeJourneyByKeysOfMoonMusic.wav"
,
true
),
sonidoBoton
(
"assets/SonidoClicar.wav"
,
false
)
{
}
void
PantallaCama
::
manejarEntrada
(
Handle
&
handle
)
{
SDL_Event
event
;
while
(
SDL_PollEvent
(
&
event
))
{
switch
(
event
.
type
)
{
case
SDL_KEYDOWN
:
switch
(
event
.
key
.
keysym
.
sym
)
{
case
13
:
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
());
int
contadorCorrectos
=
0
;
if
(
atras
.
colisionaObjeto
(
xRaton
,
zRaton
)){
sonidoBoton
.
play
();
cancion
.
pausar
();
handle
.
removeme
();
}
}
break
;
case
SDL_QUIT
:
handle
.
removeAll
();
}
}
}
void
PantallaCama
::
renderizar
(
SDL_Renderer
*
renderer
,
int
tamx
,
int
tamy
)
{
if
(
!
cancion
.
getTocada
()
&&
sonidoBoton
.
acabado
()){
cancion
.
play
();
}
Fondo1
.
renderizar
(
renderer
,
0
,
0
,
1920
,
1080
,
tamx
,
tamy
);
atras
.
renderizar
(
renderer
,
tamx
,
tamy
);
}
PantallaCama.h
0 → 100644
View file @
68e0d33b
#pragma once
#include "GestorPantallas.h"
#include <vector>
#include "Objeto.h"
#include "Sprite.h"
#include "Texto.h"
#include "Fuente.h"
#include "Sonido.h"
class
PantallaCama
:
public
Pantalla
{
vector
<
Sprite
>
obstaculos
;
vector
<
Hitbox
>
hitObs
;
vector
<
Hitbox
>
colisionesParedes
;
Objeto
atras
;
Fuente
fuente1
;
Sprite
Fondo1
;
Sonido
cancion
;
Sonido
sonidoBoton
;
public
:
PantallaCama
();
void
manejarEntrada
(
Handle
&
)
override
;
void
renderizar
(
SDL_Renderer
*
,
int
tamx
,
int
tamy
)
override
;
bool
transparente
()
override
{
return
false
;
};
};
makefile
View file @
68e0d33b
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 PantallaInicio.cpp PantallaMundo.cpp Sonido.cpp Historia.cpp PantallaFecha.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 PantallaMundo.cpp Sonido.cpp Historia.cpp PantallaFecha.cpp
PantallaCama.cpp
bin
=
Executable
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment