Files
super_pang_clone/source/player.h

120 lines
2.1 KiB
C++

#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