forked from jaildesigner-jailgames/jaildoctors_dilemma
Ja torna a deixar jugar
Encara queden bugs per corregir Trencat el sistema de triar la paleta, de moment
This commit is contained in:
@@ -1,45 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include <SDL2/SDL_rect.h> // for SDL_Rect, SDL_Point
|
||||
#include <SDL2/SDL_render.h> // for SDL_Renderer
|
||||
#include <memory> // for shared_ptr, __shared_ptr_access
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
#include "sprite.h" // for Sprite
|
||||
#include "texture.h" // for Texture
|
||||
#include "utils.h" // for Color
|
||||
#include <SDL2/SDL_rect.h> // for SDL_Rect, SDL_Point
|
||||
#include <SDL2/SDL_render.h> // for SDL_Renderer
|
||||
#include <memory> // for shared_ptr, __shared_ptr_access
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
#include "sprite.h" // for Sprite
|
||||
#include "texture.h" // for Texture
|
||||
#include "utils.h" // for Color
|
||||
|
||||
struct item_t
|
||||
struct ItemData
|
||||
{
|
||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||
std::shared_ptr<Texture> texture; // Textura con los gráficos del item
|
||||
std::string tileSetFile; // Ruta al fichero con los gráficos del item
|
||||
int x; // Posición del item en pantalla
|
||||
int 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
|
||||
Color color1; // Uno de los dos colores que se utiliza para el item
|
||||
Color color2; // Uno de los dos colores que se utiliza para el item
|
||||
std::string tile_set_file; // Ruta al fichero con los gráficos del item
|
||||
int x; // Posición del item en pantalla
|
||||
int 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
|
||||
Color color1; // Uno de los dos colores que se utiliza para el item
|
||||
Color color2; // Uno de los dos colores que se utiliza para el item
|
||||
|
||||
// Constructor por defecto
|
||||
item_t() : renderer(nullptr), texture(nullptr), x(0), y(0), tile(0), counter(0), color1(), color2() {}
|
||||
// Constructor
|
||||
ItemData() : x(0), y(0), tile(0), counter(0), color1(), color2() {}
|
||||
};
|
||||
|
||||
class Item
|
||||
{
|
||||
private:
|
||||
// Objetos y punteros
|
||||
std::shared_ptr<Sprite> sprite; // Sprite del objeto
|
||||
std::shared_ptr<Sprite> sprite_; // Sprite del objeto
|
||||
|
||||
// Variables
|
||||
std::vector<Color> color; // Vector con los colores del objeto
|
||||
int counter; // Contador interno
|
||||
SDL_Rect collider; // Rectangulo de colisión
|
||||
int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color
|
||||
std::vector<Color> color_; // Vector con los colores del objeto
|
||||
int counter_; // Contador interno
|
||||
SDL_Rect collider_; // Rectangulo de colisión
|
||||
int change_color_speed; // Cuanto mas alto, mas tarda en cambiar de color
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Item(item_t item);
|
||||
Item(ItemData item);
|
||||
|
||||
// Destructor
|
||||
~Item() = default;
|
||||
@@ -48,18 +46,17 @@ public:
|
||||
void render();
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
void update() { counter++; }
|
||||
void update() { counter_++; }
|
||||
|
||||
// Obtiene el rectangulo de colision del objeto
|
||||
SDL_Rect &getCollider() { return collider; }
|
||||
SDL_Rect &getCollider() { return collider_; }
|
||||
|
||||
// Obtiene su ubicación
|
||||
SDL_Point getPos();
|
||||
|
||||
// Recarga la textura
|
||||
void reLoadTexture() { sprite->getTexture()->reLoad(); }
|
||||
void reLoadTexture() { sprite_->getTexture()->reLoad(); }
|
||||
|
||||
// Asigna los colores del objeto
|
||||
void setColors(Color col1, Color col2);
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user