85 lines
1.7 KiB
C++
85 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL.h>
|
|
#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();
|
|
|
|
// Destructor
|
|
~Bullet();
|
|
|
|
// Iniciador
|
|
void init(int x, int y, int kind, bool poweredUp, int owner, LTexture *texture, SDL_Renderer *renderer);
|
|
|
|
// Pinta el objeto en pantalla
|
|
void render();
|
|
|
|
// Actualiza la posición y estado del objeto
|
|
Uint8 move();
|
|
|
|
// Deshabilita el objeto
|
|
void erase();
|
|
|
|
// Comprueba si el objeto está activo
|
|
bool isActive();
|
|
|
|
// 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
|