Correction bug de vitesse
réduction friction pour éviter d'être trop frustrant ajout 2 blocs ajout d'un niveau simplification du code ébauche d'une accélération verticale
This commit is contained in:
parent
12d59b8adc
commit
e2db72b033
Binary file not shown.
After Width: | Height: | Size: 572 B |
Binary file not shown.
After Width: | Height: | Size: 292 B |
|
@ -93,6 +93,10 @@ def place():
|
|||
fenetre.blit(pygame.transform.scale(blackout,(52,52)),(52*b,52*a))
|
||||
if grille[a][b]=="B":
|
||||
fenetre.blit(pygame.transform.scale(damaged,(52,52)),(52*b,52*a))
|
||||
if grille[a][b]=="i":
|
||||
fenetre.blit(pygame.transform.scale(ice,(52,52)),(52*b,52*a))
|
||||
if grille[a][b]=="S":
|
||||
fenetre.blit(pygame.transform.scale(switch,(52,52)),(52*b,52*a))
|
||||
fenetre.blit(level, (10, 10))
|
||||
fenetre.blit(levelgr, (10, 60))
|
||||
fenetre.blit(timeapp, (55, 10))
|
||||
|
@ -116,7 +120,7 @@ fenetre = pygame.display.set_mode((25*52, 14*52))
|
|||
font = pygame.font.SysFont('arial',25,True)
|
||||
|
||||
#Defini la suite des blocs pendant les changements (cliquer sur un 1 va donner un 2...)
|
||||
suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b","B"]
|
||||
suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b","B","i","S"]
|
||||
|
||||
id_level = 0
|
||||
gravityid = 6
|
||||
|
@ -138,7 +142,8 @@ coin = pygame.image.load("editor/img/coin.png").convert_alpha()
|
|||
change = pygame.image.load("editor/img/change.png").convert_alpha()
|
||||
blackout = pygame.image.load("editor/img/blackout.png").convert_alpha()
|
||||
damaged = pygame.image.load("editor/img/damaged.png").convert_alpha()
|
||||
|
||||
switch = pygame.image.load("editor/img/switch.png").convert_alpha()
|
||||
ice = pygame.image.load("editor/img/ice.png").convert_alpha()
|
||||
|
||||
|
||||
load(id_level)
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 572 B |
Binary file not shown.
Before Width: | Height: | Size: 631 B |
Binary file not shown.
After Width: | Height: | Size: 292 B |
|
@ -1,4 +1,4 @@
|
|||
11100111111111111111111111l00000l01BB1BB1BB1BB1BB1100000000100100100100100110000000010000010010010011b0t000001000000001001001111111000100000000000100111111d000100000000000000100000d000100000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e0111100111111111111111111116
|
||||
11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i000000001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e0111100111111111111111111116
|
||||
|
||||
7
|
||||
9
|
|
@ -1 +1 @@
|
|||
11111111111111111111111111000000010000000100000101100000001000000010000010110000000100000001000001011000100010001000100100101100010001000100010010010110001000100010001001001011000100010001000100100101100010001000100010010010110001000100010001001001011000100000001000000100001100010000000100000010000110s01000000010000001000e111111111111111111111111116
|
||||
1ddddddddddd11dddddddddd11dddddddddd00000dd3aaaaai1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16
|
|
@ -0,0 +1 @@
|
|||
111111111111111111111111100000000000010000000i000010000000000010000000i000110000000000010000000i000110000000000000000000i000110000000000000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i000110000000000000000000i00011011100S000S000S00000000110000000000000000000000011s000000000000000000000e111111111111111111111111116
|
|
@ -1,4 +1,4 @@
|
|||
10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117
|
||||
|
||||
5
|
||||
7
|
||||
9
|
|
@ -1 +1 @@
|
|||
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
|
||||
00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1000001t00001100000ddd1dd1BBBBB1ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006
|
|
@ -1,5 +1,5 @@
|
|||
char collide(int x, int y, char level[], char gravity, char block);
|
||||
char collide_solid(int x, int y, char level[], char gravity);
|
||||
char collide(int x, int y, char level[], char block);
|
||||
char collide_solid(int x, int y, char level[]);
|
||||
char collide_dead(int x, int y, char level[]);
|
||||
char collide_point(int x, int y, char level[], char block);
|
||||
char collide_end(int x, int y, char level[], char gravity);
|
||||
char collide_end(int x, int y, char level[]);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#define DEAD_COLLISION 3 //make the collision with the deadly block less effective
|
||||
|
||||
char collide(int x, int y, char level[], char gravity, char block) //detect if player is in a block
|
||||
char collide(int x, int y, char level[], char block) //detect if player is in a block
|
||||
{
|
||||
if((level[(int)(x/16) + (int)((y + PLAYER_HEIGHT)/16) * 25] == block ||
|
||||
level[(int)((x + PLAYER_HEIGHT)/16) + (int)((y + PLAYER_HEIGHT)/16) * 25] == block ||
|
||||
|
@ -12,14 +12,15 @@ char collide(int x, int y, char level[], char gravity, char block) //detect if p
|
|||
return 0;
|
||||
}
|
||||
|
||||
char collide_solid(int x, int y, char level[], char gravity)
|
||||
char collide_solid(int x, int y, char level[])
|
||||
{
|
||||
return collide(x, y, level, gravity, '1')
|
||||
|| collide(x, y, level, gravity, '3')
|
||||
|| collide(x, y, level, gravity, '4')
|
||||
|| collide(x, y, level, gravity, 'c')
|
||||
|| collide(x, y, level, gravity, 'C')
|
||||
|| collide(x, y, level, gravity, 'B');
|
||||
return collide(x, y, level, '1')
|
||||
|| collide(x, y, level, '3')
|
||||
|| collide(x, y, level, '4')
|
||||
|| collide(x, y, level, 'c')
|
||||
|| collide(x, y, level, 'C')
|
||||
|| collide(x, y, level, 'B')
|
||||
|| collide(x, y, level, 'i');
|
||||
}
|
||||
|
||||
char collide_dead(int x, int y, char level[])
|
||||
|
@ -35,7 +36,7 @@ char collide_point(int x, int y, char level[], char block)
|
|||
return (level[(int)(x/16) + (int)(y/16) * 25] == block);
|
||||
}
|
||||
|
||||
char collide_end(int x, int y, char level[], char gravity)
|
||||
char collide_end(int x, int y, char level[])
|
||||
{
|
||||
return collide(x, y, level, gravity, 'e');
|
||||
return collide(x, y, level, 'e');
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ extern bopti_image_t img_key2block; //block link to the key 2
|
|||
extern bopti_image_t img_key2blockvoid; //block link to the key 2
|
||||
extern bopti_image_t img_damaged; //damaged block
|
||||
extern bopti_image_t img_chock; //chock block
|
||||
extern bopti_image_t img_switch; //switch block
|
||||
extern bopti_image_t img_ice; //switch block
|
||||
|
||||
void draw_player(int x, int y)
|
||||
{
|
||||
|
@ -77,6 +79,12 @@ void draw_level(char level[])
|
|||
case 'l': //chock blocks
|
||||
dimage(x,y,&img_chock);
|
||||
break;
|
||||
case 'i': //chock blocks
|
||||
dimage(x,y,&img_ice);
|
||||
break;
|
||||
case 'S': //chock blocks
|
||||
dimage(x,y,&img_switch);
|
||||
break;
|
||||
}
|
||||
x+=16;
|
||||
if(x==16*25)
|
||||
|
|
137
src/main.c
137
src/main.c
|
@ -11,9 +11,11 @@
|
|||
#include "times.h"
|
||||
#include "define.h"
|
||||
|
||||
#define ACCELERATION 0.2
|
||||
#define VACCELERATION 0.2
|
||||
#define HACCELERATION 0.01
|
||||
#define MAX_VSPD 9.0
|
||||
#define FRICTION 0.1
|
||||
//#define MAX_HSPD 3.0
|
||||
#define FRICTION 0.06
|
||||
|
||||
int main(void);
|
||||
|
||||
|
@ -47,7 +49,7 @@ void game(int *id_level, char mode)
|
|||
int disappear = 13;
|
||||
|
||||
float vspd = 1.0;
|
||||
int vert_spd = 1;
|
||||
//float hspd = 2.0;
|
||||
extern bopti_image_t img_speedrun;
|
||||
|
||||
set_level(*id_level, level, &start_x, &start_y, &gravity, &appear, &disappear);
|
||||
|
@ -77,13 +79,15 @@ void game(int *id_level, char mode)
|
|||
dprint(162,173,C_RGB(110,110,110),"sur certains blocs");
|
||||
dprint(315,115,C_RGB(110,110,110),"Bravo !");
|
||||
}
|
||||
dprint(150,100,C_GREEN,"%d",player_x);
|
||||
dprint(150,120,C_GREEN,"%d",player_y);
|
||||
//dprint(150,100,C_GREEN,"%d",player_x);
|
||||
//dprint(150,120,C_GREEN,"%d",player_y);
|
||||
//dprint(150,120,C_GREEN,"%.2j",(int)(hspd*100));
|
||||
dprint(150,120,C_GREEN,"%.2j",(int)(vspd*100));
|
||||
if(!mode) dprint_opt(340, 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, gravity));
|
||||
dprint(320,140,C_GREEN,"%d",collide_solid(player_x-1, player_y, level, gravity));
|
||||
dprint(320,160,C_GREEN,"%d",collide_solid(player_x, player_y+1, level, gravity));
|
||||
dprint(320,180,C_GREEN,"%d",collide_solid(player_x, player_y-1, level, gravity));*/
|
||||
/*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));
|
||||
dprint(320,180,C_GREEN,"%d",collide_solid(player_x, player_y-1, level));*/
|
||||
|
||||
/*dprint(300,100,C_GREEN,"%d",collide_dead(player_x, player_y, level));
|
||||
dprint(300,120,C_GREEN,"%c",level[(int)((player_x-1)/16)+(int)((player_y-1)/16*25)]); //top left
|
||||
|
@ -97,21 +101,55 @@ void game(int *id_level, char mode)
|
|||
//Right collision
|
||||
if(keydown(KEY_RIGHT))
|
||||
{
|
||||
if(!collide_solid(player_x+PLAYER_SPEED, player_y, level, gravity)) player_x+=PLAYER_SPEED;
|
||||
else if(!collide_solid(player_x+1, player_y, level, gravity)) player_x+=1;
|
||||
/*if(!collide_solid(player_x+(int)hspd+1, player_y, level))
|
||||
{
|
||||
if (hspd<MAX_HSPD) hspd+=HACCELERATION;
|
||||
player_x+=(int)hspd;
|
||||
}
|
||||
else if(!collide_solid(player_x+(int)hspd, player_y, level))
|
||||
{
|
||||
hspd-=HACCELERATION;
|
||||
player_x+=(int)hspd;
|
||||
}
|
||||
else if(!collide_solid(player_x+1, player_y, level))
|
||||
{
|
||||
hspd=2.0;
|
||||
player_x+=1;
|
||||
}
|
||||
else if(collide_solid(player_x+1, player_y, level)) hspd=2.0;*/
|
||||
if(!collide_solid(player_x+PLAYER_SPEED, player_y, level)) player_x+=PLAYER_SPEED;
|
||||
else if(!collide_solid(player_x+1, player_y, level)) player_x+=1;
|
||||
if(player_x>=388) player_x=-4;
|
||||
|
||||
}
|
||||
//Left collision
|
||||
else if(keydown(KEY_LEFT))
|
||||
{
|
||||
if(!collide_solid(player_x-PLAYER_SPEED, player_y, level, gravity)) player_x-=PLAYER_SPEED;
|
||||
else if(!collide_solid(player_x-1, player_y, level, gravity)) player_x-=1;
|
||||
/*if(!collide_solid(player_x-(int)hspd-1, player_y, level))
|
||||
{
|
||||
if (hspd<MAX_HSPD) hspd+=HACCELERATION;
|
||||
player_x-=(int)hspd;
|
||||
}
|
||||
else if(!collide_solid(player_x-(int)hspd, player_y, level))
|
||||
{
|
||||
hspd-=HACCELERATION;
|
||||
player_x-=(int)hspd;
|
||||
}
|
||||
else if(!collide_solid(player_x-1, player_y, level))
|
||||
{
|
||||
hspd=2.0;
|
||||
player_x-=1;
|
||||
}
|
||||
else if(collide_solid(player_x-1, player_y, level)) hspd=2.0;*/
|
||||
if(!collide_solid(player_x-PLAYER_SPEED, player_y, level)) player_x-=PLAYER_SPEED;
|
||||
else if(!collide_solid(player_x-1, player_y, level)) player_x-=1;
|
||||
if(player_x<-9) player_x=384;
|
||||
}
|
||||
//else hspd=2.0;
|
||||
//Action key
|
||||
if(keydown(KEY_SHIFT) && !check && ((collide_solid(player_x, player_y-1, level, gravity) && gravity) || (collide_solid(player_x, player_y+1, level, gravity) && !gravity)))
|
||||
if(keydown(KEY_SHIFT) && !check && ((collide_solid(player_x, player_y-1, level) && gravity) || (collide_solid(player_x, player_y+1, level) && !gravity)))
|
||||
{
|
||||
vspd = 1;
|
||||
if(!gravity) gravity=1;
|
||||
else gravity=0;
|
||||
check=1;
|
||||
|
@ -120,21 +158,21 @@ void game(int *id_level, char mode)
|
|||
//Gravity
|
||||
if(!gravity)
|
||||
{
|
||||
if(!collide_solid(player_x, player_y+vert_spd+1, level, gravity))
|
||||
if(!collide_solid(player_x, player_y+(int)vspd+1, level))
|
||||
{
|
||||
if (vspd<MAX_VSPD) vspd+=ACCELERATION;
|
||||
if(collide_solid(player_x+1, player_y, level, gravity)) vspd-=FRICTION;
|
||||
if(collide_solid(player_x-1, player_y, level, gravity)) vspd-=FRICTION;
|
||||
vert_spd = vspd;
|
||||
player_y+=vert_spd;
|
||||
if (vspd<MAX_VSPD) vspd+=VACCELERATION;
|
||||
if(collide_solid(player_x+1, player_y, level)) vspd-=FRICTION;
|
||||
if(collide_solid(player_x-1, player_y, level)) vspd-=FRICTION;
|
||||
if(collide(player_x+1, player_y, level, 'i')) vspd+=0.15;
|
||||
if(collide(player_x-1, player_y, level, 'i')) vspd+=0.15;
|
||||
player_y+=(int)vspd;
|
||||
}
|
||||
else if(!collide_solid(player_x, player_y+vert_spd, level, gravity))
|
||||
else if(!collide_solid(player_x, player_y+(int)vspd, level))
|
||||
{
|
||||
vspd-=ACCELERATION;
|
||||
vert_spd = vspd;
|
||||
player_y+=vert_spd;
|
||||
vspd-=VACCELERATION;
|
||||
player_y+=(int)vspd;
|
||||
}
|
||||
else if(!collide_solid(player_x, player_y+1, level, gravity))
|
||||
else if(!collide_solid(player_x, player_y+1, level))
|
||||
{
|
||||
vspd = 1;
|
||||
player_y+=1;
|
||||
|
@ -143,21 +181,21 @@ void game(int *id_level, char mode)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(!collide_solid(player_x, player_y-vert_spd-1, level, gravity))
|
||||
if(!collide_solid(player_x, player_y-(int)vspd-1, level))
|
||||
{
|
||||
if (vspd<MAX_VSPD) vspd+=ACCELERATION;
|
||||
if(collide_solid(player_x+1, player_y, level, gravity)) vspd-=FRICTION;
|
||||
if(collide_solid(player_x-1, player_y, level, gravity)) vspd-=FRICTION;
|
||||
vert_spd = vspd;
|
||||
player_y-=vert_spd;
|
||||
if (vspd<MAX_VSPD) vspd+=VACCELERATION;
|
||||
if(collide_solid(player_x+1, player_y, level)) vspd-=FRICTION;
|
||||
if(collide_solid(player_x-1, player_y, level)) vspd-=FRICTION;
|
||||
if(collide(player_x+1, player_y, level, 'i')) vspd+=0.15;
|
||||
if(collide(player_x-1, player_y, level, 'i')) vspd+=0.15;
|
||||
player_y-=(int)vspd;
|
||||
}
|
||||
else if(!collide_solid(player_x, player_y-vert_spd, level, gravity))
|
||||
else if(!collide_solid(player_x, player_y-(int)vspd, level))
|
||||
{
|
||||
vspd-=ACCELERATION;
|
||||
vert_spd = vspd;
|
||||
player_y-=vert_spd;
|
||||
vspd-=VACCELERATION;
|
||||
player_y-=(int)vspd;
|
||||
}
|
||||
else if(!collide_solid(player_x, player_y-1, level, gravity))
|
||||
else if(!collide_solid(player_x, player_y-1, level))
|
||||
{
|
||||
vspd = 1;
|
||||
player_y-=1;
|
||||
|
@ -168,6 +206,7 @@ void game(int *id_level, char mode)
|
|||
if(collide_dead(player_x, player_y, level))
|
||||
{
|
||||
vspd = 1;
|
||||
//hspd = 2.0;
|
||||
player_x = start_x;
|
||||
player_y = start_y;
|
||||
if(check_coin) coin--;
|
||||
|
@ -177,7 +216,7 @@ void game(int *id_level, char mode)
|
|||
framelevel = 0;
|
||||
}
|
||||
//Collide with the end
|
||||
if(collide_end(player_x, player_y, level, gravity))
|
||||
if(collide_end(player_x, player_y, level))
|
||||
{
|
||||
if(!mode) *id_level+=1;
|
||||
if(mode)
|
||||
|
@ -191,7 +230,7 @@ void game(int *id_level, char mode)
|
|||
blackout = 0;
|
||||
framelevel=0;
|
||||
}
|
||||
if(collide(player_x, player_y, level, gravity, 'k')) //Collide with key1 = disappearance of blocks
|
||||
if(collide(player_x, player_y, level, 'k')) //Collide with key1 = disappearance of blocks
|
||||
{
|
||||
for (int i = 0; level[i]!='\0' ; i++)
|
||||
{
|
||||
|
@ -199,7 +238,7 @@ void game(int *id_level, char mode)
|
|||
if(level[i]=='k') level[i]='0';
|
||||
}
|
||||
}
|
||||
if(collide(player_x, player_y, level, gravity, 'K')) //Collide with key2 = appearance of blocks
|
||||
if(collide(player_x, player_y, level, 'K')) //Collide with key2 = appearance of blocks
|
||||
{
|
||||
for (int i = 0; level[i]!='\0' ; i++)
|
||||
{
|
||||
|
@ -207,7 +246,7 @@ void game(int *id_level, char mode)
|
|||
if(level[i]=='K') level[i]='0';
|
||||
}
|
||||
}
|
||||
if(collide(player_x, player_y, level, gravity, 't') && !check_coin) //Collide with coin
|
||||
if(collide(player_x, player_y, level, 't') && !check_coin) //Collide with coin
|
||||
{
|
||||
for (int i = 0; level[i]!='\0' ; i++)
|
||||
{
|
||||
|
@ -220,7 +259,7 @@ void game(int *id_level, char mode)
|
|||
check_coin=1;
|
||||
coin++;
|
||||
}
|
||||
if(collide(player_x, player_y, level, gravity, 'b')) //Collide with blackout block
|
||||
if(collide(player_x, player_y, level, 'b')) //Collide with blackout block
|
||||
{
|
||||
for (int i = 0; level[i]!='\0' ; i++)
|
||||
{
|
||||
|
@ -270,19 +309,27 @@ void game(int *id_level, char mode)
|
|||
else gravity=0;
|
||||
}
|
||||
|
||||
if(collide(player_x, player_y+vert_spd+2, level, gravity, 'B') && vspd>=5.0) //Damaged block
|
||||
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';
|
||||
vspd=1.0;
|
||||
}
|
||||
if(collide(player_x, player_y-vert_spd-2, level, gravity, 'B') && vspd>=5.0) //Damaged block
|
||||
if(collide(player_x, player_y-(int)vspd-2, level, 'B') && vspd>=5) //Damaged block
|
||||
{
|
||||
if(level[((player_x)/16)+((player_y-vert_spd-2)/16)*25]=='B') level[((player_x)/16)+((player_y-vert_spd-2)/16)*25]='0';
|
||||
if(level[((player_x+17)/16)+((player_y-vert_spd-2)/16)*25]=='B' && collide_point(player_x+15, player_y-12, level, 'B')) level[((player_x+17)/16)+((player_y-vert_spd-2)/16)*25]='0';
|
||||
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';
|
||||
vspd=1.0;
|
||||
}
|
||||
|
||||
if(level[((player_x+6)/16)+((player_y+6)/16)*25] == 'S') //Switch block
|
||||
{
|
||||
level[((player_x+6)/16)+((player_y+6)/16)*25] = '0';
|
||||
vspd=1.0;
|
||||
if(!gravity) gravity=1;
|
||||
else gravity=0;
|
||||
}
|
||||
|
||||
if((framelevel/FPS)>disappear) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='c') level[i]='0'; //after x seconds blocks disappear
|
||||
if((framelevel/FPS)>appear) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='m') level[i]='C'; //after x seconds blocks appear
|
||||
|
||||
|
|
|
@ -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,"11100111111111111111111111l00000l01BB1BB1BB1BB1BB1100000000100100100100100110000000010000010010010011b0t000001000000001001001111111000100000000000100111111d000100000000000000100000d000100000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e011110011111111111111111111",350);
|
||||
memcpy(level,"11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i000000001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e011110011111111111111111111",350);
|
||||
*appear=7;
|
||||
*disappear=9;
|
||||
break;
|
||||
|
@ -12,7 +12,7 @@ break;
|
|||
case 2:
|
||||
memcpy(level,"10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd1111000101111101111111111111",350);
|
||||
*appear=5;
|
||||
*disappear=7;
|
||||
*disappear=9;
|
||||
break;
|
||||
case 3:
|
||||
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117",350);
|
||||
|
@ -39,13 +39,16 @@ case 8:
|
|||
memcpy(level,"dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa00000001111110000010000000011111100000000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd",350);
|
||||
break;
|
||||
case 9:
|
||||
memcpy(level,"00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e1000000000000",350);
|
||||
memcpy(level,"00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1000001t00001100000ddd1dd1BBBBB1ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e1000000000000",350);
|
||||
break;
|
||||
case 10:
|
||||
memcpy(level,"111111111133111111100011111111111133311111110K01111100000100111111111000111110s000101111111000000011111110K10111111d000000011111110K1011111a001BBBBB111100000101111d0a010000011110000010111a03011d0ddd1111001ddd011d0a0d11000001111000000010a30111100e00111100000k0130ad1111aaaaa1111dd000001031111111ddd1111111111111001111111aaa1111111111111001111111000111",350);
|
||||
break;
|
||||
case 11:
|
||||
memcpy(level,"11111111111111111111111111000000010000000100000101100000001000000010000010110000000100000001000001011000100010001000100100101100010001000100010010010110001000100010001001001011000100010001000100100101100010001000100010010010110001000100010001001001011000100000001000000100001100010000000100000010000110s01000000010000001000e11111111111111111111111111",350);
|
||||
memcpy(level,"1ddddddddddd11dddddddddd11dddddddddd00000dd3aaaaai1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd1",350);
|
||||
break;
|
||||
case 12:
|
||||
memcpy(level,"111111111111111111111111100000000000010000000i000010000000000010000000i000110000000000010000000i000110000000000000000000i000110000000000000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i000110000000000000000000i00011011100S000S000S00000000110000000000000000000000011s000000000000000000000e11111111111111111111111111",350);
|
||||
break;
|
||||
}
|
||||
set_gravity(id_level, gravity);
|
||||
|
@ -98,6 +101,9 @@ break;
|
|||
case 11:
|
||||
*default_gravity = 0;
|
||||
break;
|
||||
case 12:
|
||||
*default_gravity = 0;
|
||||
break;
|
||||
}}
|
||||
void del_level(char level[])
|
||||
{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);}
|
|
@ -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.29,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25};
|
||||
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,7.72};
|
||||
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.29,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25};
|
||||
float level_time[] = {5.81,8.38,5.89,8.68,3.84,3.58,6.81,7.48,10.46,9.25,7.72};
|
||||
time = level_time[id_level-1];
|
||||
|
||||
dimage(160,90,&img_createur);
|
||||
|
|
Loading…
Reference in New Issue