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
e4958635
authored
Apr 24, 2025
by
José Pardo Madera
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Conseguida MAXIMNA encapsulacion de objetos sieguienteo POO
parent
4ba78045
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
35 additions
and
21 deletions
Executable
Historia.cpp
PantallaCama.cpp
PantallaMundo.cpp
Personaje.cpp
Personaje.h
Executable
View file @
e4958635
No preview for this file type
Historia.cpp
View file @
e4958635
...
@@ -97,8 +97,7 @@ static void iniciarInicio() {
...
@@ -97,8 +97,7 @@ static void iniciarInicio() {
getPantalla1
()
->
anadirObjeto
(
Calendario
);
getPantalla1
()
->
anadirObjeto
(
Calendario
);
getPantalla2
()
->
anadirObjeto
(
Puerta
);
getPantalla2
()
->
anadirObjeto
(
Puerta
);
Agapito
.
inventario
[
0
]
=
generarObjetoCartera
(
nullptr
);
Agapito
.
setInventario
(
0
)
=
generarObjetoCartera
(
nullptr
);
Agapito
.
numObjetos
=
1
;
}
}
...
@@ -131,8 +130,7 @@ static void iniciarCalendarioVisto(){
...
@@ -131,8 +130,7 @@ static void iniciarCalendarioVisto(){
getPantalla1
()
->
anadirHook
(
funcionComprobarPantallaMinimizada
);
getPantalla1
()
->
anadirHook
(
funcionComprobarPantallaMinimizada
);
Agapito
.
inventario
[
0
]
=
generarObjetoCartera
(
nullptr
);
Agapito
.
setInventario
(
0
)
=
generarObjetoCartera
(
nullptr
);
Agapito
.
numObjetos
=
1
;
}
}
...
@@ -155,12 +153,11 @@ static void iniciarCalendarioQuitado(){
...
@@ -155,12 +153,11 @@ static void iniciarCalendarioQuitado(){
auto
funcionCartera
=
[](
Objeto
*
Pantalla
,
Handle
&
handle
)
->
bool
{
auto
funcionCartera
=
[](
Objeto
*
Pantalla
,
Handle
&
handle
)
->
bool
{
play_video
(
"assets/AgapitoSacaCarne"
,
"es"
);
play_video
(
"assets/AgapitoSacaCarne"
,
"es"
);
getPantallaFecha
()
->
setTieneCarne
(
true
);
getPantallaFecha
()
->
setTieneCarne
(
true
);
Agapito
.
inventario
[
0
]
=
generarObjetoCarne
();
Agapito
.
setInventario
(
0
)
=
generarObjetoCarne
();
return
false
;
return
false
;
};
};
Agapito
.
inventario
[
0
]
=
generarObjetoCartera
(
funcionCartera
);
Agapito
.
setInventario
(
0
)
=
generarObjetoCartera
(
funcionCartera
);
Agapito
.
numObjetos
=
1
;
}
}
static
void
iniciarPuzlePantallaResuelto
(){
static
void
iniciarPuzlePantallaResuelto
(){
...
@@ -254,14 +251,12 @@ static void iniciarCarteraRecuperada(){
...
@@ -254,14 +251,12 @@ static void iniciarCarteraRecuperada(){
auto
funcionCartera
=
[](
Objeto
*
Pantalla
,
Handle
&
handle
)
->
bool
{
auto
funcionCartera
=
[](
Objeto
*
Pantalla
,
Handle
&
handle
)
->
bool
{
play_video
(
"assets/AgapitoSacaIman"
,
"es"
);
play_video
(
"assets/AgapitoSacaIman"
,
"es"
);
getPantallaFecha
()
->
setTieneCarne
(
true
);
getPantallaFecha
()
->
setTieneCarne
(
true
);
Agapito
.
numObjetos
-=
1
;
Agapito
.
unsetInventario
(
0
);
Agapito
.
inventario
[
Agapito
.
numObjetos
]
=
generarObjetoIman
();
Agapito
.
setInventario
(
0
)
=
generarObjetoIman
();
Agapito
.
numObjetos
+=
1
;
return
false
;
return
false
;
};
};
Agapito
.
inventario
[
Agapito
.
numObjetos
]
=
generarObjetoCartera
(
funcionCartera
);
Agapito
.
setInventario
(
0
)
=
generarObjetoCartera
(
funcionCartera
);
Agapito
.
numObjetos
+=
1
;
}
}
...
...
PantallaCama.cpp
View file @
e4958635
...
@@ -131,8 +131,8 @@ void PantallaCama::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
...
@@ -131,8 +131,8 @@ void PantallaCama::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
obstaculos
[
5
].
renderizar
(
renderer
,
870
,
440
,
170
,
170
,
tamx
,
tamy
);
obstaculos
[
5
].
renderizar
(
renderer
,
870
,
440
,
170
,
170
,
tamx
,
tamy
);
obstaculos
[
6
].
renderizar
(
renderer
,
1090
,
440
,
170
,
170
,
tamx
,
tamy
);
obstaculos
[
6
].
renderizar
(
renderer
,
1090
,
440
,
170
,
170
,
tamx
,
tamy
);
obstaculos
[
7
].
renderizar
(
renderer
,
1090
,
250
,
170
,
170
,
tamx
,
tamy
);
obstaculos
[
7
].
renderizar
(
renderer
,
1090
,
250
,
170
,
170
,
tamx
,
tamy
);
mano
.
renderizar
(
renderer
,
tamx
,
tamy
);
mano
.
renderizar_cola
(
renderer
,
tamx
,
tamy
);
mano
.
renderizar_cola
(
renderer
,
tamx
,
tamy
);
mano
.
renderizar
(
renderer
,
tamx
,
tamy
);
atras
.
renderizar
(
renderer
,
tamx
,
tamy
);
atras
.
renderizar
(
renderer
,
tamx
,
tamy
);
...
...
PantallaMundo.cpp
View file @
e4958635
...
@@ -93,9 +93,9 @@ void PantallaMundo::manejarEntrada(Handle &handle) {
...
@@ -93,9 +93,9 @@ void PantallaMundo::manejarEntrada(Handle &handle) {
}
}
// Colisiones con los objetos del inventario
// Colisiones con los objetos del inventario
for
(
int
i
=
0
;
i
<
Agapito
.
numObjetos
;
i
++
)
{
for
(
int
i
=
0
;
i
<
Agapito
.
numObjetos
()
;
i
++
)
{
if
(
colisionesInterfaz
[
i
+
1
].
colisiona
(
xRaton
,
zRaton
))
{
if
(
colisionesInterfaz
[
i
+
1
].
colisiona
(
xRaton
,
zRaton
))
{
Agapito
.
inventario
[
i
]
->
interactuar
(
handle
);
Agapito
.
getInventario
(
i
)
->
interactuar
(
handle
);
}
}
}
}
}
}
...
...
Personaje.cpp
View file @
e4958635
...
@@ -74,11 +74,13 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
...
@@ -74,11 +74,13 @@ void Personaje::renderizar(SDL_Renderer *renderer, int tamx, int tamy) {
void
Personaje
::
renderizar_inventario
(
SDL_Renderer
*
renderer
,
int
tamx
,
int
tamy
)
{
void
Personaje
::
renderizar_inventario
(
SDL_Renderer
*
renderer
,
int
tamx
,
int
tamy
)
{
for
(
int
i
=
0
;
i
<
numObjetos
;
i
++
)
{
for
(
int
i
=
0
;
i
<
inventario
.
size
();
i
++
)
{
inventario
[
i
]
->
setX
(
50
+
i
*
325
);
if
(
inventario
[
i
])
{
inventario
[
i
]
->
setY
(
800
);
inventario
[
i
]
->
setX
(
50
+
i
*
325
);
inventario
[
i
]
->
setY
(
800
);
inventario
[
i
]
->
renderizar
(
renderer
,
tamx
,
tamy
);
inventario
[
i
]
->
renderizar
(
renderer
,
tamx
,
tamy
);
}
}
}
}
}
...
@@ -106,3 +108,11 @@ bool Personaje::comprobarColisionPasiva(Hitbox &hitbox){
...
@@ -106,3 +108,11 @@ bool Personaje::comprobarColisionPasiva(Hitbox &hitbox){
return
true
;
return
true
;
}
else
return
false
;
}
else
return
false
;
}
}
void
Personaje
::
unsetInventario
(
unsigned
pos
)
{
inventario
[
pos
]
=
std
::
nullopt
;
}
optional
<
Objeto
>
&
Personaje
::
setInventario
(
unsigned
pos
)
{
return
inventario
[
pos
];
}
Personaje.h
View file @
e4958635
...
@@ -39,9 +39,8 @@ class Personaje {
...
@@ -39,9 +39,8 @@ class Personaje {
Sonido
pasoActual
;
Sonido
pasoActual
;
bool
primerPaso
=
true
;
bool
primerPaso
=
true
;
public
:
array
<
optional
<
Objeto
>
,
3
>
inventario
;
array
<
optional
<
Objeto
>
,
3
>
inventario
;
int
numObjetos
=
0
;
public
:
Personaje
();
Personaje
();
...
@@ -61,4 +60,14 @@ public:
...
@@ -61,4 +60,14 @@ public:
void
setZ
(
int
z
)
{
void
setZ
(
int
z
)
{
this
->
profundidades
=
z
;
this
->
profundidades
=
z
;
};
};
void
unsetInventario
(
unsigned
pos
);
optional
<
Objeto
>
&
setInventario
(
unsigned
pos
);
optional
<
Objeto
>
&
getInventario
(
unsigned
pos
)
{
return
setInventario
(
pos
);
};
unsigned
numObjetos
()
{
return
inventario
.
size
();
}
};
};
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