Canviada la classe bullet per la de chatGPT, aixina demà ho mire amb calma
This commit is contained in:
104
source/bullet.h
104
source/bullet.h
@@ -1,83 +1,63 @@
|
||||
#pragma once
|
||||
|
||||
#include <SDL2/SDL_rect.h> // for SDL_Rect
|
||||
#include <SDL2/SDL_stdinc.h> // for Uint8
|
||||
#include "utils.h" // for circle_t
|
||||
#include <SDL2/SDL_rect.h> // for SDL_Rect
|
||||
#include <SDL2/SDL_stdinc.h> // for Uint8
|
||||
#include "utils.h" // for circle_t
|
||||
#include <memory> // for std::unique_ptr
|
||||
|
||||
class Sprite;
|
||||
class Texture;
|
||||
|
||||
// Tipos de bala
|
||||
#define BULLET_UP 1
|
||||
#define BULLET_LEFT 2
|
||||
#define BULLET_RIGHT 3
|
||||
#define BULLET_NULL 4
|
||||
// Enumeración para los diferentes tipos de balas
|
||||
enum class BulletType
|
||||
{
|
||||
UP,
|
||||
LEFT,
|
||||
RIGHT,
|
||||
NULL_TYPE
|
||||
};
|
||||
|
||||
// Tipos de retorno de la funcion move de la bala
|
||||
#define BULLET_MOVE_OK 0
|
||||
#define BULLET_MOVE_OUT 1
|
||||
// Enumeración para los resultados del movimiento de la bala
|
||||
enum class BulletMoveStatus : Uint8
|
||||
{
|
||||
OK = 0,
|
||||
OUT = 1
|
||||
};
|
||||
|
||||
// Clase Bullet
|
||||
class Bullet
|
||||
{
|
||||
private:
|
||||
// Objetos y punteros
|
||||
Sprite *sprite; // Sprite con los graficos y métodos de pintado
|
||||
int posX; // Posición en el eje X
|
||||
int posY; // Posición en el eje Y
|
||||
Uint8 width; // Ancho del objeto
|
||||
Uint8 height; // Alto del objeto
|
||||
int velX; // Velocidad en el eje X
|
||||
int velY; // Velocidad en el eje Y
|
||||
BulletType kind; // Tipo de objeto
|
||||
int owner; // Identificador del dueño del objeto
|
||||
circle_t collider; // Círculo de colisión del objeto
|
||||
SDL_Rect *playArea; // Rectángulo con la zona de juego
|
||||
std::unique_ptr<Sprite> sprite; // Sprite con los gráficos y métodos de pintado
|
||||
|
||||
// Variables
|
||||
int posX; // Posición en el eje X
|
||||
int posY; // Posición en el eje Y
|
||||
Uint8 width; // Ancho del objeto
|
||||
Uint8 height; // Alto del objeto
|
||||
int velX; // Velocidad en el eje X
|
||||
int velY; // Velocidad en el eje Y
|
||||
int kind; // Tipo de objeto
|
||||
int owner; // Identificador del dueño del objeto
|
||||
circle_t collider; // Circulo de colisión del objeto
|
||||
SDL_Rect *playArea; // Rectangulo con la zona de juego
|
||||
|
||||
// Alinea el circulo de colisión con el objeto
|
||||
void shiftColliders();
|
||||
void shiftColliders(); // Alinea el círculo de colisión con el objeto
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Bullet(int x, int y, int kind, bool poweredUp, int owner, SDL_Rect *playArea, Texture *texture);
|
||||
Bullet(int x, int y, BulletType kind, bool poweredUp, int owner, SDL_Rect *playArea, Texture *texture);
|
||||
~Bullet() = default;
|
||||
|
||||
// Destructor
|
||||
~Bullet();
|
||||
void render(); // Pinta el objeto en pantalla
|
||||
BulletMoveStatus move(); // Actualiza la posición y estado del objeto
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void render();
|
||||
bool isEnabled() const; // Comprueba si el objeto está habilitado
|
||||
void disable(); // Deshabilita el objeto
|
||||
|
||||
// Actualiza la posición y estado del objeto
|
||||
Uint8 move();
|
||||
|
||||
// Comprueba si el objeto está habilitado
|
||||
bool isEnabled();
|
||||
|
||||
// Deshabilita el objeto
|
||||
void disable();
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int getPosX();
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
int getPosY();
|
||||
|
||||
// Establece el valor de la variable
|
||||
int getPosX() const;
|
||||
int getPosY() const;
|
||||
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
|
||||
int getVelY() const;
|
||||
BulletType getKind() const;
|
||||
int getOwner() const;
|
||||
circle_t &getCollider();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user