Files
volcano_2022/source/player.h

63 lines
2.0 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#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