#pragma once #include #include "jail_audio.h" #include "utils.h" #include "input.h" #include "animatedsprite.h" #include "asset.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 bool can_jump; // Si puede saltar bool enabled; // Si está habilitado bool jump_pressed_before; // Si se ha pulsado el botón de salto previamente bool jump_pressed_now; // Si se acaba de pulsar el salto bool key[6]; // Indica las llaves que posee el jugador bool standing; // Si esta de pie (o quieto?) bool was_on_background; // Si viene de una zona atravesable 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 respawn_x; // Coordenadas para revivir int respawn_y; // Coordenades para revivir int speed_x; // Cantidad de pixeles a desplazarse int speed_y; // Cantidad de pixels a desplazarse JA_Sound sound_coin; // Sonido al coger monedas JA_Sound sound_death; // Sonido al morir JA_Sound sound_jump; // Sonido al saltar Uint8 active_animation; // Animación activa Uint8 direction; // Sentido del desplazamiento Uint8 lifes; // Cantidad de vidas Uint8 respawn_direction; // Dirección para revivir // Comprueba las entradas y modifica variables void checkInput(); public: // Constructor Player(SDL_Renderer *renderer, Asset *asset, Input *input); // Destructor ~Player(); // Actualiza todas las variables void update(); // Dibuja el objeto void render(); }; #endif