#pragma once #include #include "utils.h" #include "sprite.h" #ifndef BULLET_H #define BULLET_H // Tipos de bala #define BULLET_UP 1 #define BULLET_LEFT 2 #define BULLET_RIGHT 3 // Tipos de retorno de la funcion move de la bala #define BULLET_MOVE_OK 0 #define BULLET_MOVE_OUT 1 // Clase Bullet class Bullet { private: int mPosX; // Posición en el eje X int mPosY; // Posición en el eje Y Uint8 mWidth; // Ancho del objeto Uint8 mHeight; // Alto del objeto int mVelX; // Velocidad en el eje X int mVelY; // Velocidad en el eje Y int mKind; // Tipo de objeto int mOwner; // Identificador del dueño del objeto Sprite *mSprite; // Sprite con los graficos y métodos de pintado circle_t mCollider; // Circulo de colisión del objeto // Alinea el circulo de colisión con el objeto void shiftColliders(); public: // Constructor Bullet(int x, int y, int kind, bool poweredUp, int owner, LTexture *texture, SDL_Renderer *renderer); // Destructor ~Bullet(); // Pinta el objeto en pantalla void render(); // Actualiza la posición y estado del objeto Uint8 move(); // Comprueba si el objeto está activo bool isActive(); // Desactiva el objeto void deactivate(); // Obtiene el valor de la variable int getPosX(); // Obtiene el valor de la variable int getPosY(); // Establece el valor de la variable void setPosX(int x); // Establece el valor de la variable void setPosY(int y); // Obtiene el valor de la variable int getVelY(); // Obtiene el valor de la variable int getKind(); // Obtiene el valor de la variable int getOwner(); // Obtiene el circulo de colisión circle_t &getCollider(); }; #endif