diff --git a/assets-cg/img/jitem.png b/assets-cg/img/jitem.png new file mode 100644 index 0000000..d50752a Binary files /dev/null and b/assets-cg/img/jitem.png differ diff --git a/levels.lua b/levels.lua index 9551d5f..6f8b071 100644 --- a/levels.lua +++ b/levels.lua @@ -42,6 +42,44 @@ levels = {[[ -00000000000000000000000000- ---------------------------- ]], +[[ +---------------------------- +-00000000000000000000000000- +-00000000000000000000000000- +000......................00- +-........................00- +-........................00- +000......................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- +-00000000000000000000000000- +-00000000000000000000000000- +---------------------------- +]], +[[ +---------------------------- +-00000000000000000000000000- +-00000000000000000000000000- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00......................00- +-00000000000000000000000000- +-00000000000000000000000000- +---------------------------- +]], } to_write = "" diff --git a/platform.g3a b/platform.g3a index ecdfe91..b714618 100644 Binary files a/platform.g3a and b/platform.g3a differ diff --git a/src/draw.c b/src/draw.c index 34b7a08..b00f272 100644 --- a/src/draw.c +++ b/src/draw.c @@ -19,12 +19,13 @@ void draw_player(int old_x, int old_y, int x, int y) } } -void draw_level(char level[]) +void draw_level(char level[], char upgrades[]) { dclear(BG_COLOR); extern image_t img_ground; //ground texture, 16x16 extern image_t img_spike; //spike texture, 16x16 extern image_t img_elevator; //elevator texture, 16x16 + extern image_t img_jitem; //jump item texture, 16x16 unsigned int i = 0; unsigned int x = 0; unsigned int y = 0; @@ -41,6 +42,10 @@ void draw_level(char level[]) case '^': dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_elevator); break; + case 'j': + if (!upgrades[0]) + dimage(x*2 + DRAW_OFFSET_X, y*2 + DRAW_OFFSET_Y, &img_jitem); + else level[i] = '.'; } x += 8; if (x == 8*LEVEL_WIDTH) @@ -51,3 +56,15 @@ void draw_level(char level[]) i++; } } + +void erase_tile(int x, int y, char level[]) +{ + x = (int)(x/8); + y = (int)(y/8); + level[x + y * 28] = '.'; + x *= 16; + y *= 16; + drect(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, + x + 15 + DRAW_OFFSET_X, + y + 15 + DRAW_OFFSET_Y, BG_COLOR); +} diff --git a/src/draw.h b/src/draw.h index a0e4c57..7945d5d 100644 --- a/src/draw.h +++ b/src/draw.h @@ -1,2 +1,3 @@ void draw_player(int old_x, int old_y, int x, int y); -void draw_level(char level[]); +void draw_level(char level[], char upgrades[]); +void erase_tile(int x, int y, char level[]); diff --git a/src/main.c b/src/main.c index 1f7618a..7c2c674 100644 --- a/src/main.c +++ b/src/main.c @@ -29,7 +29,7 @@ int main(void) int level_id = 1; //start upgrades (mostly bools) char upgrades[] = { - 1 //can jump + 0 //can jump }; //end upgrades char jump_pressed = 0; //avoid holding jump @@ -44,7 +44,7 @@ int main(void) int start_y = 9*8 + 2; int old_x, old_y; set_level(level_id, level); - draw_level(level); + draw_level(level, upgrades); player_x = start_x; player_y = start_y; old_x = player_x + 1; //offset to draw it on first cycle @@ -126,7 +126,7 @@ int main(void) player_x = 207; set_start_pos(&start_x, &start_y, player_x, player_y); set_level(level_id, level); - draw_level(level); + draw_level(level, upgrades); reset_old_pos(&old_x, &old_y); } else if (player_x >= 208) @@ -135,8 +135,14 @@ int main(void) player_x = 12; set_start_pos(&start_x, &start_y, player_x, player_y); set_level(level_id, level); - draw_level(level); + draw_level(level, upgrades); reset_old_pos(&old_x, &old_y); + } + //item get + if (collide(player_x, player_y, level, 'j')) + { + UG_CAN_JUMP = 1; + erase_tile(player_x, player_y, level); } //exit if (keydown(KEY_EXIT)) return 0; diff --git a/transfer.sh b/transfer.sh index d1fc482..6c66e40 100755 --- a/transfer.sh +++ b/transfer.sh @@ -1,4 +1,3 @@ #/bin/#!/usr/bin/env bash -echo cp -cp platform.g3a /media/user/disk/ +cp platform.g3a /media/user/disk/ -v echo done