Añadidas físicas al movimiento y salto

This commit is contained in:
2022-08-18 13:42:30 +02:00
parent b1c91d2d0d
commit 4de34c388d
5 changed files with 147 additions and 45 deletions

View File

@@ -21,24 +21,32 @@ public:
LTexture *texture; // Textura con los graficos del jugador
Map *map; // Objeto con el mapa
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
bool can_jump; // Si puede saltar
bool enabled; // Si está habilitado
bool standing; // Si esta de pie (o quieto?)
bool invulnerable; // Si es invulnerable
int coins; // Cantidad de monedas
int cooldown; // Tiempo de inhabilitación
int jumpforce; // Cantidad de pixels a desplazarse y velocidad que pilla al saltar
int lifes; // Cantidad de vidas
float gravity; // Gravedad
std::vector<bool> key; // Indica las llaves que posee el jugador
std::vector<SDL_Point> collider; // Contiene los puntos de colisión del jugador con el mapa
JA_Sound sound_coin; // Sonido al coger monedas
JA_Sound sound_death; // Sonido al morir
JA_Sound sound_jump; // Sonido al saltar
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
bool jumping; // Indica si se encuentra saltando
bool jumpPressed; // Indica si esta pulsada la tecla de salto
bool enabled; // Si está habilitado
bool standing; // Si esta de pie (o quieto?)
bool invulnerable; // Indica si se encuentra en estado invulnerable
int coins; // Cantidad de monedas
int cooldown; // Tiempo de inhabilitación
int lives; // Cantidad de vidas
// Variables que afectan a la inercia del movimiento
float jumpStrenght; // Cantidad de pixels a desplazarse y velocidad que pilla al saltar
float gravity; // Gravedad
float accelX; // Aceleración al desplazarse horizontalmente
float maxVX; // Velocidad mazima de desplazamiento horizontal
float maxVY; // Velocidad mazima de desplazamiento vertical
std::vector<bool> key; // Indica las llaves que posee el jugador
std::vector<SDL_Point> collider; // Contiene los puntos de colisión del jugador con el mapa
std::vector<SDL_Point> underFeet; // Contiene los puntos que hay bajo cada pie del jugador
JA_Sound sound_coin; // Sonido al coger monedas
JA_Sound sound_death; // Sonido al morir
JA_Sound sound_jump; // Sonido al saltar
// Comprueba las entradas y modifica variables
void checkInput();
@@ -55,6 +63,12 @@ public:
// Mueve al jugador en función de la velocidad/desplazamiento
void move();
// Anima al jugador
void animate();
// Comprueba si el jugador tiene suelo debajo de los pies
bool isOnFloor();
public:
// Constructor
Player(SDL_Renderer *renderer, Asset *asset, Input *input, Map *map);