#pragma once #include #include "jail_audio.h" #include "utils.h" #include "input.h" #include "animatedsprite.h" #include "asset.h" #include "map.h" #ifndef PLAYER_H #define PLAYER_H // The player class Player { private: Asset *asset; // Objeto con la ruta a todos los ficheros de recursos SDL_Renderer *renderer; // El renderizador de la ventana Input *input; // Objeto Input para gestionar las entradas AnimatedSprite *sprite; // Objeto con los graficos, animaciones y posición del jugador LTexture *texture; // Textura con los graficos del jugador Map *map; // Objeto con el mapa 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 key; // Indica las llaves que posee el jugador std::vector 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 // Comprueba las entradas y modifica variables void checkInput(); // Aplica la gravedad void addGravity(); // Actualiza los puntos de colisión void updateColliders(); // Compruena las colisiones con el mapa void checkMapCollisions(); // Deshace el último movimiento void undoMove(); public: // Constructor Player(SDL_Renderer *renderer, Asset *asset, Input *input, Map *map); // Destructor ~Player(); // Actualiza todas las variables void update(); // Dibuja el objeto void render(); }; #endif