From f0cb3509b4c51083cc3560e5536afd58403e4e11 Mon Sep 17 00:00:00 2001 From: Tituya Date: Sat, 18 Jul 2020 16:59:05 +0200 Subject: [PATCH] =?UTF-8?q?mise=20=C3=A0=20jour=20editeur=20+=20carte=20de?= =?UTF-8?q?=20tuto=20+=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AST3.g3a | Bin 59920 -> 60116 bytes README.md | 14 ++++++- build.sh | 7 ++++ compile_level.py | 44 ++++++++++++++++++++ editor.sh | 3 ++ AST3generator.py => editor/AST3generator.py | 5 ++- editor/levels/1.lvl | 2 +- editor/levels/3.lvl | 2 +- src/main.c | 10 ++++- src/setlevel.c | 11 +++-- 10 files changed, 86 insertions(+), 12 deletions(-) create mode 100755 build.sh create mode 100644 compile_level.py create mode 100755 editor.sh rename AST3generator.py => editor/AST3generator.py (96%) diff --git a/AST3.g3a b/AST3.g3a index 526d0bfad3192df5b2bf1aafe33e3f11d1e684af..bd9eb1d916b0c64b5fef539d4cd54df978b06f07 100644 GIT binary patch delta 4432 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 QM@fP(_|qB*{wK-*06O1@)Bpeg delta 4153 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\nvoid set_level(int id_level, char level[], int *startx, \ +int *starty, char *gravity, char check_coin){\nswitch(id_level){") +while 1: + try: + lv = open(f"editor/levels/{ids}.lvl","r") + ide = lv.read() + save.write(f"case {ids}:\nmemcpy(level,\"{ide[:-1]}\",350);\nbreak;\n") + ids+=1 + except FileNotFoundError: + lv.close() + break +save.write("}if(check_coin) for (int i = 0; level[i]!='\\0' ; i++) if(level[i]=='t') level[i]='0';\n\ +set_gravity(id_level, gravity);\n\ +unsigned int x = 0;\n\ +unsigned int y = 0;\n\ +unsigned int i = 0;\n\ +while (i!=strlen(level)){\n\ +switch(level[i]){\n\ +case 's':\n\ +*startx = x;\n\ +*starty = y;\n\ +break;}\n\ +x+=16;\n\ +if(x==16*25){x=0;\n\ +y+=16;}i++;}}\n\ +void set_gravity(int id_level, char *default_gravity){\n\ +switch(id_level){") +ids = 1 +gravity = 0 +while 1: + try: + lv = open(f"editor/levels/{ids}.lvl","r") + ide = lv.read() + if ide[350]=="6": gravity=0 + else: gravity = 1 + save.write(f"case {ids}:\n*default_gravity = {gravity};\nbreak;\n") + ids+=1 + except FileNotFoundError: + break +save.write("}}\nvoid del_level(char level[])\n{memcpy(level,\"\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",350);}") diff --git a/editor.sh b/editor.sh new file mode 100755 index 0000000..3463d43 --- /dev/null +++ b/editor.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash +echo "opening editor" +python editor/AST3generator.py diff --git a/AST3generator.py b/editor/AST3generator.py similarity index 96% rename from AST3generator.py rename to editor/AST3generator.py index 3a45655..764b13b 100644 --- a/AST3generator.py +++ b/editor/AST3generator.py @@ -125,11 +125,12 @@ while securite==False: if event.type==QUIT: securite=True elif event.type == pygame.KEYDOWN: - if event.key == pygame.K_d: + carac= event.dict['unicode'] + if carac == "d": id_level+=1 load(id_level) place() - if event.key == pygame.K_q: + if carac == "q": if id_level!=1: id_level-=1 load(id_level) place() diff --git a/editor/levels/1.lvl b/editor/levels/1.lvl index 6d9e087..d06a89d 100644 --- a/editor/levels/1.lvl +++ b/editor/levels/1.lvl @@ -1 +1 @@ -1111111111111111111111111100000000000100001dt10001100000000000100001td10001100000000000100001dt10001100000000000000001111000110000ddd00000000000000001100000000000000000000d001100000000000000000000d0011110000000000000000111111101000000000000000000100110000000000000000000000011000000000001110000000001100s0000l0000b0000l000e0111111111111111111111111116 \ No newline at end of file +10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116 \ No newline at end of file diff --git a/editor/levels/3.lvl b/editor/levels/3.lvl index 8115d8e..1a01c05 100644 --- a/editor/levels/3.lvl +++ b/editor/levels/3.lvl @@ -1 +1 @@ -11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117 \ No newline at end of file +11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117 \ No newline at end of file diff --git a/src/main.c b/src/main.c index 11f1f29..ce4c468 100644 --- a/src/main.c +++ b/src/main.c @@ -57,9 +57,17 @@ int main(void) if(blackout) draw_blackout(player_x, player_y); draw_player(player_x,player_y); draw_timer(frame); + if(id_level==1) + { + dprint(85,180,C_RGB(245,245,0),"SHIFT"); + dprint(167,19,C_RGB(110,110,110),"Ne touchez pas ces blocs !"); + dprint(162,160,C_RGB(110,110,110),"Les clefs agissent"); + 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_opt(340, 0, C_RGB(255,178,0), C_BLACK, DTEXT_LEFT, DTEXT_TOP, "Coin : %d", coin); + 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)); diff --git a/src/setlevel.c b/src/setlevel.c index 2432af2..b26f715 100644 --- a/src/setlevel.c +++ b/src/setlevel.c @@ -2,13 +2,13 @@ #include void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin){ switch(id_level){case 1: -memcpy(level,"1111111111111111111111111100000000000100001dt10001100000000000100001td10001100000000000100001dt10001100000000000000001111000110000ddd00000000000000001100000000000000000000d001100000000000000000000d0011110000000000000000111111101000000000000000000100110000000000000000000000011000000000001110000000001100s0000l0000b0000l000e011111111111111111111111111",350); +memcpy(level,"10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350); break; case 2: memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350); break; case 3: -memcpy(level,"11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350); +memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350); break; }if(check_coin) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='t') level[i]='0'; set_gravity(id_level, gravity); @@ -25,16 +25,15 @@ x+=16; if(x==16*25){x=0; y+=16;}i++;}} void set_gravity(int id_level, char *default_gravity){ -switch(id_level){ -case 1: +switch(id_level){case 1: *default_gravity = 0; break; case 2: *default_gravity = 0; break; case 3: -*default_gravity = 0; +*default_gravity = 1; break; }} void del_level(char level[]) -{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);} +{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);} \ No newline at end of file