appear block + textures
After Width: | Height: | Size: 339 B |
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 348 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 554 B |
|
@ -99,6 +99,8 @@ def place():
|
|||
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))
|
||||
if grille[a][b]=="h":
|
||||
fenetre.blit(pygame.transform.scale(appear,(52,52)),(52*b,52*a))
|
||||
fenetre.blit(level, (10, 10))
|
||||
fenetre.blit(levelgr, (10, 60))
|
||||
fenetre.blit(timeapp, (55, 10))
|
||||
|
@ -122,7 +124,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","i","S"]
|
||||
suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b","B","i","S","h"]
|
||||
|
||||
id_level = 0
|
||||
gravityid = 6
|
||||
|
@ -146,7 +148,7 @@ 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()
|
||||
|
||||
appear = pygame.image.load("editor/img/appear.png").convert_alpha()
|
||||
|
||||
load(id_level)
|
||||
place()
|
||||
|
|
After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 554 B |
|
@ -1,3 +1,4 @@
|
|||
11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i000000001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e0111100111111111111111111116
|
||||
11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i0hhh00001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e0111100111111111111111111116
|
||||
|
||||
7
|
||||
9
|
|
@ -1 +1 @@
|
|||
10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e11d1100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111117
|
||||
10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e11d1100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116
|
|
@ -1 +1 @@
|
|||
111111111111111111111111100000000000010000000i000010000000000010000000i000110000000000010000000i000110000000000000000000i000110000000000000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i000110000000000000000000i00011011100S000S000S00000000110000000000000000000000011s000000000000000000000e111111111111111111111111116
|
||||
111111111111111111111111110000ddd000010000000i0001100000t0000010000000i000110hhh111000010000000i000110000000000000000000i000110000000hhh000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i0001100s0000000000000000i00011011100S000S000S000000001100000000000000000000000110000000000000000000000e111111111111111111111111116
|
|
@ -1,4 +1,3 @@
|
|||
11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10000000001111001dd0d111dd00111100011dd001dt0d10000001dd100011dd001d11d10000001dd100011dd00dd11110011111dd100011dd00000000001dddddd100011dd1111dbd1111ddd111100011ddddddd0dd1d1ddd100000011ddddddd0000d1ddd1e0000011ddddddd1110d1ddd111cccc11dddddddddd0d1ddd111dddd111111111111011111111111116
|
||||
|
||||
12
|
||||
13
|
|
@ -20,7 +20,8 @@ char collide_solid(int x, int y, char level[])
|
|||
|| collide(x, y, level, 'c')
|
||||
|| collide(x, y, level, 'C')
|
||||
|| collide(x, y, level, 'B')
|
||||
|| collide(x, y, level, 'i');
|
||||
|| collide(x, y, level, 'i')
|
||||
|| collide(x, y, level, 'H');
|
||||
}
|
||||
|
||||
char collide_dead(int x, int y, char level[])
|
||||
|
|
|
@ -22,6 +22,9 @@ 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
|
||||
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)
|
||||
{
|
||||
|
@ -85,6 +88,15 @@ void draw_level(char level[])
|
|||
case 'S': //chock blocks
|
||||
dimage(x,y,&img_switch);
|
||||
break;
|
||||
case 'h': //void appear blocks
|
||||
dimage(x,y,&img_appear);
|
||||
break;
|
||||
case 'H': //appear blocks
|
||||
dimage(x,y,&img_appearblock);
|
||||
break;
|
||||
case 'm': //chronoappear blocks
|
||||
dimage(x,y,&img_chrono2appear);
|
||||
break;
|
||||
}
|
||||
x+=16;
|
||||
if(x==16*25)
|
||||
|
|
19
src/main.c
|
@ -293,6 +293,18 @@ void game(int *id_level, char mode)
|
|||
vspd=1.0;
|
||||
}
|
||||
|
||||
if((collide_point(player_x, player_y, level, 'h') || collide_point(player_x + PLAYER_HEIGHT, player_y, level, 'h')) && !gravity) //appear block
|
||||
{
|
||||
if(level[((player_x)/16)+((player_y)/16)*25] == 'h') level[((player_x)/16)+((player_y)/16)*25] = 'H';
|
||||
if(level[((player_x+PLAYER_HEIGHT)/16)+((player_y)/16)*25] == 'h') level[((player_x+PLAYER_HEIGHT)/16)+((player_y)/16)*25] = 'H';
|
||||
player_y += 16;
|
||||
}
|
||||
else if((collide_point(player_x, player_y + PLAYER_HEIGHT, level, 'h') || collide_point(player_x + PLAYER_HEIGHT, player_y + PLAYER_HEIGHT, level, 'h')) && gravity) //appear block
|
||||
{
|
||||
if(level[((player_x)/16)+((player_y)/16)*25] == 'h') level[((player_x)/16)+((player_y)/16)*25] = 'H';
|
||||
if(level[((player_x+PLAYER_HEIGHT)/16)+((player_y)/16)*25] == 'h') level[((player_x+PLAYER_HEIGHT)/16)+((player_y)/16)*25] = 'H';
|
||||
player_y -= 16;
|
||||
}
|
||||
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';
|
||||
|
@ -375,7 +387,7 @@ void game(int *id_level, char mode)
|
|||
int main(void)
|
||||
{
|
||||
char mode = 0;
|
||||
int valeur = start_menu();
|
||||
char valeur = start_menu();
|
||||
if(!valeur) //normal game (level selection)
|
||||
{
|
||||
int id_level = 1;
|
||||
|
@ -392,5 +404,10 @@ int main(void)
|
|||
mode = 0;
|
||||
game(&id_level, mode);
|
||||
}
|
||||
else if(valeur==2)
|
||||
{
|
||||
dprint_opt(198, 90, C_WHITE, C_BLACK, DTEXT_LEFT, DTEXT_TOP, "CONTROLS");
|
||||
getkey();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -11,18 +11,19 @@ char start_menu()
|
|||
char selection = 0;
|
||||
char buffer = 1;
|
||||
char buffer2 = 1;
|
||||
int Y_POS = 90;
|
||||
int Y_POS = 85;
|
||||
while(menu_loop)
|
||||
{
|
||||
clearevents();
|
||||
dclear(C_WHITE);
|
||||
dimage(0,0,&img_menu);
|
||||
selection += keydown(KEY_DOWN) - keydown(KEY_UP);
|
||||
if (selection == 3) selection = 0;
|
||||
else if (selection == -1) selection = 2;
|
||||
if (selection == 4) selection = 0;
|
||||
else if (selection == -1) selection = 3;
|
||||
dtext(32, Y_POS, C_BLACK, "PLAY");
|
||||
dtext(32, Y_POS + 12, C_BLACK, "SPEEDRUN MODE");
|
||||
dtext(32, Y_POS + 24, C_BLACK, "EXIT GAME");
|
||||
dtext(32, Y_POS + 24, C_BLACK, "CONTROL");
|
||||
dtext(32, Y_POS + 36, C_BLACK, "EXIT GAME");
|
||||
dtext(16, Y_POS + (selection * 12), C_BLACK, ">");
|
||||
dupdate();
|
||||
if (keydown_any(KEY_SHIFT, KEY_EXE, 0)) {
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#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,"11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i000000001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e011110011111111111111111111",350);
|
||||
memcpy(level,"11100111111111111111111111l00000l01BB1BB1BB1BB1BB11000000001001001001001001100000000i0000010010010011b0t00000i0hhh00001001001111111000i00000000000100111111d000i000S00S0000000100000d000i00000000000000010000d000000000000000011110000d000030000a0c0m0000110000d000030000a0c0m0000110000d000030000a0c0m0000110s00d00k0300K0a0c0m00e011110011111111111111111111",350);
|
||||
*appear=7;
|
||||
*disappear=9;
|
||||
break;
|
||||
case 1:
|
||||
memcpy(level,"10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116",350);
|
||||
memcpy(level,"10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e11d1100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350);
|
||||
break;
|
||||
case 2:
|
||||
memcpy(level,"10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd1111000101111101111111111111",350);
|
||||
|
@ -15,10 +15,10 @@ memcpy(level,"10001011111011111111111111000101dd10001111dddd11110000101dd1000100
|
|||
*disappear=9;
|
||||
break;
|
||||
case 3:
|
||||
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117",350);
|
||||
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350);
|
||||
break;
|
||||
case 4:
|
||||
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350);
|
||||
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd10000000000d1331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350);
|
||||
*appear=12;
|
||||
*disappear=1;
|
||||
break;
|
||||
|
@ -33,22 +33,22 @@ memcpy(level,"11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10
|
|||
*disappear=13;
|
||||
break;
|
||||
case 7:
|
||||
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000000d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d0000000000000000000d0d00d00001111dd111000000dld00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116",350);
|
||||
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000000d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d0000000000000000000d0d00d00001111dd111000000dld00111111000011111ddd00d0d0011111d000011111ddd00d0d0011111d0s0011111ddd00d0d0011111111001111111100d0d00111116",350);
|
||||
break;
|
||||
case 8:
|
||||
memcpy(level,"dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa00000001111110000010000000011111100000000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd",350);
|
||||
memcpy(level,"dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd",350);
|
||||
break;
|
||||
case 9:
|
||||
memcpy(level,"00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e1000000000000",350);
|
||||
break;
|
||||
case 10:
|
||||
memcpy(level,"111111111133111111100011111111111133311111110K01111100000100111111111000111110s000101111111000000011111110K10111111d000000011111110K1011111a001BBBBB111100000101111d0a010000011110000010111a03011d0ddd1111001ddd011d0a0d11000001111000000010a30111100e00111100000k0130ad1111aaaaa1111dd000001031111111ddd1111111111111001111111aaa1111111111111001111111000111",350);
|
||||
memcpy(level,"11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa1111111111101001111111000111",350);
|
||||
break;
|
||||
case 11:
|
||||
memcpy(level,"1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd1",350);
|
||||
break;
|
||||
case 12:
|
||||
memcpy(level,"111111111111111111111111100000000000010000000i000010000000000010000000i000110000000000010000000i000110000000000000000000i000110000000000000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i000110000000000000000000i00011011100S000S000S00000000110000000000000000000000011s000000000000000000000e11111111111111111111111111",350);
|
||||
memcpy(level,"111111111111111111111111110000ddd000010000000i0001100000t0000010000000i000110hhh111000010000000i000110000000000000000000i000110000000hhh000000000i000110000000000000000000i000110000S000S000S000S00i000110000000000000000000i0001100s0000000000000000i00011011100S000S000S000000001100000000000000000000000110000000000000000000000e11111111111111111111111111",350);
|
||||
break;
|
||||
}
|
||||
set_gravity(id_level, gravity);
|
||||
|
|
|
@ -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,7.72};
|
||||
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};
|
||||
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,7.72};
|
||||
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};
|
||||
time = level_time[id_level-1];
|
||||
|
||||
dimage(160,90,&img_createur);
|
||||
|
|