diff --git a/data/enemies/01.enemy b/data/enemies/01.enemy
deleted file mode 100644
index 9a7fc44..0000000
--- a/data/enemies/01.enemy
+++ /dev/null
@@ -1,10 +0,0 @@
-tileset=enemy01.png
-x=8
-y=8
-vx=0.1
-vy=0
-x1=8
-x2=200
-y1=8
-y2=8
-color=red
\ No newline at end of file
diff --git a/data/room/01.room b/data/room/01.room
index 1f0b360..bb528aa 100644
--- a/data/room/01.room
+++ b/data/room/01.room
@@ -12,6 +12,8 @@ room1.tmx
[enemy]
tileset=enemy01.png
+width=16
+height=16
x=1
y=0
vx=0
@@ -25,6 +27,8 @@ color=red
[enemy]
tileset=enemy01.png
+width=16
+height=16
x=5
y=9
vx=0.6
diff --git a/data/room/02.room b/data/room/02.room
index 0743b32..f3af236 100644
--- a/data/room/02.room
+++ b/data/room/02.room
@@ -2,7 +2,7 @@ name=Test Room 2
bg_color=black
tileset=room1.png
room_up=0
-room_down=0
+room_down=04.room
room_left=01.room
room_right=0
@@ -12,6 +12,8 @@ room2.tmx
[enemy]
tileset=enemy01.png
+width=16
+height=16
x=14
y=0
vx=0
diff --git a/data/room/03.room b/data/room/03.room
new file mode 100644
index 0000000..0743b32
--- /dev/null
+++ b/data/room/03.room
@@ -0,0 +1,31 @@
+name=Test Room 2
+bg_color=black
+tileset=room1.png
+room_up=0
+room_down=0
+room_left=01.room
+room_right=0
+
+[tilemap]
+room2.tmx
+[tilemap-end]
+
+[enemy]
+tileset=enemy01.png
+x=14
+y=0
+vx=0
+vy=1
+x1=14
+y1=0
+x2=14
+y2=13
+color=purple
+[enemy-end]
+
+[item]
+tileset=items.png
+tile=0
+x=19
+y=6
+[item-end]
\ No newline at end of file
diff --git a/data/room/04.room b/data/room/04.room
new file mode 100644
index 0000000..03ca55d
--- /dev/null
+++ b/data/room/04.room
@@ -0,0 +1,78 @@
+name=The Fridge
+bg_color=blue
+tileset=room1.png
+room_up=02.room
+room_down=0
+room_left=0
+room_right=0
+
+[tilemap]
+room4.tmx
+[tilemap-end]
+
+[enemy]
+tileset=enemy02.png
+width=8
+height=16
+x=1
+y=3
+vx=1
+vy=0
+x1=1
+y1=3
+x2=14
+y2=3
+color=purple
+[enemy-end]
+
+[enemy]
+tileset=enemy02.png
+width=8
+height=16
+x=30
+y=7
+vx=-0.8
+vy=0
+x1=10
+y1=7
+x2=30
+y2=7
+color=light_white
+[enemy-end]
+
+[enemy]
+tileset=enemy03.png
+width=8
+height=8
+x=15
+y=12
+vx=0.5
+vy=0
+x1=15
+y1=12
+x2=30
+y2=12
+color=light_purple
+[enemy-end]
+
+[item]
+tileset=items.png
+tile=6
+x=2
+y=2
+[item-end]
+
+[item]
+tileset=items.png
+tile=6
+x=29
+y=5
+[item-end]
+
+
+[item]
+tileset=items.png
+tile=6
+x=21
+y=12
+[item-end]
\ No newline at end of file
diff --git a/data/room/room1.tmx b/data/room/room1.tmx
index aebe041..bc91374 100644
--- a/data/room/room1.tmx
+++ b/data/room/room1.tmx
@@ -16,8 +16,8 @@
21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
21,0,0,0,0,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,0,0,0,0,0,0,0,
21,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,381,21,21,21,21,21,21,21,21,21,21,21,
+21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,
21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21
diff --git a/data/room/room2.tmx b/data/room/room2.tmx
index 55452af..0db6e4f 100644
--- a/data/room/room2.tmx
+++ b/data/room/room2.tmx
@@ -11,14 +11,14 @@
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,
0,0,0,0,0,0,0,0,0,0,0,203,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,23,23,23,23,0,0,0,0,0,0,0,0,0,23,
-23,23,23,23,23,23,0,0,0,203,0,0,0,0,0,0,0,0,0,263,0,0,0,0,203,203,0,0,0,0,0,23,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,0,0,0,0,0,0,0,0,23,
-0,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,263,0,0,0,0,203,203,0,0,0,0,0,23,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,0,0,0,0,0,0,0,0,23,
+23,23,23,23,23,23,0,0,0,203,0,0,0,0,0,0,0,0,0,263,0,0,0,0,203,203,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,263,0,0,0,0,203,203,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,0,0,0,0,0,0,203,203,23,
0,0,0,0,0,0,0,203,203,203,203,203,203,0,0,0,0,0,0,263,0,0,0,0,203,203,0,0,0,0,0,23,
0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,0,0,0,0,0,0,0,0,23,
43,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,263,83,83,83,83,83,83,83,83,83,83,83,83,
-43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43
+43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,0,0,203,43,43,43,43,43,43,43,43,43,43,43,43,43,43
diff --git a/data/room/room3.tmx b/data/room/room3.tmx
new file mode 100644
index 0000000..adb67c9
--- /dev/null
+++ b/data/room/room3.tmx
@@ -0,0 +1,24 @@
+
+
diff --git a/data/room/room4.tmx b/data/room/room4.tmx
new file mode 100644
index 0000000..547b1a5
--- /dev/null
+++ b/data/room/room4.tmx
@@ -0,0 +1,24 @@
+
+
diff --git a/media/enemies/enemy02.png b/media/enemies/enemy02.png
new file mode 100644
index 0000000..efeaf42
Binary files /dev/null and b/media/enemies/enemy02.png differ
diff --git a/media/enemies/enemy03.png b/media/enemies/enemy03.png
new file mode 100644
index 0000000..68a764e
Binary files /dev/null and b/media/enemies/enemy03.png differ
diff --git a/media/items/items.png b/media/items/items.png
index 5899a71..243cc8e 100644
Binary files a/media/items/items.png and b/media/items/items.png differ
diff --git a/source/director.cpp b/source/director.cpp
index db51a0a..2bfe9d0 100644
--- a/source/director.cpp
+++ b/source/director.cpp
@@ -199,10 +199,16 @@ void Director::setFileList()
mAsset->add("/data/config.bin", data, false);
mAsset->add("/data/room/01.room", room);
mAsset->add("/data/room/02.room", room);
+ mAsset->add("/data/room/03.room", room);
+ mAsset->add("/data/room/04.room", room);
mAsset->add("/data/room/room1.tmx", room);
mAsset->add("/data/room/room2.tmx", room);
+ mAsset->add("/data/room/room3.tmx", room);
+ mAsset->add("/data/room/room4.tmx", room);
mAsset->add("/media/tilesets/room1.png", bitmap);
mAsset->add("/media/enemies/enemy01.png", bitmap);
+ mAsset->add("/media/enemies/enemy02.png", bitmap);
+ mAsset->add("/media/enemies/enemy03.png", bitmap);
mAsset->add("/media/player/player01.png", bitmap);
mAsset->add("/media/items/items.png", bitmap);
}
diff --git a/source/enemy.cpp b/source/enemy.cpp
index 9f39d83..ef208d9 100644
--- a/source/enemy.cpp
+++ b/source/enemy.cpp
@@ -28,17 +28,17 @@ Enemy::Enemy(enemy_t enemy)
sprite->setVelY(enemy.vy);
// Inicializa el sprite con el resto de parametros comunes
- sprite->setWidth(16);
- sprite->setHeight(16);
+ sprite->setWidth(enemy.w);
+ sprite->setHeight(enemy.h);
sprite->setCurrentFrame(0);
sprite->setAnimationCounter(0);
sprite->setAnimationNumFrames(0, 4);
sprite->setAnimationSpeed(0, 5);
sprite->setAnimationLoop(0, true);
- sprite->setAnimationFrames(0, 0, 16 * 0, 0, 16, 16);
- sprite->setAnimationFrames(0, 1, 16 * 1, 0, 16, 16);
- sprite->setAnimationFrames(0, 2, 16 * 2, 0, 16, 16);
- sprite->setAnimationFrames(0, 3, 16 * 3, 0, 16, 16);
+ sprite->setAnimationFrames(0, 0, enemy.w * 0, 0, enemy.w, enemy.h);
+ sprite->setAnimationFrames(0, 1, enemy.w * 1, 0, enemy.w, enemy.h);
+ sprite->setAnimationFrames(0, 2, enemy.w * 2, 0, enemy.w, enemy.h);
+ sprite->setAnimationFrames(0, 3, enemy.w * 3, 0, enemy.w, enemy.h);
sprite->setSpriteClip(sprite->getAnimationClip(0, 0));
collider = getRect();
diff --git a/source/enemy.h b/source/enemy.h
index 57a1dd8..048bf40 100644
--- a/source/enemy.h
+++ b/source/enemy.h
@@ -29,6 +29,8 @@ struct enemy_t
SDL_Renderer *renderer; // El renderizador de la ventana
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
std::string tileset; // Fichero con los graficos del enemigo
+ int w; // Anchura del enemigo
+ int h; // Altura del enemigo
float x; // Posición inicial en el eje X
float y; // Posición inicial en el eje Y
float vx; // Velocidad en el eje X
diff --git a/source/room.cpp b/source/room.cpp
index 119e348..a46aeba 100644
--- a/source/room.cpp
+++ b/source/room.cpp
@@ -265,6 +265,14 @@ bool Room::setEnemy(enemy_t *enemy, std::string _var, std::string _value)
{
enemy->tileset = _value;
}
+ else if (_var == "width")
+ {
+ enemy->w = std::stof(_value);
+ }
+ else if (_var == "height")
+ {
+ enemy->h = std::stof(_value);
+ }
else if (_var == "x")
{
enemy->x = std::stof(_value) * BLOCK;
diff --git a/todo.txt b/todo.txt
index a7c6b46..a988808 100644
--- a/todo.txt
+++ b/todo.txt
@@ -5,7 +5,7 @@
[x] Colisiones con los enemigos
[x] Decidir un diseño para qué sucede en caso de morir: Recordar el punto por donde se entró al mapa y la velocidad en el eje X/Y que llevaba el personaje, crear puntos de reaparicion en las habitaciones, etc
En el Jet Set Willy el juego recuerda la posicion y el momento. En las Tres Luces de Glaurung solo la posición. Se va a optar por seguir el diseño del Jet Set Willy
-[ ] Crear tiles que maten
+[x] Crear tiles que maten
[ ] Crear tiles que deslicen, (no tipo hielo sino cinta)
[ ] Tiles animados
[ ] Crear ascensores