From e6b6e43d274e7bfe469514758b8d521b5e12647b Mon Sep 17 00:00:00 2001 From: Massena Date: Mon, 19 Apr 2021 14:48:36 +0200 Subject: [PATCH] i fucking hate programming --- CMakeLists.txt | 8 +++--- README.md | 4 +++ assets-cg/img/end.png | Bin 191 -> 203 bytes assets-cg/img/spike.png | Bin 169 -> 177 bytes include/main.h | 9 ++++--- levels/level1.kble | Bin 0 -> 262 bytes levels/level2.kble | Bin 0 -> 262 bytes levels/tileset.png | Bin 0 -> 238 bytes src/levels.c | 57 +++++++++++++++++++++++++++------------- src/main.c | 43 +++++++++++++++++++----------- 10 files changed, 80 insertions(+), 41 deletions(-) create mode 100644 levels/level1.kble create mode 100644 levels/level2.kble create mode 100644 levels/tileset.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 380d150..f5b9016 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,9 +38,9 @@ target_compile_options(myaddin PRIVATE -Wall -Wextra -Os) target_link_libraries(myaddin Gint::Gint) if("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G) - generate_g1a(TARGET myaddin OUTPUT "ZkuwL.g1a" - NAME "ZkuwL" ICON assets-fx/icon.png) + generate_g1a(TARGET myaddin OUTPUT "ZkwuL.g1a" + NAME "ZkwuL" ICON assets-fx/icon.png) elseif("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50) - generate_g3a(TARGET myaddin OUTPUT "ZkuwL.g3a" - NAME "ZkuwL" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png) + generate_g3a(TARGET myaddin OUTPUT "ZkwuL.g3a" + NAME "ZkwuL" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png) endif() diff --git a/README.md b/README.md index 48a3009..e43de89 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,7 @@ ZkwuL is a game made with [gint](https://gitea.planet-casio.com/Lephenixnoir/gint) It's a remake of my [first game](https://massena.itch.io/zkwul-the-game) made with GameMaker Studio 2 + +# Softwares used + +I use [SLE](https://sr.ht/~kikoodx/sle/) and [kble2lua](https://gitea.planet-casio.com/KikooDX/kble2lua) \ No newline at end of file diff --git a/assets-cg/img/end.png b/assets-cg/img/end.png index 6af4e868d0a35ad33a540fc2be4bcf54153af4cd..44fcf16cd2372748715b35082c036591bf041a2d 100644 GIT binary patch delta 162 zcmV;T0A2sT0m}i9F@J?gL_t(YiS3oK4uBvGL?6cA5_dkBUHmYex>TVAO$@{vo9jV) zrMN8x0Q?dU3P^i!cX6Gkd8>~AWDI*35TPG3}9g(9P%&#Q^$zLC!~&CK$Q8zA_mX_ddLwQLxf_6T!7cyAs+*y9vEnV zEf0{JhN+$Qi86Os!~n6S2YTs*OCP1>KS|~f`4|8Ix&IpKW)JySHvj+t07*qoM6N<$ Ef-2=flK=n! diff --git a/assets-cg/img/spike.png b/assets-cg/img/spike.png index 93a56dded228a700edc68add8144317ea9944ecc..022eacbf22b3e371fbe5adfe5d1f69445631f92b 100644 GIT binary patch delta 136 zcmV;30C)eX0kHv)F@I}GL_t(2k)4sz3BVu>1ux=4b^@1hN|$f~J5u@;u@Ry6{uJ^q z@ZX4C3DsG*$`80I!DW71r~GMC7IRlDL%;zhPs*K qD=jPeL}Og()F8fT->~t!=?5=?FcELJr!4>g002ovPDHLkU;%=ChdK)Y delta 127 zcmV-_0D%9o0jU9yF?eH1L_t(2k)4sj4Zt7_122e)G6734B}*^?E2WS2K`B86KO-xb z*wS(`ZV7LVa{~x$N&s3;{l=v?w4BgVe-k2L4*>uzwWof_?hjh(lpGmSSm-b%@79_3 hh!Ala#c6(VE?Ptt;8`u^UwqtvSjHGlY~O1LC6&N%v{XWdMZryJe}(!kE<%K g!KO#BqHJ@to*ZxWmf_=gI%f?YXg)5^-THq%Y>PSo@&Et; literal 0 HcmV?d00001 diff --git a/levels/level2.kble b/levels/level2.kble new file mode 100644 index 0000000000000000000000000000000000000000..dbe7d274c383f8ffcfa1a51adc1b07cbcdf6425c GIT binary patch literal 262 zcmZWk0TRF<2qNbL`u}T(5VzZgoh2a_7B+T$ffuSk0WOgR7GNfZJ&R1jR4VHwPh!i! lHtuiqc%H?r|Mwao$Px#s7XXYR5*>jlF~%w!2S5D)`z z^tq4+qN>{42LP~;_p()xPl_19Et3a+w&yMo`JK33KUUxkT~I1v_0R=9C9Edeu zy#?A{LaVVHiuPsJ@;d|Dnk|FDdp|>3k1Mvom^r=GBZsu2gc{i3F$)aL-r#bIMki%T o{-dbX(u0@4m<67Rx{L?<1t#xWM&74Oga7~l07*qoM6N<$f~xag{Qv*} literal 0 HcmV?d00001 diff --git a/src/levels.c b/src/levels.c index 040adee..57fc33d 100644 --- a/src/levels.c +++ b/src/levels.c @@ -1,20 +1,41 @@ #include "main.h" -const tile_t level[16][16] = { - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {1, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 1}, - {1, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1}, - {1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1}, - {1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 1}, - {1, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1}, - {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - {1, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 1}, - {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} -}; +const tile_t level[LEVEL_NB][LEVEL_SIZE][LEVEL_SIZE] = { + { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 2, + 2, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 2, + 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 2, + 2, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 4, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + }, + + { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 2, 2, 2, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 2, + 2, 0, 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 0, 2, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, + 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, + 2, 0, 4, 0, 4, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 4, 0, 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, + 2, 0, 4, 0, 4, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 2, 2, 2, 2 + } +}; \ No newline at end of file diff --git a/src/main.c b/src/main.c index d2f596f..e5ee7c1 100644 --- a/src/main.c +++ b/src/main.c @@ -50,7 +50,8 @@ int collide(Vec2 pos, int h, tile_t obj, tile_t level[LEVEL_SIZE][LEVEL_SIZE]) { return 0; } -Player level_reset(Player player) { +Player level_reset(Player player, tile_t level[LEVEL_SIZE][LEVEL_SIZE]) { + player.spawn = search(1, level); player.pos = player.spawn; return player; } @@ -61,18 +62,19 @@ int main(void) { extern bopti_image_t img_spike; extern bopti_image_t img_end; - extern tile_t level[LEVEL_SIZE][LEVEL_SIZE]; + extern tile_t level[LEVEL_NB][LEVEL_SIZE][LEVEL_SIZE]; int running = 1; int timer = 0; /* lol */ + int lvl = 0; /* player */ Player player = { .pos = {0, 0}, .spawn = {0, 0} }; - player.spawn = search(2, level); - player = level_reset(player); + + player = level_reset(player, level[lvl]); /* main loop */ while(running) { @@ -82,20 +84,21 @@ int main(void) { /* drawing the level */ for(int m = 0; m < LEVEL_SIZE; ++m) { for(int n = 0; n < LEVEL_SIZE; ++n) { - switch(level[n][m]) { - case 1: + switch(level[lvl][n][m]) { + case 2: /* walls */ dimage(m * TILE_SIZE, n * TILE_SIZE, &img_wall); break; case 3: - /* spikes */ - dimage(m * TILE_SIZE, n * TILE_SIZE, &img_spike); - break; - case 4: /* end ring */ dsubimage(m * TILE_SIZE, n * TILE_SIZE, &img_end, ((timer / 30) % 4) * 12, 0, 12, 12, 0); break; + case 4: + /* spikes */ + dimage(m * TILE_SIZE, n * TILE_SIZE, &img_spike); + break; + } } } @@ -112,23 +115,33 @@ int main(void) { clearevents(); /* trying to move the player >w< */ - if(!collide((Vec2){player.pos.x + mov.x, player.pos.y}, 0, 1, level)) { + if(!collide((Vec2){player.pos.x + mov.x, player.pos.y}, 1, 2, level[lvl])) { player.pos.x += mov.x; } - if(!collide((Vec2){player.pos.x, player.pos.y + mov.y}, 0, 1, level)) { + if(!collide((Vec2){player.pos.x, player.pos.y + mov.y}, 1, 2, level[lvl])) { player.pos.y += mov.y; } /* d i e */ - if(collide(player.pos, 2, 3, level)) { - player = level_reset(player); + if(collide(player.pos, 2, 4, level[lvl])) { + player = level_reset(player, level[lvl]); } - if(keydown(KEY_EXIT) || collide(player.pos, 0, 4, level)) { + if(keydown(KEY_EXIT)) { running = 0; } + if(collide(player.pos, 0, 3, level[lvl])) { + if(lvl != LEVEL_NB - 1) { + player = level_reset(player, level[lvl]); + ++lvl; + } + else { + running = 0; + } + } + ++timer; /* lol^2 */ }