Files
super_pang_clone/source/balloon.h

159 lines
3.0 KiB
C++

#pragma once
#include "sprite.h"
#include "const.h"
#include "globals.h"
#ifndef BALLOON_H
#define BALLOON_H
// Clase globo
class Balloon
{
public:
// Constructor
Balloon(SDL_Renderer *gRenderer);
// Destructor
~Balloon();
// Inicializador
void init(int x, int y, Uint8 kind, float velx, Uint16 creationtimer);
// Centra el globo en la posición X
void allignTo(int x);
// Pinta el globo en la pantalla
void render();
// Actualiza la posición y estados del globo
void move();
// Pone a cero todos los valores del globo
void erase();
// Comprueba si el globo tiene algun tipo asignado
bool isActive();
// Obtiene del valor de la variable
int getPosX();
// Obtiene del valor de la variable
int getPosY();
// Obtiene del valor de la variable
float getVelY();
// Obtiene del valor de la variable
int getWidth();
// Obtiene del valor de la variable
int getHeight();
// Establece el valor de la variable
void setVelY(float velY);
// Obtiene del valor de la variable
int getKind();
// Establece el valor de la variable
void setStop(bool state);
// Obtiene del valor de la variable
bool isStopped();
// Establece el valor de la variable
void setBlink(bool state);
// Obtiene del valor de la variable
bool isBlinking();
// Establece el valor de la variable
void setVisible(bool state);
// Obtiene del valor de la variable
bool isVisible();
// Establece el valor de la variable
void setInvulnerable(bool state);
// Obtiene del valor de la variable
bool isInvulnerable();
// Establece el valor de la variable
void setBeingCreated(bool state);
// Obtiene del valor de la variable
bool isBeingCreated();
// Establece el valor de la variable
void setStoppedTimer(Uint16 time);
// Obtiene del valor de la variable
Uint16 getStoppedTimer();
// Obtiene del valor de la variable
Uint16 getScore();
// Obtiene el circulo de colisión
Circle &getCollider();
private:
// El renderizador de la ventana
SDL_Renderer *gRenderer;
LTexture *gBalloonTexture;
// Posición X,Y del objeto globo
float mPosX;
int mPosY;
// Alto y ancho del objeto globo
Uint8 mWidth;
Uint8 mHeight;
// Variables para controlar la velocidad del globo
float mVelX;
float mVelY;
float mGravity;
float mDefaultVelY;
int mMaxVelY;
// Puntos que da el globo al ser destruido
Uint16 mScore;
// Indica si el globo está parado
bool mStopped;
// Temporizador para controlar el estado "parado"
Uint16 mStoppedTimer;
// Indica si el globo está intermitente
bool mBlinking;
// Indica si el globo es visible
bool mVisible;
// Indica si el globo es invulnerable
bool mInvulnerable;
// Indica si el globo se está creando
bool mBeingCreated;
// Temporizador para controlar el estado "creandose"
Uint16 mCreationTimer;
// Tipo de globo
Uint8 mKind;
// Sprite del objeto globo
Sprite mSprite;
// Circulo de colisión del objeto
Circle mCollider;
// Alinea el circulo de colisión con la posición del objeto globo
void shiftColliders();
};
#endif