forked from jaildesigner-jailgames/jaildoctors_dilemma
Los items ya brillan a distinto ritmo
This commit is contained in:
@@ -47,6 +47,7 @@ tileset=items.png
|
|||||||
tile=0
|
tile=0
|
||||||
x=1
|
x=1
|
||||||
y=7
|
y=7
|
||||||
|
counter=6
|
||||||
[/item]
|
[/item]
|
||||||
|
|
||||||
[item]
|
[item]
|
||||||
@@ -54,4 +55,47 @@ tileset=items.png
|
|||||||
tile=0
|
tile=0
|
||||||
x=17
|
x=17
|
||||||
y=8
|
y=8
|
||||||
|
counter=7
|
||||||
|
[/item]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[item]
|
||||||
|
tileset=items.png
|
||||||
|
tile=0
|
||||||
|
x=12
|
||||||
|
y=12
|
||||||
|
counter=1
|
||||||
|
[/item]
|
||||||
|
|
||||||
|
[item]
|
||||||
|
tileset=items.png
|
||||||
|
tile=0
|
||||||
|
x=13
|
||||||
|
y=12
|
||||||
|
counter=2
|
||||||
|
[/item]
|
||||||
|
|
||||||
|
[item]
|
||||||
|
tileset=items.png
|
||||||
|
tile=0
|
||||||
|
x=14
|
||||||
|
y=12
|
||||||
|
counter=3
|
||||||
|
[/item]
|
||||||
|
|
||||||
|
[item]
|
||||||
|
tileset=items.png
|
||||||
|
tile=0
|
||||||
|
x=15
|
||||||
|
y=12
|
||||||
|
counter=4
|
||||||
|
[/item]
|
||||||
|
|
||||||
|
[item]
|
||||||
|
tileset=items.png
|
||||||
|
tile=0
|
||||||
|
x=16
|
||||||
|
y=12
|
||||||
|
counter=5
|
||||||
[/item]
|
[/item]
|
||||||
@@ -182,22 +182,23 @@ void Game::renderDebugInfo()
|
|||||||
|
|
||||||
// Pinta el texto
|
// Pinta el texto
|
||||||
std::string text;
|
std::string text;
|
||||||
int line = (16 * 8) + 3;
|
const int inc = debugText->getCharacterWidth() + 1;
|
||||||
|
int line = 131;
|
||||||
|
|
||||||
text = "status: " + std::to_string(player->status);
|
text = "status: " + std::to_string(player->status);
|
||||||
debugText->write(0, line += 6, text);
|
debugText->write(0, line += inc, text);
|
||||||
|
|
||||||
text = "foot: " + std::to_string((int)player->getLeftFoot().y);
|
text = "foot: " + std::to_string((int)player->getLeftFoot().y);
|
||||||
debugText->write(0, line += 6, text);
|
debugText->write(0, line += inc, text);
|
||||||
|
|
||||||
const int a = (player->lastPosition.y + 16) / 8;
|
const int a = (player->lastPosition.y + 16) / 8;
|
||||||
const int b = player->getLeftFoot().y / 8;
|
const int b = player->getLeftFoot().y / 8;
|
||||||
text = "tile: " + std::to_string(a) + " - " + std::to_string(b);
|
text = "tile: " + std::to_string(a) + " - " + std::to_string(b);
|
||||||
debugText->write(0, line += 6, text);
|
debugText->write(0, line += inc, text);
|
||||||
|
|
||||||
const bool collision = checkPlayerAndEnemies();
|
const bool collision = checkPlayerAndEnemies();
|
||||||
text = "collision: " + std::to_string(collision);
|
text = "collision: " + std::to_string(collision);
|
||||||
debugText->write(0, line += 6, text);
|
debugText->write(0, line += inc, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cambia de habitación
|
// Cambia de habitación
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ Item::Item(item_t item)
|
|||||||
// Inicia variables
|
// Inicia variables
|
||||||
sprite->setSpriteClip(item.tile * 8, 0, 8, 8);
|
sprite->setSpriteClip(item.tile * 8, 0, 8, 8);
|
||||||
collider = sprite->getRect();
|
collider = sprite->getRect();
|
||||||
|
colorChangeSpeed = 4;
|
||||||
|
counter = item.counter * colorChangeSpeed;
|
||||||
|
|
||||||
// Inicializa los colores
|
// Inicializa los colores
|
||||||
color_t c = stringToColor("blue");
|
color_t c = stringToColor("blue");
|
||||||
@@ -54,7 +56,7 @@ Item::~Item()
|
|||||||
// Pinta el objeto en pantalla
|
// Pinta el objeto en pantalla
|
||||||
void Item::render()
|
void Item::render()
|
||||||
{
|
{
|
||||||
const int index = (counter / 2) % color.size();
|
const int index = (counter / colorChangeSpeed) % color.size();
|
||||||
sprite->getTexture()->setColor(color[index].r, color[index].g, color[index].b);
|
sprite->getTexture()->setColor(color[index].r, color[index].g, color[index].b);
|
||||||
sprite->render();
|
sprite->render();
|
||||||
sprite->getTexture()->setColor(255, 255, 255);
|
sprite->getTexture()->setColor(255, 255, 255);
|
||||||
|
|||||||
@@ -22,23 +22,21 @@ struct item_t
|
|||||||
int x; // Posicion del item en pantalla
|
int x; // Posicion del item en pantalla
|
||||||
int y; // Posicion del item en pantalla
|
int y; // Posicion del item en pantalla
|
||||||
int tile; // Numero de tile dentro de la textura
|
int tile; // Numero de tile dentro de la textura
|
||||||
|
int counter; // Contador inicial. Es el que lo hace cambiar de color
|
||||||
};
|
};
|
||||||
|
|
||||||
// Clase Item
|
// Clase Item
|
||||||
class Item
|
class Item
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
LTexture *texture; // Textura con los graficos del objeto
|
LTexture *texture; // Textura con los graficos del objeto
|
||||||
Sprite *sprite; // Sprite del objeto
|
Sprite *sprite; // Sprite del objeto
|
||||||
|
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
std::vector<color_t> color; // Vector con los colores del objeto
|
std::vector<color_t> color; // Vector con los colores del objeto
|
||||||
int counter; // Contador interno
|
int counter; // Contador interno
|
||||||
SDL_Rect collider; // Rectangulo de colisión
|
SDL_Rect collider; // Rectangulo de colisión
|
||||||
|
int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color
|
||||||
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
|
|
||||||
void checkPath();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ bool Room::load(std::string _file_path)
|
|||||||
item_t item;
|
item_t item;
|
||||||
item.asset = asset;
|
item.asset = asset;
|
||||||
item.renderer = renderer;
|
item.renderer = renderer;
|
||||||
|
item.counter = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@@ -349,6 +350,11 @@ bool Room::setItem(item_t *item, std::string var, std::string value)
|
|||||||
item->tileset = value;
|
item->tileset = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (var == "counter")
|
||||||
|
{
|
||||||
|
item->counter = std::stoi(value);
|
||||||
|
}
|
||||||
|
|
||||||
else if (var == "x")
|
else if (var == "x")
|
||||||
{
|
{
|
||||||
item->x = std::stof(value) * BLOCK;
|
item->x = std::stof(value) * BLOCK;
|
||||||
|
|||||||
12
todo.md
12
todo.md
@@ -11,14 +11,14 @@
|
|||||||
(A) Crear tiles que deslicen, (no tipo hielo sino cinta)
|
(A) Crear tiles que deslicen, (no tipo hielo sino cinta)
|
||||||
(A) Tiles animados
|
(A) Tiles animados
|
||||||
(A) Crear ascensores
|
(A) Crear ascensores
|
||||||
(A) Enemigos de diferente tamaño
|
(A) Enemigos de diferente tamaño {cm:2022-08-30}
|
||||||
(A) Color de los items al estilo jet set willy de amstrad, que brillan con dos colores
|
(A) Color de los items al estilo jet set willy de amstrad, que brillan con dos colores
|
||||||
(A) Temporizador de inicio de los items, para poder hacer que brillen a distinto ritmo. Esto es incompatible con lo anterior
|
(A) Temporizador de inicio de los items, para poder hacer que brillen a distinto ritmo. Esto es incompatible con lo anterior {cm:2022-08-30}
|
||||||
|
|
||||||
(A) Poner la info de debug con la tipografia adecuada
|
(A) Poner la info de debug con la tipografia adecuada {cm:2022-08-30}
|
||||||
(A) El modo debug debe pintar la rejilla
|
(A) El modo debug debe pintar la rejilla {cm:2022-08-30}
|
||||||
(A) Tecla F para pasar a pantalla completa
|
(A) Tecla F para pasar a pantalla completa {cm:2022-08-30}
|
||||||
(A) Tecla + y - para cambiar tamaño de ventana. O control F1 a F4
|
(A) Tecla + y - para cambiar tamaño de ventana. O control F1 a F4 {cm:2022-08-30}
|
||||||
|
|
||||||
|
|
||||||
## TEMAS
|
## TEMAS
|
||||||
|
|||||||
Reference in New Issue
Block a user