forked from jaildesigner-jailgames/jaildoctors_dilemma
Trabajando en las nuevas colisiones
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "input.h"
|
||||
#include "const.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#ifndef PLAYER_H
|
||||
#define PLAYER_H
|
||||
@@ -34,17 +35,23 @@ struct player_t
|
||||
// Clase Player
|
||||
class Player
|
||||
{
|
||||
private:
|
||||
LTexture *texture; // Textura con los graficos del enemigo
|
||||
Input *input; // Objeto para gestionar la entrada
|
||||
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||
color_t color; // Color del jugador
|
||||
SDL_Rect collider; // Caja de colisión
|
||||
|
||||
bool onBorder; // Indica si el jugador esta en uno de los cuatro bordes de la pantalla
|
||||
int border; // Indica en cual de los cuatro bordes se encuentra
|
||||
public:
|
||||
float x; // Posición del jugador en el eje X
|
||||
float y; // Posición del jugador en el eje Y
|
||||
float vx; // Velocidad/desplazamiento del jugador en el eje X
|
||||
float vy; // Velocidad/desplazamiento del jugador en el eje Y
|
||||
int w; // Ancho del jugador
|
||||
int h; // ALto del jugador
|
||||
LTexture *texture; // Textura con los graficos del enemigo
|
||||
Input *input; // Objeto para gestionar la entrada
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||
Room *room; // Objeto encargado de gestionar cada habitación del juego
|
||||
color_t color; // Color del jugador
|
||||
SDL_Rect colliderBox; // Caja de colisión con los enemigos u objetos
|
||||
std::vector<SDL_Point> colliderPoints; // Puntos de colisión con el mapa
|
||||
bool onBorder; // Indica si el jugador esta en uno de los cuatro bordes de la pantalla
|
||||
int border; // Indica en cual de los cuatro bordes se encuentra
|
||||
|
||||
// Comprueba las entradas y modifica variables
|
||||
void checkInput();
|
||||
@@ -67,6 +74,21 @@ private:
|
||||
// Comprueba si ha finalizado el salto
|
||||
void checkJump();
|
||||
|
||||
// Comprueba si el jugador esta sobre el suelo
|
||||
void checkOnFloor();
|
||||
|
||||
// Comprueba que el jugador no atraviese ninguna pared
|
||||
bool checkWalls();
|
||||
|
||||
// Obtiene el valor del pixel inferior izquierdo del jugador
|
||||
SDL_Point getLeftFoot();
|
||||
|
||||
// Obtiene el valor del pixel inferior derecho del jugador
|
||||
SDL_Point getRightFoot();
|
||||
|
||||
// Actualiza los puntos de colisión
|
||||
void updateColliderPoints();
|
||||
|
||||
public:
|
||||
AnimatedSprite *sprite; // Sprite del enemigo
|
||||
SDL_Rect lastPosition; // Contiene la ultima posición del jugador, por si hay que deshacer algun movimiento
|
||||
@@ -94,12 +116,6 @@ public:
|
||||
// Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
|
||||
void switchBorders();
|
||||
|
||||
// Obtiene el valor del pixel inferior izquierdo del jugador
|
||||
SDL_Point getLeftFoot();
|
||||
|
||||
// Obtiene el valor del pixel inferior derecho del jugador
|
||||
SDL_Point getRightFoot();
|
||||
|
||||
// Cambia el estado del jugador
|
||||
void setStatus(int value);
|
||||
|
||||
@@ -123,6 +139,9 @@ public:
|
||||
|
||||
// Recarga la textura
|
||||
void reLoadTexture();
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setRoom(Room *room);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user