niveau 13 + maj image player

This commit is contained in:
Tituya 2020-08-22 01:24:50 +02:00
parent cc719de188
commit d56e88f40d
12 changed files with 35 additions and 27 deletions

BIN
AST3.g3a

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 656 B

View File

@ -1,4 +1,4 @@
111111111111111111111111100000000c300000000000100000000000c3000000k0K0l1000111ddd1111aaa111111111hh1111ddd1111aaa1ddddd00000110000001110001d000000000110s00001110001d000000000111111001110001d0011d1100110b01001110001d00e000000110S01001110001d000000000110001001110001d011111000100t01000m00001d000000000000001000m00001ddddd00000011111111111111111111111116
111111111111111111111111100000000c300000000000100000000000c3000000K0k0l1000111ddd1111aaa111111111h11111ddd1111aaa1ddddd00000110000001110001d000000000110s00001110001d000000000111111001110001d0011d1100110b01001110001d00e000000110S01001110001d000000000110001001110001d011111000100t01000m00001d000000000000001000m00001ddddd00000011111111111111111111111116
9
13

1
editor/levels/13.lvl Normal file
View File

@ -0,0 +1 @@
11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6

View File

@ -1,4 +1,4 @@
void draw_level(char level[]);
void draw_player(int x, int y);
void draw_player(int x, int y, char type);
void draw_timer(unsigned int frame);
void draw_blackout(int x, int y);

View File

