Files
super_pang_clone/player.h
2022-10-20 13:52:48 +02:00

111 lines
2.0 KiB
C++

#pragma once
#include "struct.h"
#include "spriteanimated.h"
#ifndef PLAYER_H
#define PLAYER_H
//The player
class Player
{
public:
//Constructor
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:
//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