canvi de pc enmig de la enfangà
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include <SDL2/SDL_render.h> // Para SDL_Renderer
|
||||
#include <string> // Para basic_string, string
|
||||
#include <vector> // Para vector
|
||||
#include <memory> // Para shared_ptr
|
||||
#include "utils.h" // Para color_t
|
||||
class AnimatedSprite;
|
||||
class Asset;
|
||||
@@ -26,9 +27,9 @@ struct playerSpawn_t
|
||||
float y;
|
||||
float vx;
|
||||
float vy;
|
||||
int jumpIni;
|
||||
int jump_init_pos;
|
||||
state_e state;
|
||||
bool flipH;
|
||||
SDL_RendererFlip flip;
|
||||
};
|
||||
|
||||
struct player_t
|
||||
@@ -36,48 +37,50 @@ struct player_t
|
||||
playerSpawn_t spawn;
|
||||
std::string png;
|
||||
std::string animation;
|
||||
Room *room;
|
||||
std::shared_ptr<Room> room;
|
||||
};
|
||||
|
||||
class Player
|
||||
{
|
||||
public:
|
||||
// Constantes
|
||||
static const int MAX_FALLING_HEIGHT_ = BLOCK * 4; // Altura maxima permitida de caída.
|
||||
static const float MAX_VY_ = 1.2f; // Velocidad máxima que puede alcanzar al desplazarse en vertical
|
||||
|
||||
// Objetos y punteros
|
||||
SDL_Renderer *renderer_; // El renderizador de la ventana
|
||||
Input *input_; // Objeto para gestionar la entrada
|
||||
Resource *resource_; // Objeto con los recursos
|
||||
Asset *asset_; // Objeto con la ruta a todos los ficheros de recursos
|
||||
Room *room_; // Objeto encargado de gestionar cada habitación del juego
|
||||
AnimatedSprite *sprite_; // Sprite del jugador
|
||||
Debug *debug_; // Objeto para gestionar la información de debug
|
||||
SDL_Renderer *renderer_; // El renderizador de la ventana
|
||||
Input *input_; // Objeto para gestionar la entrada
|
||||
Resource *resource_; // Objeto con los recursos
|
||||
Asset *asset_; // Objeto con la ruta a todos los ficheros de recursos
|
||||
Debug *debug_; // Objeto para gestionar la información de debug
|
||||
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
||||
std::shared_ptr<AnimatedSprite> sprite_; // Sprite del jugador
|
||||
|
||||
// Variables
|
||||
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
|
||||
Color 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
|
||||
std::vector<SDL_Point> underFeet; // Contiene los puntos que hay bajo cada pie del jugador
|
||||
std::vector<SDL_Point> feet; // Contiene los puntos que hay en el pie del jugador
|
||||
state_e state; // Estado en el que se encuentra el jugador. Util apara saber si está saltando o cayendo
|
||||
state_e prevState; // Estado previo en el que se encontraba el jugador
|
||||
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
|
||||
bool autoMovement; // Indica si esta siendo arrastrado por una superficie automatica
|
||||
bool paused; // Indica si el jugador esta en modo pausa
|
||||
SDL_Rect lastPosition; // Contiene la ultima posición del jugador, por si hay que deshacer algun movimiento
|
||||
int jumpIni; // Valor del eje Y en el que se inicia el salto
|
||||
float maxVY; // Velocidad máxima que puede alcanzar al desplazarse en vertical
|
||||
std::vector<JA_Sound_t *> jumpSound; // Vecor con todos los sonidos del salto
|
||||
std::vector<JA_Sound_t *> fallSound; // Vecor con todos los sonidos de la caída
|
||||
int jumpCounter; // Cuenta el tiempo de salto
|
||||
int fallCounter; // Cuenta el tiempo de caida
|
||||
bool alive; // Indica si el jugador esta vivo o no
|
||||
int maxFallHeight; // Altura maxima permitida de caída.
|
||||
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
|
||||
Color color_; // Color del jugador
|
||||
SDL_Rect collider_box_; // Caja de colisión con los enemigos u objetos
|
||||
std::vector<SDL_Point> collider_points_; // Puntos de colisión con el mapa
|
||||
std::vector<SDL_Point> under_feet_; // Contiene los puntos que hay bajo cada pie del jugador
|
||||
std::vector<SDL_Point> feet_; // Contiene los puntos que hay en el pie del jugador
|
||||
state_e state_; // Estado en el que se encuentra el jugador. Util apara saber si está saltando o cayendo
|
||||
state_e previous_state_; // Estado previo en el que se encontraba el jugador
|
||||
bool is_on_border_; // 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
|
||||
bool auto_movement_; // Indica si esta siendo arrastrado por una superficie automatica
|
||||
bool is_paused_; // Indica si el jugador esta en modo pausa
|
||||
SDL_Rect last_position_; // Contiene la ultima posición del jugador, por si hay que deshacer algun movimiento
|
||||
int jump_init_pos_; // Valor del eje Y en el que se inicia el salto
|
||||
std::vector<JA_Sound_t *> jumping_sound_; // Vecor con todos los sonidos del salto
|
||||
std::vector<JA_Sound_t *> falling_sound_; // Vecor con todos los sonidos de la caída
|
||||
int jumping_counter_; // Cuenta el tiempo de salto
|
||||
int falling_counter_; // Cuenta el tiempo de caida
|
||||
bool is_alive_; // Indica si el jugador esta vivo o no
|
||||
|
||||
#ifdef DEBUG
|
||||
SDL_Rect rx; // Rectangulo de desplazamiento para el modo debug
|
||||
@@ -142,7 +145,7 @@ public:
|
||||
Player(player_t player);
|
||||
|
||||
// Destructor
|
||||
~Player();
|
||||
~Player() = default;
|
||||
|
||||
// Pinta el enemigo en pantalla
|
||||
void render();
|
||||
@@ -175,7 +178,7 @@ public:
|
||||
void reLoadPalette();
|
||||
|
||||
// Establece el valor de la variable
|
||||
void setRoom(Room *room);
|
||||
void setRoom(std::shared_ptr<Room> room);
|
||||
|
||||
// Comprueba si el jugador esta vivo
|
||||
bool isAlive();
|
||||
|
||||
Reference in New Issue
Block a user