diff --git a/AST3.g3a b/AST3.g3a index 526d0bf..bd9eb1d 100644 Binary files a/AST3.g3a and b/AST3.g3a differ diff --git a/README.md b/README.md index c515c17..709500f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,23 @@ # AST3_C ## Présentation : + A Switch To The Top est un jeu prévu pour fx-cg50 (90+E). Ou vous pouvez changer la gravité afin de traverser un niveau. Ceci est une adaptation utilisant Gint de Lephenixnoir pour avoir un jeu plus plaisant et fluide. ## Comment installer : + - Glisser le fichier AST3.g3a dans votre calculatrice. - Lancer le jeu directement depuis le menu principal. -Un bug ? Contactez moi directement sur Planète Casio. Je vous répondrais très vite si possible. +## Éditer le jeu : + +Clone ce dépot : +`$ git clone https://gitea.planet-casio.com/Tituya/AST3_C && cd AST3_C` + +Pour ouvrir l'éditeur de niveau (Python et Pygame obligatoire). +`$ ./editor.sh` + +Pour compiler le jeu (fxsdk + gint obligatoire). +`$ ./build.sh` + diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..7d26d45 --- /dev/null +++ b/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/bash +echo "making setlevel.c from editor" +rm src/setlevel.c +python compile_level.py +echo "building for cg" +fxsdk build-cg +echo "done" diff --git a/compile_level.py b/compile_level.py new file mode 100644 index 0000000..5a8edd4 --- /dev/null +++ b/compile_level.py @@ -0,0 +1,44 @@ +ids = 1 + +save = open("src/setlevel.c","w+") +save.write("#include \"setlevel.h\"\n#include \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