@ -26,10 +26,11 @@ extern bopti_image_t img_appear; //appear block
extern bopti_image_t img_appearblock; //appear block
extern bopti_image_t img_chrono2appear; //appear block
void draw_player(int x, int y)
void draw_player(int x, int y, char type)
{
dimage(x,y,&img_player);
dsubimage(x,y,&img_player, 12*(type-1),0,12,12, DIMAGE_NONE);
}
void draw_level(char level[])
{
dclear(C_WHITE);

View File

@ -29,7 +29,7 @@ int round(float num) //round(2.5) = 3 round(-3.2) = -3
return num < 0 ? num - 0.5 : num + 0.5;
}
void game(int *id_level, char mode)
void game(int *id_level, char mode, char *type)
{
volatile int frame_elapsed = 1;
int timer = timer_setup(TIMER_ANY, 1000000/FPS, callback, &frame_elapsed);
@ -56,9 +56,9 @@ void game(int *id_level, char mode)
float vspd = 1.0;
float hspd = 0;
if(*id_level==10 && *type==1) *type = 2;
else if(*type!=3) *type = 1;
extern bopti_image_t img_speedrun;
set_level(*id_level, level, &start_x, &start_y, &gravity, &appear, &disappear);
player_x = start_x;
player_y = start_y;
@ -74,7 +74,7 @@ void game(int *id_level, char mode)
{
draw_level(level);
if(blackout) draw_blackout(player_x, player_y);
draw_player(player_x,player_y);
draw_player(player_x, player_y, *type);
if(!mode) draw_timer(frame);
else draw_timer(framelevel);
@ -88,7 +88,7 @@ void game(int *id_level, char mode)
}
//dprint(150,100,C_GREEN,"%d",player_x);
//dprint(150,120,C_GREEN,"%d",double_check);
if(!mode) dprint_opt(340, 0, C_RGB(255,190,0), C_BLACK, DTEXT_LEFT, DTEXT_TOP, "Coin : %d", coin);
if(!mode) dprint_opt(330, 0, C_RGB(255,190,0), C_BLACK, DTEXT_LEFT, DTEXT_TOP, "Coin : %d", coin);
/*dprint(320,120,C_GREEN,"%d",collide_solid(player_x+1, player_y, level));
dprint(320,140,C_GREEN,"%d",collide_solid(player_x-1, player_y, level));
dprint(320,160,C_GREEN,"%d",collide_solid(player_x, player_y+1, level));
@ -102,6 +102,7 @@ void game(int *id_level, char mode)
dupdate();
}
pollevent();
if(keydown(KEY_OPTN))
@ -206,6 +207,8 @@ void game(int *id_level, char mode)
blackout = 0;
double_check = 1;
framelevel=0;
if(*id_level==10 && *type==1) *type = 2;
else if(*type!=3) *type = 1;
}
if(collide(player_x, player_y, level, 'k')) //Collide with key1 = disappearance of blocks
{
@ -289,13 +292,13 @@ void game(int *id_level, char mode)
if(collide(player_x, player_y+(int)vspd+2, level, 'B') && vspd>=5) //Damaged block
{
if(level[((player_x)/16)+((player_y+25)/16)*25]=='B') level[((player_x)/16)+((player_y+25)/16)*25]='0';
if(level[((player_x+17)/16)+((player_y+25)/16)*25]=='B' && collide_point(player_x+15, player_y+22, level, 'B')) level[((player_x+17)/16)+((player_y+25)/16)*25]='0';
if(level[((player_x+12)/16)+((player_y+25)/16)*25]=='B' && collide_point(player_x+12, player_y+22, level, 'B')) level[((player_x+12)/16)+((player_y+25)/16)*25]='0';
vspd=1.0;
}
if(collide(player_x, player_y-(int)vspd-2, level, 'B') && vspd>=5) //Damaged block
{
if(level[((player_x)/16)+((player_y-(int)vspd-2)/16)*25]=='B') level[((player_x)/16)+((player_y-(int)vspd-2)/16)*25]='0';
if(level[((player_x+17)/16)+((player_y-(int)vspd-2)/16)*25]=='B' && collide_point(player_x+15, player_y-12, level, 'B')) level[((player_x+17)/16)+((player_y-(int)vspd-2)/16)*25]='0';
if(level[((player_x+12)/16)+((player_y-(int)vspd-2)/16)*25]=='B' && collide_point(player_x+12, player_y-12, level, 'B')) level[((player_x+12)/16)+((player_y-(int)vspd-2)/16)*25]='0';
vspd=1.0;
}
@ -351,7 +354,7 @@ void game(int *id_level, char mode)
clearevents();
dclear(C_WHITE);
draw_level(level);
draw_player(player_x,player_y);
draw_player(player_x,player_y, *type);
dimage(0,0,&img_speedrun);
selected += keydown(KEY_DOWN) - keydown(KEY_UP);
if (selected == 2) selected = 0;
@ -410,7 +413,7 @@ void game(int *id_level, char mode)
{
mode = 1;
death_count = 0;
game(id_level, mode);
game(id_level, mode, type);
}
else main();
}
@ -420,14 +423,15 @@ void game(int *id_level, char mode)
int main(void)
{
char mode = 0;
char valeur = start_menu();
char type = 1;
char valeur = start_menu(&type);
if(!valeur) //normal game (level selection)
{
int id_level = 1;
if(!speed_menu(&id_level))
{
mode = 1;
game(&id_level, mode);
game(&id_level, mode, &type);
}
else main();
}
@ -435,12 +439,12 @@ int main(void)
{
int id_level = 1;
mode = 0;
game(&id_level, mode);
game(&id_level, mode, &type);
}
else if(valeur==2)
{
int id_level = 0;
game(&id_level, mode);
game(&id_level, mode, &type);
}
return 0;
}

View File

@ -4,7 +4,7 @@
#include "setlevel.h"
#include "times.h"
char start_menu()
char start_menu(char *type)
{
extern bopti_image_t img_menu;
char menu_loop = 1;
@ -34,6 +34,7 @@ char start_menu()
if(!buffer) return -1;
}
else buffer = 0;
if(keydown(KEY_5) && keydown(KEY_6)) *type = 3;
while (keydown_any(KEY_UP, KEY_DOWN, 0)) clearevents();
}
return selection;
@ -80,12 +81,6 @@ char speed_menu(int *id_level)
{
draw_time(*id_level);
}
if (keydown(KEY_POWER))
{
*id_level=0;
del_level(level);
return 0;
}
if(keydown_any(KEY_EXIT, KEY_MENU, 0)) {
if(!buffer) return 1;
}

View File

@ -2,7 +2,7 @@
#include <gint/std/string.h>
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, int *appear, int *disappear){
switch(id_level){case 0:
memcpy(level,"111111111111111111111111100000000c300000000000100000000000c3000000k0K0l1000111ddd1111aaa111111111hh1111ddd1111aaa1ddddd00000110000001110001d000000000110s00001110001d000000000111111001110001d0011d1100110b01001110001d00e000000110S01001110001d000000000110001001110001d011111000100t01000m00001d000000000000001000m00001ddddd0000001111111111111111111111111",350);
memcpy(level,"111111111111111111111111100000000c300000000000100000000000c3000000K0k0l1000111ddd1111aaa111111111h11111ddd1111aaa1ddddd00000110000001110001d000000000110s00001110001d000000000111111001110001d0011d1100110b01001110001d00e000000110S01001110001d000000000110001001110001d011111000100t01000m00001d000000000000001000m00001ddddd0000001111111111111111111111111",350);
*appear=9;
*disappear=13;
break;
@ -50,6 +50,9 @@ break;
case 12:
memcpy(level,"1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h0001111111111",350);
break;
case 13:
memcpy(level,"11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd",350);
break;
}
set_gravity(id_level, gravity);
unsigned int x = 0;
@ -104,6 +107,9 @@ break;
case 12:
*default_gravity = 0;
break;
case 13:
*default_gravity = 0;
break;
}}
void del_level(char level[])
{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);}

View File

@ -12,7 +12,7 @@ void check_medal(unsigned int frame_level, int id_level)
{
float time=1.0;
float framefloat = frame_level;
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,6.48,11.94};
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,6.48,11.94,5.68};
time = level_time[id_level-1];
if(frame_level/FPS < (unsigned int)time || (frame_level/FPS <= (unsigned int)time &&
@ -29,7 +29,7 @@ void draw_time(int id_level)
{
dclear(C_WHITE);
float time=1.0;
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,6.48,11.94};
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,6.48,11.94,5.68};
time = level_time[id_level-1];
dimage(160,90,&img_createur);

View File

@ -10,3 +10,4 @@
9.25
6.48
11.94
5.68