Files
jdd_opendingux/source/player.h

74 lines
1.8 KiB
C++

#pragma once
#include "ifdefs.h"
#include "const.h"
#include "utils.h"
#include "asset.h"
#include "room.h"
#include "animatedsprite.h"
#include "input.h"
#include <string>
#ifndef PLAYER_H
#define PLAYER_H
#define VX 0.6
// Clase Player
class Player
{
private:
LTexture *texture; // Textura con los graficos del enemigo
AnimatedSprite *sprite; // Sprite del enemigo
Input *input; // Objeto para gestionar la entrada
Room *room; // Objeto con el mapa del juego
SDL_Renderer *renderer; // El renderizador de la ventana
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
color_t color; // Color del 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
// Comprueba las entradas y modifica variables
void checkInput();
// Comprueba si se halla en alguno de los cuatro bordes
void checkBorders();
public:
// Constructor
Player(std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Input *_input, Room *_room);
// Destructor
~Player();
// Pinta el enemigo en pantalla
void draw();
// Actualiza las variables del objeto
void update();
// Indica si el jugador esta en uno de los cuatro bordes de la pantalla
bool getOnBorder();
// Indica en cual de los cuatro bordes se encuentra
int getBorder();
// Cambia al jugador de un borde al opuesto. Util para el cambio de pantalla
void switchBorders();
// Establece el valor de la variable
void setRoom(Room *_room);
// Obtiene el valor del pixel inferior izquierdo del jugador
SDL_Point getLeftFoot();
// Obtiene el valor del pixel inferior derecho del jugador
SDL_Point getRightFoot();
// Establece la velocidad en el eje Y al jugador
void setFalling(bool value);
};
#endif