From 446dc9941f22b331bcd9c3215e35673ea9e83bde Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Thu, 14 Jul 2022 18:09:06 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1adidos=20nuevos=20tama=C3=B1os=20para=20?= =?UTF-8?q?los=20enemigos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/enemies/01.enemy | 10 ----- data/room/01.room | 4 ++ data/room/02.room | 4 +- data/room/03.room | 31 +++++++++++++++ data/room/04.room | 78 ++++++++++++++++++++++++++++++++++++++ data/room/room1.tmx | 4 +- data/room/room2.tmx | 10 ++--- data/room/room3.tmx | 24 ++++++++++++ data/room/room4.tmx | 24 ++++++++++++ media/enemies/enemy02.png | Bin 0 -> 208 bytes media/enemies/enemy03.png | Bin 0 -> 149 bytes media/items/items.png | Bin 127 -> 331 bytes source/director.cpp | 6 +++ source/enemy.cpp | 12 +++--- source/enemy.h | 2 + source/room.cpp | 8 ++++ todo.txt | 2 +- 17 files changed, 194 insertions(+), 25 deletions(-) delete mode 100644 data/enemies/01.enemy create mode 100644 data/room/03.room create mode 100644 data/room/04.room create mode 100644 data/room/room3.tmx create mode 100644 data/room/room4.tmx create mode 100644 media/enemies/enemy02.png create mode 100644 media/enemies/enemy03.png 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 @@ + + + + + +26,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, +26,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, +26,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, +26,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, +26,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, +26,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, +26,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, +26,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, +0,0,0,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,0,232,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,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,0,232,0,0,0,0,0,0,0,0,0, +26,26,26,0,0,0,26,26,26,0,0,0,26,26,26,0,0,0,26,26,26,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381 + + + 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 @@ + + + + + +25,249,249,249,249,249,249,249,249,249,249,249,249,249,249,0,0,0,249,249,249,249,249,249,249,249,249,249,249,249,249,25, +25,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,25, +25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,25, +25,0,270,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25, +25,0,290,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,25, +25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,25, +25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,270,270,270,270,270,0,0,270,270,25, +25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,290,0,0,290,0,0,0,0,0,25, +25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,290,0,0,290,0,0,0,0,0,25, +25,0,0,0,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, +25,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,25, +25,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,25, +25,249,249,249,249,249,249,249,249,249,249,249,249,249,249,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25, +22,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22, +22,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,381,0,0,0,0,0,0,381,0,0,0,0,0,22, +25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25 + + + diff --git a/media/enemies/enemy02.png b/media/enemies/enemy02.png new file mode 100644 index 0000000000000000000000000000000000000000..efeaf427dcfaf2d15742f553b3614a038cb6bdf4 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYe6k~CayA#8@b22Z1oGwon#}JRs zr=gB~2NXCq|F178zbSTT!lHANV|=_a4?egSrRcG#>Fkwe6~+UT<#-sB1iRN?Y4_Am z;TYPf196aG*R`G{-%JehRE9N}^GHuHrt~A~&4Zo-B zJoMTa$b2=y;=xDr4S$1I$6eHZZ%Z09bVZ5PLSM9O82+#0?E&zXa2ntb`! wDYSPBcSQ$XW^uePr0dyYqv)`*ZWc4cG^y30oYR)P1{%%a>FVdQ&MBb@0LAz)aR2}S literal 0 HcmV?d00001 diff --git a/media/items/items.png b/media/items/items.png index 5899a71bfdfd5e907951ff37137b323f6868a2ca..243cc8e767a9fb756f98559203d4af049dc23521 100644 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D%zSv_4GLn`LH zy?SucAq5_WfSVux*GuYmPfip%uK(7@raoS^<-*P#Z|u(96|LCSIQi>lt1|ZOtL<06y<&U&f%eJG%`(?l zzmwhgS?X%y+gCsIpXv*C*QE!)FMF|y+5gl0BlF)ZE;>IctUGpNm+b7>_os(ni!?o; zZv7)&Pbp8MdR}k8*n3#QLCK0 zex5Ji9{#V?&w5c+|5^6gz31aEtWn;4$FP1*d~dk@3w0|Ypyx3`!}|{mab^|mdKI;Vst0Q&SNBme*a 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