I won't do more, have fun.

This commit is contained in:
KikooDX 2020-03-21 10:51:09 +01:00
parent a72c9cba7c
commit 36b95868fa
6 changed files with 100 additions and 16 deletions

View File

@ -3,3 +3,4 @@ void draw_level(char level[], unsigned int step, char polarity, int *start_x,
int *start_y);
void erase_tile(int x, int y, char level[]);
void draw_timer(unsigned int step); //coucou Lephé'
void just_breathe();

View File

@ -1,2 +1,2 @@
void menu(int *level_id, char *disable_up_key, char *game_loop);
void menu_level_selection(int *level_id);
char menu(int *level_id, char *disable_up_key, char *game_loop);
char menu_level_selection(int *level_id);

Binary file not shown.

View File

@ -1,4 +1,5 @@
#include <gint/display.h>
#include <gint/display.h>
#include <gint/keyboard.h>
#include "draw.h"
#define PLAYER_H 11
@ -75,8 +76,8 @@ int *start_y)
break;
case 'S':
erase_tile(x, y, level);
*start_x = x;
*start_y = y;
*start_x = x + 2;
*start_y = y + 4;
break;
case 'E':
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_exit);
@ -108,3 +109,31 @@ void draw_timer(unsigned int step)
{
dprint(0, 0, C_WHITE, C_BLACK, "%u.%02u", step/60, step%60);
}
void just_breathe(unsigned int step)
{
int x = 0;
int y = 0;
int xspd = 1;
int yspd = 1;
while (!keydown_any(KEY_MENU, KEY_EXIT, 0))
{
dclear(0);
dtext(x, y, "Thank you for playing", C_WHITE, C_BLACK);
dprint(x, y + 12, C_WHITE, C_BLACK, "%u.%02u", step/60, step%60);
dupdate();
x += xspd;
y += yspd;
if (x == 236 || !x) xspd = 0 - xspd;
if (y == 203 || !y) yspd = 0 - yspd;
clearevents();
}
{
unsigned char timeout = 50;
while(timeout)
{
timeout--;
dclear(0);
}
}
}

View File

@ -214,19 +214,36 @@ int main(void)
if (collide(player_x, player_y, level, 'E'))
{
level_id++;
set_level(level_id, level);
DRAW_LEVEL();
player_x = start_x;
player_y = start_y;
polarity = 0;
vspd = 0;
if (level_id == 5059)
{
just_breathe(step);
return 0;
}
else
{
set_level(level_id, level);
DRAW_LEVEL();
player_x = start_x;
player_y = start_y;
polarity = 0;
vspd = 0;
}
}
//menu
if (keydown_any(KEY_EXIT, KEY_MENU, 0))
{
if (!exit_buffer)
{
menu(&level_id, &enable_up_key, &game_loop);
char reload = menu(&level_id, &enable_up_key, &game_loop);
if (reload)
{
set_level(level_id, level);
DRAW_LEVEL();
player_x = start_x;
player_y = start_y;
polarity = 0;
vspd = 0;
}
exit_buffer = 1;
}
}

View File

@ -2,10 +2,13 @@
#include <gint/keyboard.h>
#include "menu.h"
#define Y_POS 84
#define LAST_LEVEL 5058
void menu(int *level_id, char *enable_up_key, char *game_loop)
#define Y_POS 88
char menu(int *level_id, char *enable_up_key, char *game_loop)
{
char reload = 0;
char selected = 0;
char menu_loop = 1;
char exit_buffer = 1;
@ -33,7 +36,8 @@ void menu(int *level_id, char *enable_up_key, char *game_loop)
menu_loop = 0;
break;
case 1:
menu_level_selection(level_id);
reload = menu_level_selection(level_id);
menu_loop = 0;
break;
case 2:
*enable_up_key = !*enable_up_key;
@ -50,8 +54,41 @@ void menu(int *level_id, char *enable_up_key, char *game_loop)
dupdate();
while (keydown_any(KEY_UP, KEY_DOWN, KEY_SHIFT, KEY_EXE, 0)) clearevents();
}
return reload;
}
void menu_level_selection(int *level_id)
char menu_level_selection(int *level_id)
{
char confirm_buffer = 1;
char menu_loop = 1;
int initial_lid = *level_id;
while (menu_loop) {
dclear(0);
clearevents();
*level_id += keydown(KEY_RIGHT) - keydown(KEY_LEFT);
if (*level_id > LAST_LEVEL) *level_id = 5050;
else if (*level_id < 5050) *level_id = LAST_LEVEL;
dprint(32, Y_POS + 20, C_WHITE, C_BLACK, "> %02d <", *level_id - 5049);
if (keydown_any(KEY_SHIFT, KEY_EXE, 0))
{
if (!confirm_buffer)
{
menu_loop = 0;
}
}
else confirm_buffer = 0;
if (keydown_any(KEY_EXIT, KEY_MENU, 0))
{
*level_id = initial_lid;
menu_loop = 0;
}
dupdate();
while (keydown_any(KEY_RIGHT, KEY_LEFT, KEY_SHIFT, KEY_EXE,
KEY_EXIT, KEY_MENU, 0))
{
clearevents();
}
}
dclear(0);
return initial_lid != *level_id;
}