#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