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
d114e67e
authored
Mar 06, 2025
by
José Pardo Madera
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Arreglo de hitbox.
parent
8e1513af
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
36 additions
and
32 deletions
Hitbox.h
Objeto.cpp
Objeto.h
Personaje.cpp
Personaje.h
main.cpp
makefile
Hitbox.h
View file @
d114e67e
#ifndef HITBOX_H
#define HITBOX_H
class
Hitbox
{
class
Hitbox
{
int
xSuperiorDer
;
int
xSuperiorDer
;
int
xInferiorIzq
;
int
xInferiorIzq
;
int
ySuperiorDer
;
int
ySuperiorDer
;
int
yInferiorIzq
;
int
yInferiorIzq
;
public
:
bool
colisiona
(
int
x
,
int
y
);
bool
colisiona
(
int
x
,
int
y
);
Hitbox
(
int
xSD
,
int
xII
,
int
ySD
,
int
yII
)
:
xSuperiorDer
(
xSD
),
xInferiorIzq
(
xII
),
ySuperiorDer
(
ySD
),
yInferiorIzq
(
yII
){}
Hitbox
(
int
xSD
,
int
xII
,
int
ySD
,
int
yII
)
:
xSuperiorDer
(
xSD
),
xInferiorIzq
(
xII
),
ySuperiorDer
(
ySD
),
yInferiorIzq
(
yII
){}
...
@@ -11,4 +15,6 @@ class Hitbox{
...
@@ -11,4 +15,6 @@ class Hitbox{
int
getySuperiorDer
(){
return
ySuperiorDer
;}
int
getySuperiorDer
(){
return
ySuperiorDer
;}
int
getxInferiorIzq
(){
return
xInferiorIzq
;}
int
getxInferiorIzq
(){
return
xInferiorIzq
;}
int
getyInferiorIzq
(){
return
yInferiorIzq
;}
int
getyInferiorIzq
(){
return
yInferiorIzq
;}
};
};
\ No newline at end of file
#endif // HITBOX_H
Objeto.cpp
View file @
d114e67e
#include "Objeto.h"
#include "Objeto.h"
Hitbox
&
Objeto
::
getHitbox
(){
Hitbox
&
Objeto
::
getHitbox
(){
return
colision
es
;
return
colision
;
}
}
void
Objeto
::
renderizar
(
SDL_Renderer
*
renderer
){
void
Objeto
::
renderizar
(
SDL_Renderer
*
renderer
){
switch
(
E
stado
){
switch
(
e
stado
){
normal
:
normal
:
normal
.
renderizar
(
renderer
,
colision
.
getxSuperiorDer
(),
colision
.
getySuperiorDer
(),
//
normal.renderizar(renderer, colision.getxSuperiorDer(), colision.getySuperiorDer(),
colision
.
getxInferiorIzq
()
-
colision
.
getxSuperiorDer
(),
colision
.
getyInferiorIzq
()
-
colision
.
getySuperiorDer
());
//
colision.getxInferiorIzq()-colision.getxSuperiorDer(),colision.getyInferiorIzq()-colision.getySuperiorDer());
break
;
break
;
overworld
:
overworld
:
overworld
.
renderizar
(
renderer
,
colision
.
getxSuperiorDer
(),
colision
.
getySuperiorDer
(),
//
overworld.renderizar(renderer, colision.getxSuperiorDer(), colision.getySuperiorDer(),
colision
.
getxInferiorIzq
()
-
colision
.
getxSuperiorDer
(),
colision
.
getyInferiorIzq
()
-
colision
.
getySuperiorDer
());
//
colision.getxInferiorIzq()-colision.getxSuperiorDer(),colision.getyInferiorIzq()-colision.getySuperiorDer());
break
;
break
;
overworld_highlight
:
overworld_highlight
:
overworld_highlight
.
renderizar
(
renderer
,
colision
.
getxSuperiorDer
(),
colision
.
getySuperiorDer
(),
//
overworld_highlight.renderizar(renderer, colision.getxSuperiorDer(), colision.getySuperiorDer(),
colision
.
getxInferiorIzq
()
-
colision
.
getxSuperiorDer
(),
colision
.
getyInferiorIzq
()
-
colision
.
getySuperiorDer
());
//
colision.getxInferiorIzq()-colision.getxSuperiorDer(),colision.getyInferiorIzq()-colision.getySuperiorDer());
break
;
break
;
}
}
}
}
\ No newline at end of file
Objeto.h
View file @
d114e67e
#pragma once
#include "Sprite.h"
#include "Sprite.h"
#include "Hitbox.h"
#include "Hitbox.h"
...
@@ -8,17 +10,17 @@ enum State {
...
@@ -8,17 +10,17 @@ enum State {
overworld_highlight
=
2
overworld_highlight
=
2
};
};
class
Objeto
{
class
Objeto
{
Sprite
normal
;
Sprite
sprite_
normal
;
Sprite
overworld
;
Sprite
sprite_
overworld
;
Sprite
overworld_highlight
;
Sprite
sprite_
overworld_highlight
;
Hitbox
colision
;
Hitbox
colision
;
State
estado
=
normal
;
State
estado
=
normal
;
public
:
Hitbox
&
getHitbox
();
Hitbox
&
getHitbox
();
Objeto
(
Sprite
normal_
,
Sprite
overworld_
,
Sprite
overworld_highlight_
,
Hitbox
colision_
)
:
normal
(
normal_
),
overworld
(
overworld_
),
Objeto
(
Sprite
sprite_normal_
,
Sprite
sprite_overworld_
,
Sprite
sprite_overworld_highlight_
,
Hitbox
colision_
)
:
sprite_normal
(
sprite_normal_
),
sprite_overworld
(
sprite_
overworld_
),
overworld_highlight
(
overworld_highlight_
),
colision
(
colision_
){}
sprite_overworld_highlight
(
sprite_
overworld_highlight_
),
colision
(
colision_
){}
void
renderizar
(
SDL_Renderer
*
renderer
);
void
renderizar
(
SDL_Renderer
*
renderer
);
};
};
\ No newline at end of file
Personaje.cpp
View file @
d114e67e
...
@@ -55,8 +55,8 @@ void Personaje::renderizar(SDL_Renderer *renderer) {
...
@@ -55,8 +55,8 @@ void Personaje::renderizar(SDL_Renderer *renderer) {
movimientos
[
estado
][
indice_movimiento
].
renderizar
(
renderer
,
x
,
100
,
profundidades
,
profundidades
,
true
);
movimientos
[
estado
][
indice_movimiento
].
renderizar
(
renderer
,
x
,
100
,
profundidades
,
profundidades
,
true
);
}
}
void
Personaje
::
comprobarColision
(
Hitbox
*
hitbox
){
void
Personaje
::
comprobarColision
(
Hitbox
&
hitbox
){
if
(
hitbox
->
colisiona
(
x
,
profundidades
)){
if
(
hitbox
.
colisiona
(
x
,
profundidades
)){
switch
(
estado
)
{
switch
(
estado
)
{
case
Frente
:
case
Frente
:
profundidades
-=
5
;
profundidades
-=
5
;
...
@@ -72,4 +72,4 @@ void Personaje::comprobarColision(Hitbox *hitbox){
...
@@ -72,4 +72,4 @@ void Personaje::comprobarColision(Hitbox *hitbox){
break
;
break
;
}
}
}
}
}
}
\ No newline at end of file
Personaje.h
View file @
d114e67e
...
@@ -39,5 +39,5 @@ public:
...
@@ -39,5 +39,5 @@ public:
void
renderizar
(
SDL_Renderer
*
renderer
);
void
renderizar
(
SDL_Renderer
*
renderer
);
void
comprobarColision
(
Hitbox
*
hitbox
);
void
comprobarColision
(
Hitbox
&
hitbox
);
};
};
\ No newline at end of file
main.cpp
View file @
d114e67e
...
@@ -66,14 +66,14 @@ int main(){
...
@@ -66,14 +66,14 @@ int main(){
}
}
vector
<
*
Objeto
>
objetos
;
vector
<
Objeto
*
>
objetos
;
Sprite
Fondo1
(
"assets/fondoHabitacion.jpg"
);
Sprite
Fondo1
(
"assets/fondoHabitacion.jpg"
);
Sprite
sprPlanta
(
"assets/planta.png"
);
Sprite
sprPlanta
(
"assets/planta.png"
);
Hitbox
hitPlanta
(
10
,
50
,
110
,
100
);
Hitbox
hitPlanta
(
10
,
50
,
110
,
100
);
Objeto
Planta
(
sprPlanta
,
sprPlanta
,
sprPlanta
,
hitPlanta
);
Objeto
Planta
(
sprPlanta
,
sprPlanta
,
sprPlanta
,
hitPlanta
);
objetos
.
add
(
&
Planta
);
objetos
.
push_back
(
&
Planta
);
Personaje
Agapito
;
Personaje
Agapito
;
...
@@ -99,7 +99,7 @@ int main(){
...
@@ -99,7 +99,7 @@ int main(){
break
;
break
;
}
}
for
(
int
i
=
0
;
i
<
objetos
.
size
();
i
++
){
for
(
int
i
=
0
;
i
<
objetos
.
size
();
i
++
){
Agapito
.
comprobarColision
(
objetos
[
i
]
->
get
Colision
());
Agapito
.
comprobarColision
(
objetos
[
i
]
->
get
Hitbox
());
}
}
break
;
break
;
case
SDL_QUIT
:
case
SDL_QUIT
:
...
...
makefile
View file @
d114e67e
CC
=
g++
CC
=
g++
CodeFiles
=
main.cpp Personaje.cpp Sprite.cpp
HeaderFiles
=
Personaje.h Sprite.h Objeto.h Hitbox.h
CodeFiles
=
main.cpp Personaje.cpp Sprite.cpp Objeto.cpp Hitbox.cpp
Executable
:
$(CodeFiles)
Executable
:
$(CodeFiles)
$(HeaderFiles)
$(CC)
$(CodeFiles)
-w
-lSDL2
-lSDL2_image
-lSDL2_ttf
-o
Executable
$(CC)
$(CodeFiles)
-w
-lSDL2
-lSDL2_image
-lSDL2_ttf
-o
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