diff --git a/AST3.g3a b/AST3.g3a index 275199b..526d0bf 100644 Binary files a/AST3.g3a and b/AST3.g3a differ diff --git a/AST3generator.py b/AST3generator.py index c093dc7..3a45655 100644 --- a/AST3generator.py +++ b/AST3generator.py @@ -7,6 +7,7 @@ import pygame from pygame.locals import * clock = pygame.time.Clock() + def newgrille(): global grille grille=\ @@ -25,41 +26,27 @@ def newgrille(): ["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","1"],\ ["1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1","1"] -newgrille() - def load(ids): - global grille - for lev,ide in niv.items(): - if lev==ids: - grille=[] - print(ide) - for j in range(14): - grille.append([]) - for i in range(25): - grille[-1].append(str(ide[i+25*j])) - place() - break - -niv={} -niveau=1 -texte = open("src/setlevel.c", "r+") -for line in texte: - if "memcpy" in line: - niv[niveau]=line[14:-8] - niveau+=1 - if "del_level" in line: - break - -p = open("editor/setlevel.c","w+") -p.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){") - - -#Defini la suite des blocs pendant les changements (cliquer sur un 1 va donner un 2, cliquer sur un 11 un 0...) -suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b"] + global grille, gravityid + try: + lv = open(f"editor/levels/{ids}.lvl","r") + ide = lv.read() + gravityid=ide[350:] + ide = ide[:-1] + grille=[] + for j in range(14): + grille.append([]) + for i in range(25): + grille[-1].append(str(ide[i+25*j])) + except FileNotFoundError: + newgrille() + gravityid="6" + place() def place(): level = font.render(str(id_level),1,(0,0,0)) - levelgr = font.render(str(gravityid),1,(0,0,0)) + if int(gravityid)==6: levelgr = font.render("↓",1,(120,0,0)) + if int(gravityid)==7: levelgr = font.render("↑",1,(0,120,120)) for a in range(14): for b in range(25): pygame.draw.rect(fenetre,(255,255,255),((52*b, 52*a), (52, 52))) @@ -97,16 +84,21 @@ def place(): fenetre.blit(levelgr, (10, 60)) pygame.display.flip() + + pygame.init() pygame.mixer.quit() pygame.display.set_caption('AST3 generator (Tituya)') 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, cliquer sur un 11 un 0...) +suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b"] + id_level = 1 -gravity = "" -identifiant = "" -gravityid = 0 +gravityid = 6 + + solid_0 = pygame.image.load("editor/img/solid_0.png").convert() player = pygame.image.load("editor/img/player.png").convert() @@ -122,12 +114,9 @@ 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() -for cle in niv: - if id_level==cle: - load(id_level) - break - else: - newgrille() + + +load(id_level) place() securite=False while securite==False: @@ -136,22 +125,22 @@ while securite==False: if event.type==QUIT: securite=True elif event.type == pygame.KEYDOWN: - if event.key == pygame.K_TAB: - identifiant+=f"case {id_level}:\nmemcpy(level,\""+str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+"\",350);\nbreak;\n" - gravity+=f"case {id_level}:\n*default_gravity = {gravityid};\nbreak;\n" + if event.key == pygame.K_d: id_level+=1 - for cle in niv: - if id_level==cle: - load(id_level) - break - else: - newgrille() + load(id_level) + place() + if event.key == pygame.K_q: + if id_level!=1: id_level-=1 + load(id_level) place() if event.key == pygame.K_LSHIFT: - if gravityid: - gravityid=0 + if gravityid=="7": + gravityid="6" else: - gravityid=1 + gravityid="7" + f = open(f"editor/levels/{id_level}.lvl","w+") + f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}") + f.close() place() elif event.type == pygame.MOUSEBUTTONDOWN: if event.button == 1: @@ -168,11 +157,7 @@ while securite==False: pygame.draw.rect(fenetre,(255,255,255),((52*x, 52*y), (52, 52))) place() if event.button == 2: - p.write(identifiant+"}if(check_coin) for (int i = 0; level[i]!='\\0' ; i++) if(level[i]=='t') level[i]='0';\nset_gravity(id_level, gravity);\nunsigned int x = 0;\ -\nunsigned int y = 0;\nunsigned int i = 0;\nwhile (i!=strlen(level)){\nswitch(level[i]){\ncase 's':\n*startx = x;\n*starty = y;\nbreak;}\nx+=16;\nif(x==16*25){x=0;\ny+=16;}i++;}}\n\ -void set_gravity(int id_level, char *default_gravity){\nswitch(id_level){\n"+gravity+"}}\nvoid del_level(char level[])\n{memcpy(level,\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",350);}") securite=True - texte.close() if event.button == 3: x=int(event.pos[0]/52) y=int(event.pos[1]/52) @@ -185,4 +170,7 @@ void set_gravity(int id_level, char *default_gravity){\nswitch(id_level){\n"+gra grille[y][x]=suite[len(suite)] break pygame.draw.rect(fenetre,(255,255,255),((52*x, 52*y), (55, 55))) - place() \ No newline at end of file + place() + f = open(f"editor/levels/{id_level}.lvl","w+") + f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}") + f.close() \ No newline at end of file diff --git a/assets-cg/icon-cg-sel.png b/assets-cg/icon-cg-sel.png index 7137b50..0885070 100644 Binary files a/assets-cg/icon-cg-sel.png and b/assets-cg/icon-cg-sel.png differ diff --git a/assets-cg/icon-cg-uns.png b/assets-cg/icon-cg-uns.png index 3c99f62..99f4228 100644 Binary files a/assets-cg/icon-cg-uns.png and b/assets-cg/icon-cg-uns.png differ diff --git a/editor/levels/1.lvl b/editor/levels/1.lvl new file mode 100644 index 0000000..6d9e087 --- /dev/null +++ b/editor/levels/1.lvl @@ -0,0 +1 @@ +1111111111111111111111111100000000000100001dt10001100000000000100001td10001100000000000100001dt10001100000000000000001111000110000ddd00000000000000001100000000000000000000d001100000000000000000000d0011110000000000000000111111101000000000000000000100110000000000000000000000011000000000001110000000001100s0000l0000b0000l000e0111111111111111111111111116 \ No newline at end of file diff --git a/editor/levels/2.lvl b/editor/levels/2.lvl new file mode 100644 index 0000000..b34d61f --- /dev/null +++ b/editor/levels/2.lvl @@ -0,0 +1 @@ +111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116 \ No newline at end of file diff --git a/editor/levels/3.lvl b/editor/levels/3.lvl new file mode 100644 index 0000000..8115d8e --- /dev/null +++ b/editor/levels/3.lvl @@ -0,0 +1 @@ +11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117 \ No newline at end of file diff --git a/editor/setlevel.c b/editor/setlevel.c deleted file mode 100644 index 6b0b1b5..0000000 --- a/editor/setlevel.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "setlevel.h" -#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); -break; -case 2: -memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350); -break; -case 3: -memcpy(level,"11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",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); -unsigned int x = 0; -unsigned int y = 0; -unsigned int i = 0; -while (i!=strlen(level)){ -switch(level[i]){ -case 's': -*startx = x; -*starty = y; -break;} -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: -*default_gravity = 0; -break; -case 2: -*default_gravity = 0; -break; -case 3: -*default_gravity = 0; -break; -}} -void del_level(char level[]) -{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);} \ No newline at end of file