#pragma once #include "spriteanimated.h" #include "const.h" #include "globals.h" #ifndef PLAYER_H #define PLAYER_H // The player class Player { public: // Constructor Player(SDL_Renderer *gRenderer); // DEstructor ~Player(); // Iniciador void init(); // Comprueba la entrada (teclado, gamepad) y actua en consecuencia void checkInput(Uint8 input); // Mueve el jugador a la posición y animación que le corresponde void move(); // Pinta el jugador en pantalla void render(); // Establece el estado del jugador void setStatus(int status); // Establece la animación correspondiente al estado void setAnimation(); // Obtiene el valor de la variable int getPosX(); // Obtiene el valor de la variable int getPosY(); // Obtiene el valor de la variable int getWidth(); // Obtiene el valor de la variable int getHeight(); // Indica si el jugador puede disparar bool canFire(); // Establece el valor de la variable void setFireCooldown(int time); // Actualiza el valor de la variable void updateCooldown(); // Actualiza al jugador a su posicion, animación y controla los contadores void update(); // Obtiene la puntuación del jugador int getScore(); // Establece la puntuación del jugador void setScore(int score); // Añade a la puntuación del jugador void addScore(int score); // Obtiene el circulo de colisión Circle &getCollider(); private: // El renderizador de la ventana SDL_Renderer *gRenderer; LTexture *gPlayerTexture; // Posición X, Y del jugador float mPosX; int mPosY; // Altura y anchura del jugador Uint8 mWidth; Uint8 mHeight; // Velocidad X, Y del jugador float mVelX; int mVelY; // Velocidad base del jugador float mBaseSpeed; // Contador durante el cual no puede disparar int mCooldown; // Vidas actuales del jugador Uint8 mLives; // Vidas iniciales del jugador Uint8 mStartingLives; // Puntos del jugador int mScore; // Estado del jugador Uint8 mStatus; // Sprite para dibujar al jugador en pantalla SpriteAnimated mSprite; // Circulo de colisión del jugador Circle mCollider; // Actualiza el circulo de colisión a la posición del jugador void shiftColliders(); }; #endif