From b26c513cbe6593a2af73ac8be4558f30740c9fad Mon Sep 17 00:00:00 2001 From: Tituya Date: Thu, 9 Jul 2020 23:11:24 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20g=C3=A9n=C3=A9rateur=20de?= =?UTF-8?q?=20niveau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AST3.g3a | Bin 58600 -> 58600 bytes AST3generator.py | 151 +++++++++++++++++++++++++++++++++++++++ editor/img/chrono1.png | Bin 0 -> 136 bytes editor/img/chrono2.png | Bin 0 -> 141 bytes editor/img/coin.png | Bin 0 -> 230 bytes editor/img/dead.png | Bin 0 -> 102 bytes editor/img/end.png | Bin 0 -> 265 bytes editor/img/key1.png | Bin 0 -> 266 bytes editor/img/key2.png | Bin 0 -> 258 bytes editor/img/key2block.png | Bin 0 -> 322 bytes editor/img/keyblock.png | Bin 0 -> 312 bytes editor/img/player.png | Bin 0 -> 308 bytes editor/img/solid_0.png | Bin 0 -> 116 bytes src/setlevel.c | 10 +-- 14 files changed, 153 insertions(+), 8 deletions(-) create mode 100644 AST3generator.py create mode 100644 editor/img/chrono1.png create mode 100644 editor/img/chrono2.png create mode 100644 editor/img/coin.png create mode 100644 editor/img/dead.png create mode 100644 editor/img/end.png create mode 100644 editor/img/key1.png create mode 100644 editor/img/key2.png create mode 100644 editor/img/key2block.png create mode 100644 editor/img/keyblock.png create mode 100644 editor/img/player.png create mode 100644 editor/img/solid_0.png diff --git a/AST3.g3a b/AST3.g3a index 6625d8fe5e464ab2ebcd4fe3820bca9b2e025503..90b82dc1a182ab5441e9c7ee946dc4486213664d 100644 GIT binary patch delta 381 zcmZXQu?@mN3`G@!L`A5fj2PgX8-ofa0O_bwLWz_WkeCFe3=2dsNXEea&IJiv_|AU0 z|Lyc$-go(}oLm==b(u{!LD1~7YJNXtv*uY8Z7nH)bmIxuQA2MYqK5=aB7YzlV8oaN zAUHuSM}TnDp2lcZvs9BroC0UH0AjrS0t`SUTr0gG*!sLSpY}C#XqWO2?cEpbX+mO& fge$s^bp(|i09T~D*BqTdRApERXjZTHQvdh|^degO delta 219 zcmaEHlKI6+<_Stn6)GE5lo(kIEsZQT2Qp^!PEKHC-@J#9Z?~y|p@D%R2tY_M6Uqll zq@)0)!7?d809FR%8ceo7E}?{wMkoOqQw-vPk-_B3;}NVNjVY6_9oLrz83mC5GoS>> gW`oHJCqz|23=n`?31mU-1WQ02wOQ))8A+gj0PuV`YXATM diff --git a/AST3generator.py b/AST3generator.py new file mode 100644 index 0000000..fc3ceea --- /dev/null +++ b/AST3generator.py @@ -0,0 +1,151 @@ +""" +Programme de création de niveau pour A Switch to the top fait par Tituya +Pour le CPC#26 +""" + +import pygame +from pygame.locals import * + +def newgrille(): + global grille + grille=\ + ["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","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","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","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","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","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","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","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","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","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","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","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","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() + +""" +s="10001011111011111111111111000101dd10001111dddd11110000101dd100010000000000011111m1dd1aaa1000ccccddd110s00010013331000000000011dddd110010001000dd00000100000000010e01000dd00000011111100011111dddddddd1111k000000010000111001111111111111101000000000111111000010000100000000000000010K010000100011100000011110t0100001000111000ddd1111000101111101111111111111" +grille=[] +for j in range(14): + grille.append([]) + for i in range(25): + grille[-1].append(s[i+25*j])""" + +p = open("src/set.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"] + +def place(): + level = font.render(str(id_level),1,(0,0,0)) + levelgr = font.render(str(gravityid),1,(0,0,0)) + for a in range(14): + for b in range(25): + if grille[a][b]=="0": + pygame.draw.rect(fenetre,(255,255,255),((52*b, 52*a), (52, 52))) + if grille[a][b]=="1": + fenetre.blit(pygame.transform.scale(solid_0,(52,52)),(52*b,52*a)) + if grille[a][b]=="s": + fenetre.blit(pygame.transform.scale(player,(39,39)),(52*b,52*a+13)) + if grille[a][b]=="e": + fenetre.blit(pygame.transform.scale(end,(52,52)),(52*b,52*a)) + if grille[a][b]=="d": + fenetre.blit(pygame.transform.scale(dead,(52,52)),(52*b,52*a)) + if grille[a][b]=="k": + fenetre.blit(pygame.transform.scale(key1,(52,52)),(52*b,52*a)) + if grille[a][b]=="c": + fenetre.blit(pygame.transform.scale(chrono1,(52,52)),(52*b,52*a)) + if grille[a][b]=="3": + fenetre.blit(pygame.transform.scale(keyblock,(52,52)),(52*b,52*a)) + if grille[a][b]=="m": + fenetre.blit(pygame.transform.scale(chrono2,(52,52)),(52*b,52*a)) + if grille[a][b]=="K": + fenetre.blit(pygame.transform.scale(key2,(52,52)),(52*b,52*a)) + if grille[a][b]=="a": + fenetre.blit(pygame.transform.scale(key2block,(52,52)),(52*b,52*a)) + if grille[a][b]=="t": + fenetre.blit(pygame.transform.scale(coin,(52,52)),(52*b,52*a)) + fenetre.blit(level, (10, 10)) + fenetre.blit(levelgr, (10, 60)) + pygame.display.flip() + +pygame.init() +pygame.display.set_caption('AST3 generator (Tituya)') +fenetre = pygame.display.set_mode((25*52, 14*52)) +font = pygame.font.SysFont('arial',25,True) + +id_level = 1 +gravity = "" +gravityid = 0 + +solid_0 = pygame.image.load("editor/img/solid_0.png").convert() +player = pygame.image.load("editor/img/player.png").convert() +keyblock = pygame.image.load("editor/img/keyblock.png").convert() +key2block = pygame.image.load("editor/img/key2block.png").convert() +chrono1 = pygame.image.load("editor/img/chrono1.png").convert() +chrono2 = pygame.image.load("editor/img/chrono2.png").convert() +key1 = pygame.image.load("editor/img/key1.png").convert_alpha() +key2 = pygame.image.load("editor/img/key2.png").convert_alpha() +end = pygame.image.load("editor/img/end.png").convert_alpha() +dead = pygame.image.load("editor/img/dead.png").convert() +coin = pygame.image.load("editor/img/coin.png").convert_alpha() + +for a in range(14): + for b in range(25): + pygame.draw.rect(fenetre,(255,255,255),((52*b, 52*a), (52, 52))) +place() +securite=False +while securite==False: + #boucle permettant l'affichage + for event in pygame.event.get(): + if event.type==QUIT: + securite=True + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_TAB: + p.write(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" + id_level+=1 + newgrille() + place() + if event.key == pygame.K_LSHIFT: + if gravityid: + gravityid=0 + else: + gravityid=1 + place() + elif event.type == pygame.MOUSEBUTTONDOWN: + if event.button == 1: + x=int(event.pos[0]/52) + y=int(event.pos[1]/52) + for i in range(len(suite)): + if grille[y][x] == suite[i]: + if i!=len(suite)-1: + grille[y][x]=suite[i+1] + break + else: + grille[y][x]=suite[0] + break + pygame.draw.rect(fenetre,(255,255,255),((52*x, 52*y), (52, 52))) + place() + if event.button == 2: + p.write("}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+"}}") + if event.button == 3: + x=int(event.pos[0]/52) + y=int(event.pos[1]/52) + for i in range(len(suite)): + if grille[y][x] == suite[i]: + if i!=len(suite)+1: + grille[y][x]=suite[i-1] + break + else: + 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 diff --git a/editor/img/chrono1.png b/editor/img/chrono1.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd3d8cabb80e17c891c805317a6abf0acd775a8 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9;^y9n(W5S%F8J z?#4Wh%(gkO$zYdPmP2GXvsz&e>zrqv$0mF>O;LB#NNT8_aqVKf=j#P?=B31U-q>}4 z?;i(mMGh;^UxB||nfKO<3W$AXexv%0S2E^Zd-EeFPN4*w!>!Enc0p|iey!ibQ2K3M azc`D8){?i@&mRLF%HZkh=d#Wzp$P!7Pg7w4 literal 0 HcmV?d00001 diff --git a/editor/img/dead.png b/editor/img/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..5789d78b3bdaef45467407c6b05b1dfafa6c6179 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO z?F~LCcvyjFa%3atr^H=xVGCjxx=(+-TsVd8YoG#~&k8%ny9p~oFi6TJZQVpQ{Y6F_H)0LvnNe?AI)Mn?>XP%9%F$IAGgT&Uz@%p zmW|G67lNewmqoBJayZ*f@gh^|vnh@E2-R~@?Ry%Wn^mdKI;Vst0F9Jo@&Et; literal 0 HcmV?d00001 diff --git a/editor/img/key2.png b/editor/img/key2.png new file mode 100644 index 0000000000000000000000000000000000000000..05150e2ae13d985e7e2cd4bd2783239d92a02629 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VflNhg*TBy znde{@LkOdq!_@SY1R!vn)_!x&cd11iCUS<_`~0(=B;h8(@y@R4QA)}CJ>^>uF5|x{ zU{Uv5zG>o-clY<7Z(JiW-}6NxQ}F2%4I)>4UhLx7!823sUc;~J|0Q23GImcq!BNF1 z_sN2(e}_Q>V`9&i=2?6f7-zk0(K+&v>(I<@BL;?}^WE#*pFcVQ^aO*atDnm{r-UW| D)5m2d literal 0 HcmV?d00001 diff --git a/editor/img/key2block.png b/editor/img/key2block.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9dfdb0201ba6fc0417f690877fc51a99470395 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwaZ?l1b>wZD*2n|=U6AW9Hq|VvU^tdM>wbf^$S)QP4nMdOUb%x~(&At30n&FM_ z|1Yn%+uSZHRxcuaij5(1V{CIk_n(rTO1)>^dltkWdR>&EVl5*>s5MurP*?2z0EUG+DJKui*I$t)qNJZTd4As> zX8A|%W|fR7r*FQsTOe=dRv@4dx7_-DHFw3@t5a^9GDmXw)f~L0EVQ;YL-(ftwZiL4 zaoH=}-1%QT7xanK;m^=+^#8WMa_w=`G@cVLSTs{h{^u>7V#pM*HNE63tENbPXvj|+ RV_+aKc)I$ztaD0e0sxKVb(8=A literal 0 HcmV?d00001 diff --git a/editor/img/keyblock.png b/editor/img/keyblock.png new file mode 100644 index 0000000000000000000000000000000000000000..9a51869164bd436fefb51283b21b1dc6a8f80e53 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfy6V3UJD>wQZRhctG!9$p78+YC$_@#Wdv@X{W8ODUfA<#{ax8<4k8Qg7zP-dZHs;5 zRW5qTr9rCUsg%&psSaTr>ua;_%we2x>dO1$NA|Y7w_m_2(r~?HO~Q`3Nn5USF-%Z< zSG>vTN4i1#8QtZb45v%ae)Or}ZB+N*c(5+`S^L2?@i!X+JQmcJ-qXF|xc5Jsh(e0^ zjJ6x0=RWK!o1pgi)Ej0a2D?o`?RIPC%bW?95{h7{$(r(!EjK<>!!beC3+QzQPgg&e IbxsLQ0GN7wZ~y=R literal 0 HcmV?d00001 diff --git a/editor/img/player.png b/editor/img/player.png new file mode 100644 index 0000000000000000000000000000000000000000..00e04d286c64772ac8fed7ac893108216692d99d GIT binary patch literal 308 zcmV-40n7f0P)C9ofbE8;& zgr~kay?&IyxB^vx>qp)`nZ)SoA$lJYTvS?WGMx*kzDBD~Z;E zQKhM59w?12(J5<9D?hIQLOXJwgSDko%Ga}`(2oBAf9Mx-`(09Dn?^_g0000bP0l+XkKQ@tV1 literal 0 HcmV?d00001 diff --git a/src/setlevel.c b/src/setlevel.c index 5a01bc8..6f8c7b0 100644 --- a/src/setlevel.c +++ b/src/setlevel.c @@ -1,24 +1,18 @@ #include "setlevel.h" #include -/*How to add your level ? - -You must to copy + paste your level info into the switch(id_level) The number after "case" correspond to the number of your level -Then you must to set the default gravity into the function set_gravity() like the previous one. 0 down and 1 is up. -*/ - void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin) { switch(id_level) { case 1: - memcpy(level,"10001011111011111111111111000101dd10001111dddd11110000101dd100010000000000011111m1dd1aaa1000ccccddd110s00010013331000000000011dddd110010001000dd00000100000000010e01000dd00000011111100011111dddddddd1111k000000010000111001111111111111101000000000111111000010000100000000000000010K010000100011100000011110t0100001000111000ddd1111000101111101111111111111",350); + memcpy(level,"10001011111011111111111111000101dd10001111dddd11110000101dd100010000000000011111m1dd1aaa1000ccccddd110s00010013331000000000011dddd110010001000dd00000100000000010e01000dd00000011111100011111dddddddd1111k000000010000111001111111111111101000000000111111000010000100000000000000010K010000100011100000011110t0100001000111000ddd1111000101111101111111111111",350); break; case 2: memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000000d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d0000000000000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350); break; case 3: - memcpy(level,"11010011111011111111111111101001dd10001111dddd11110001001dd10001000000000001111001dd100010001111ddd110s00010010001000000000011dddd110010001000dd00000100000000010e01000dd00000011111100011111dddddddd1111ddddd00010000111001111111111111101000000000111111000100000100000000000000011010000010001110000001111101000001000111000ddd1111101001111101111111111111",350); + memcpy(level,"11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350); break; }