From 65f5f04f138fe9e6a4b00efa9e87fbadfe1bcf04 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Thu, 20 Feb 2020 12:22:38 +0100 Subject: [PATCH] Coins, starting a new layout from ground up (WIP) --- assets-cg/img/coin.png | Bin 0 -> 175 bytes include/draw.h | 2 +- include/levels.h | 2 +- levels.lua | 138 +++++++++++++++++++++-------------------- platform.g3a | Bin 67732 -> 68428 bytes src/draw.c | 22 +++++-- src/main.c | 33 ++++++---- 7 files changed, 114 insertions(+), 83 deletions(-) create mode 100644 assets-cg/img/coin.png diff --git a/assets-cg/img/coin.png b/assets-cg/img/coin.png new file mode 100644 index 0000000000000000000000000000000000000000..a3806664eba46694f16534a4323729e809fddbb8 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|GCf@!Lo9le z6C^SYbe#G5-|eq`;4GKCLthU{9?5buZ(*IiBS@JLkufw&D^8$PH6xbe^IAr%*gqc|#km5d)apWaaPGGBl-=h|n!XUW{28IkP W6`86_j}HMYW$<+Mb6Mw<&;$VZA3W;- literal 0 HcmV?d00001 diff --git a/include/draw.h b/include/draw.h index 0d98305..e5f5fa9 100644 --- a/include/draw.h +++ b/include/draw.h @@ -1,5 +1,5 @@ void draw_player(int old_x, int old_y, int x, int y); -void draw_level(char level[], char upgrades[], unsigned int step); +void draw_level(char level[], char upgrades[], char erase_coin); void draw_level_anims(char level[], char upgrades[], unsigned int step); void erase_tile(int x, int y, char level[]); void draw_upgrade_message(char item); diff --git a/include/levels.h b/include/levels.h index 04d8536..e7d627a 100644 --- a/include/levels.h +++ b/include/levels.h @@ -1 +1 @@ -void set_level(int level_id, char level[]); +void set_level(int level_id, char level[], unsigned int *coin_id); diff --git a/levels.lua b/levels.lua index 4af23f5..f763726 100644 --- a/levels.lua +++ b/levels.lua @@ -9,97 +9,97 @@ -- -- level id format : YYXX with YY and XX being the Y and X position on the map -levels = {[5049] = [[ ----------------------------- --00000000000000000000000000- --00000000000000000000000000- --00......................00- --00..00000000000000..00^.00- --00..000000000000v...00^.00- --00..000000000000..0000^.00- --00.00000000000v...0000^.00- --00..0000000000..000000^.00- --00..00000000v...000000^.00- --00..00000000..00000000^...- --000.000000v...00000000^...- --000.........0000000000^...- --000....j....00000000000000- --00000000000000000000000000- --00000000000000000000000000- ----------------------------- -]], -[5050] = [[ +levels = {[5050] = [[ ---------------------------- -0000000....000000000000000- -0000000....000000000000000- --00000000....00000000000000- --00000000..................- +-00000000....00000.........- -00000000..................- +-00000000...........0000000- -0000000000.....00000000000- -0000000000.....00000000000- --00000000..........00000000- --00000.............00000000- +-00000000...........0000000- +-00000..............0000000- -.............0000000000000- -..........0000000000000000- --.......0000000000000000000- +-00000000000000000000000000- -00000000000000000000000000- -00000000000000000000000000- -00000000000000000000000000- ---------------------------- ]], -[5051] = [[ +[5049] = [[ ---------------------------- -00000000000000000000000000- -00000000000000000000000000- -00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- -........................00- -........................00- +-00........................- +-000.......................- +-000.0000000000000000000000- +-..........0000000000000000- +-00000000..0000000000000000- +-00000000..0000000000000000- +---------------------------- +]], +[5048] = [[ +---------------------------- +-00000000000000000000000000- +-00000000000000000000000000- -00......................00- -00......................00- --00.....0...0.000.000....00- --00.....0...0..0..0.0....00- --00.....0.0.0..0..000....00- --00.....0.0.0..0..0......00- --00......0.0..000.0....vv00- --00....................vv00- --00~~~~~~~~~~~~~~~~~~~~~~00- +-00......................00- +-00......................00- +-00......................00- +-00........................- +-00........................- +-00.................0000000- +-00.................0000000- +-00.................0000000- +-00.................00..c..- +-000000000000000000000.0000- +-000000000000000000000.0000- +---------------------------- +]], +[5148] = [[ +---------------------------- +-000000000000000000000.0000- +-000000000000000000000.....- +-00..................000000- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00000000000000000000000000- -00000000000000000000000000- ---------------------------- ]], -[4950] = [[ +[5149] = [[ ---------------------------- --00000000000000000000000000- --00000000000000000000000000- --....................000000- --....................000000- --00^...................0000- --00^.......vv0v.........000- --00^.....0v0000vv.......000- --00^.....v00000000.......00- --00^.....v0000000v.......00- --000v0vvv000000000vvvv0..v0- --000000000......vv0vv0vv.00- --0000000.................v0- --0000000......v..........00- --0000000....000000vvv0v0v00- --0000000....000000000000000- ----------------------------- -]], -[4949] = [[ ----------------------------- --00000000000000000000000000- --00000000000000000000000000- --00........................- --00........................- --00......................00- --00......00......00......00- --00......00......00......00- +-00000000..0000000000000000- +-...00000..0000000000000000- -00......................00- -00......................00- --00......0........0......00- --00.......00000000.......00- --00......................00- --00v.....................00- +-0000000000000000..vv000000- +-0000000000000000...0000000- +-00000......0000.......0000- +-000.........00....00...000- +-00^.........00.........000- +-00^.j................00000- +-00^....................000- +-00^.........0^.........000- +-0000^.......0^.......00000- -00000000000000000000000000- -00000000000000000000000000- ---------------------------- @@ -128,15 +128,21 @@ levels = {[5049] = [[ to_write = "" --remove all "\n" from level strings +current = 0 for i, v in pairs(levels) do v = string.gsub(v, "\n", "") - to_write = to_write.." case "..i..":\n memcpy(level, \""..v.."\", "..#v..");\n break;\n" + to_write = to_write.." case "..i..":\n memcpy(level, \""..v.."\", "..#v..");\n" + if string.find(v, 'c') then + to_write = to_write.." *coin_id = "..current..";\n" + end + to_write = to_write.." break;\n" + current = current + 1 end --finish and write to_write = [[#include "levels.h" #include -void set_level(int level_id, char *level) { +void set_level(int level_id, char level[], unsigned int *coin_id) { switch (level_id) { ]]..to_write.." }\n}\n" diff --git a/platform.g3a b/platform.g3a index 6d4b394862b167d2e2cdfab5e2082d5b4aa5dbf0..22902640af2361c0cca3001613b2a3b60681d08e 100644 GIT binary patch delta 4871 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 diff --git a/src/draw.c b/src/draw.c index 6d27df6..5c0224a 100644 --- a/src/draw.c +++ b/src/draw.c @@ -13,6 +13,7 @@ extern image_t img_spike; //spike texture, 16x16 extern image_t img_ice; //ice texture, 16x8 extern image_t img_glue; //glue texture, 16x8 extern image_t img_jitem; //jump item texture, 16x16 +extern image_t img_coin; //coin item texture, 16x16 //animated textures extern image_t img_elevator1, img_elevator2, img_elevator3, img_elevator4; extern image_t img_elevator5, img_elevator6, img_elevator7, img_elevator8; @@ -35,7 +36,7 @@ void draw_player(int old_x, int old_y, int x, int y) } } -void draw_level(char level[], char upgrades[], unsigned int step) +void draw_level(char level[], char upgrades[], char erase_coin) { dclear(BG_COLOR); unsigned int i = 0; @@ -59,6 +60,12 @@ void draw_level(char level[], char upgrades[], unsigned int step) dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground); dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_glue); break; + case 'j': + if (upgrades[0]) erase_tile(x, y, level); + break; + case 'c': + if (erase_coin) erase_tile(x, y, level); + break; } x += 16; if (x == 16*LEVEL_WIDTH) @@ -83,7 +90,6 @@ void draw_level_anims(char level[], char upgrades[], unsigned int step) dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, ani_elevator[(step/2)%16]); break; case 'j': - if (!upgrades[0]) { unsigned int buffer = (step/20)%4 - 1; if (buffer == 2) buffer = 0; @@ -91,7 +97,15 @@ void draw_level_anims(char level[], char upgrades[], unsigned int step) y + 15 + DRAW_OFFSET_Y, BG_COLOR); dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y + buffer, &img_jitem); } - else level[i] = '.'; + break; + case 'c': + { + unsigned int buffer = (step/20)%4 - 1; + if (buffer == 2) buffer = 0; + drect(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, x + 15 + DRAW_OFFSET_X, + y + 15 + DRAW_OFFSET_Y, BG_COLOR); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y + buffer, &img_coin); + } break; } x += 16; @@ -123,7 +137,7 @@ void draw_upgrade_message(char item) case 'j': { extern image_t img_jitem_popup; - dimage(96 + DRAW_OFFSET_X, 160 + DRAW_OFFSET_Y, &img_jitem_popup); + dimage(112 + DRAW_OFFSET_X, 88 + DRAW_OFFSET_Y, &img_jitem_popup); break; } } diff --git a/src/main.c b/src/main.c index dce625b..35a6685 100644 --- a/src/main.c +++ b/src/main.c @@ -16,6 +16,8 @@ #define JUMP_SCALE 12 #define JUMP_REDUCTION -0.41 #define UG_CAN_JUMP upgrades[0] +char coins[1]; +#define DRAW_LEVEL() draw_level(level, upgrades, coins[coin_id]) void dupdate(); //gint function //test if jump pressed @@ -35,9 +37,11 @@ int main(void) int level_id = 5050; //START UPGRADES char upgrades[] = { - 0 //can jump + 0 //jump }; //END UPGRADES + unsigned int coin_id = 0; + unsigned int coin_count = 0; char jump_pressed = 1; //avoid holding jump char jump_buffer = 0; //jump buffer, last 3 frames unsigned int jump_hold = 0; //number of consecutive frames jump has been held @@ -53,8 +57,8 @@ int main(void) int old_x, old_y; char spawn_buffer = 0; unsigned int step = 0; - set_level(level_id, level); - draw_level(level, upgrades, step); + set_level(level_id, level, &coin_id); + DRAW_LEVEL(); draw_level_anims(level, upgrades, step); player_x = start_x; player_y = start_y; @@ -190,8 +194,8 @@ int main(void) level_id -= 1; player_x = 416 + (move * (int) hspd); set_start_pos(&start_x, &start_y, player_x, player_y); - set_level(level_id, level); - draw_level(level, upgrades, step); + set_level(level_id, level, &coin_id); + DRAW_LEVEL(); reset_old_pos(&old_x, &old_y); } else if (player_x >= 416) @@ -199,8 +203,8 @@ int main(void) level_id += 1; player_x = 22 + (move * (int) hspd); set_start_pos(&start_x, &start_y, player_x, player_y); - set_level(level_id, level); - draw_level(level, upgrades, step); + set_level(level_id, level, &coin_id); + DRAW_LEVEL(); reset_old_pos(&old_x, &old_y); } else if (player_y <= 8) @@ -208,8 +212,8 @@ int main(void) level_id -= 100; player_y = 246; spawn_buffer = 1; - set_level(level_id, level); - draw_level(level, upgrades, step); + set_level(level_id, level, &coin_id); + DRAW_LEVEL(); reset_old_pos(&old_x, &old_y); } else if (player_y >= 248) @@ -217,8 +221,8 @@ int main(void) level_id += 100; player_y = 10; set_start_pos(&start_x, &start_y, player_x, player_y); - set_level(level_id, level); - draw_level(level, upgrades, step); + set_level(level_id, level, &coin_id); + DRAW_LEVEL(); reset_old_pos(&old_x, &old_y); } //item get @@ -228,6 +232,13 @@ int main(void) erase_tile(player_x, player_y, level); draw_upgrade_message('j'); } + //coin get + if (collide(player_x, player_y, level, 'c')) + { + coins[coin_id] = 1; + coin_count++; + erase_tile(player_x, player_y, level); + } //exit if (keydown(KEY_EXIT)) return 0; }