forked from jaildesigner-jailgames/jaildoctors_dilemma
creada carpeta source2
This commit is contained in:
64
source2/Game/Entities/item.h
Normal file
64
source2/Game/Entities/item.h
Normal file
@@ -0,0 +1,64 @@
|
||||
#pragma once
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <memory> // Para shared_ptr
|
||||
#include <string> // Para string
|
||||
#include <vector> // Para vector
|
||||
class SSprite;
|
||||
|
||||
struct ItemData {
|
||||
std::string tile_set_file; // Ruta al fichero con los gráficos del item
|
||||
float x; // Posición del item en pantalla
|
||||
float y; // Posición del item en pantalla
|
||||
int tile; // Número de tile dentro de la textura
|
||||
int counter; // Contador inicial. Es el que lo hace cambiar de color
|
||||
Uint8 color1; // Uno de los dos colores que se utiliza para el item
|
||||
Uint8 color2; // Uno de los dos colores que se utiliza para el item
|
||||
|
||||
// Constructor
|
||||
ItemData()
|
||||
: x(0),
|
||||
y(0),
|
||||
tile(0),
|
||||
counter(0),
|
||||
color1(),
|
||||
color2() {}
|
||||
};
|
||||
|
||||
class Item {
|
||||
private:
|
||||
// Constantes
|
||||
static constexpr float ITEM_SIZE_ = 8;
|
||||
|
||||
// Objetos y punteros
|
||||
std::shared_ptr<SSprite> sprite_; // SSprite del objeto
|
||||
|
||||
// Variables
|
||||
std::vector<Uint8> color_; // Vector con los colores del objeto
|
||||
int counter_; // Contador interno
|
||||
SDL_FRect collider_; // Rectangulo de colisión
|
||||
int change_color_speed; // Cuanto mas alto, mas tarda en cambiar de color
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
explicit Item(ItemData item);
|
||||
|
||||
// Destructor
|
||||
~Item() = default;
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void render();
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
void update() { counter_++; }
|
||||
|
||||
// Obtiene el rectangulo de colision del objeto
|
||||
SDL_FRect& getCollider() { return collider_; }
|
||||
|
||||
// Obtiene su ubicación
|
||||
SDL_FPoint getPos();
|
||||
|
||||
// Asigna los colores del objeto
|
||||
void setColors(Uint8 col1, Uint8 col2);
|
||||
};
|
||||
Reference in New Issue
Block a user