diff --git a/AST3.g3a b/AST3.g3a index dc0b8f0..2ebf772 100644 Binary files a/AST3.g3a and b/AST3.g3a differ diff --git a/build.sh b/build.sh index 3a130f2..5f624a8 100755 --- a/build.sh +++ b/build.sh @@ -1,11 +1,11 @@ #!/usr/bin/bash echo "making setlevel.c from editor" rm src/setlevel.c -python compile_level.py +python3 compile_level.py echo "done" echo "making times.c from times.lvl" rm src/times.c -python time.py +python3 time.py echo "done" echo "building for cg" fxsdk build-cg diff --git a/editor.sh b/editor.sh index 3463d43..65fa523 100755 --- a/editor.sh +++ b/editor.sh @@ -1,3 +1,3 @@ #!/usr/bin/bash echo "opening editor" -python editor/AST3generator.py +python3 editor/AST3generator.py diff --git a/editor/AST3generator.py b/editor/AST3generator.py index 705e973..8a8e0af 100644 --- a/editor/AST3generator.py +++ b/editor/AST3generator.py @@ -2,7 +2,7 @@ Programme de création de niveau pour A Switch to the top fait par Tituya Pour le CPC#26 """ - +# coding: utf-8 import pygame from pygame.locals import * @@ -68,9 +68,9 @@ def place(): if grille[a][b]=="1": fenetre.blit(pygame.transform.scale(solid_0,(52,52)),(52*b,52*a)) if grille[a][b]=="s" and int(gravityid)==6: - fenetre.blit(pygame.transform.scale(player,(39,39)),(52*b,52*a+13)) + fenetre.blit(pygame.transform.scale(player.subsurface((0,0),(12,12)),(39,39)),(52*b,52*a+13)) elif grille[a][b]=="s" and int(gravityid)==7: - fenetre.blit(pygame.transform.scale(player,(39,39)),(52*b,52*a)) + fenetre.blit(pygame.transform.scale(player.subsurface((0,0),(12,12)),(39,39)),(52*b,52*a)) if grille[a][b]=="e": fenetre.blit(pygame.transform.scale(end,(52,52)),(52*b,52*a)) if grille[a][b]=="d": @@ -81,16 +81,20 @@ def place(): 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": + if grille[a][b]=="m" and tab==0: + fenetre.blit(pygame.transform.scale(chrono2appear,(52,52)),(52*b,52*a)) + elif grille[a][b]=="m" and tab: 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": + if grille[a][b]=="a" and tab==0: + fenetre.blit(pygame.transform.scale(key2blockvoid,(52,52)),(52*b,52*a)) + elif grille[a][b]=="a" and tab: 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)) if grille[a][b]=="l": - fenetre.blit(pygame.transform.scale(change,(52,52)),(52*b,52*a)) + fenetre.blit(pygame.transform.scale(chock,(52,52)),(52*b,52*a)) if grille[a][b]=="b": fenetre.blit(pygame.transform.scale(blackout,(52,52)),(52*b,52*a)) if grille[a][b]=="B": @@ -99,8 +103,12 @@ 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": + if grille[a][b]=="p": + fenetre.blit(pygame.transform.scale(power,(52,52)),(52*b,52*a)) + if grille[a][b]=="h" and tab==0: fenetre.blit(pygame.transform.scale(appear,(52,52)),(52*b,52*a)) + elif grille[a][b]=="h" and tab: + fenetre.blit(pygame.transform.scale(appearblock,(52,52)),(52*b,52*a)) fenetre.blit(level, (10, 10)) fenetre.blit(levelgr, (10, 60)) fenetre.blit(timeapp, (55, 10)) @@ -133,24 +141,28 @@ gravityid = 6 disa = 10 app = 13 lock="" +tab = 0 solid_0 = pygame.image.load("editor/img/solid_0.png").convert_alpha() player = pygame.image.load("editor/img/player.png").convert_alpha() keyblock = pygame.image.load("editor/img/keyblock.png").convert_alpha() key2block = pygame.image.load("editor/img/key2block.png").convert_alpha() +key2blockvoid = pygame.image.load("editor/img/key2blockvoid.png").convert_alpha() chrono1 = pygame.image.load("editor/img/chrono1.png").convert_alpha() chrono2 = pygame.image.load("editor/img/chrono2.png").convert_alpha() +chrono2appear = pygame.image.load("editor/img/chrono2appear.png").convert_alpha() 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_alpha() coin = pygame.image.load("editor/img/coin.png").convert_alpha() -change = pygame.image.load("editor/img/change.png").convert_alpha() +chock = pygame.image.load("editor/img/chock.png").convert_alpha() 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() +appearblock = pygame.image.load("editor/img/appearblock.png").convert_alpha() load(id_level) place() @@ -200,6 +212,10 @@ while securite==False: gravityid="7" write() place() + if event.key == pygame.K_TAB: + if tab==0: tab = 1 + else: tab = 0 + place() elif event.type == pygame.MOUSEBUTTONDOWN: if event.button == 1: x=int(event.pos[0]/52) diff --git a/editor/README.md b/editor/README.md index 85201c4..3c6d465 100644 --- a/editor/README.md +++ b/editor/README.md @@ -2,7 +2,7 @@ ## Éditeur : -Pour ouvrir (python + pygame): +Pour ouvrir (python3 + pygame): `$ ./editor.sh` ## Commande : @@ -14,6 +14,7 @@ Pour ouvrir (python + pygame): - R augmenter temps avant disparition blocs - (temps affiché en haut à gauche) - F baisser temps avant disparition blocs - - SHIFT changer le sens de la gravité par défaut (gravité affichée en haut à gauche) +- TAB Afficher le design des blocs non activé - A supprime le bloc bloqué dans la main. - N pour reset la pièce en entier diff --git a/editor/img/appearblock.png b/editor/img/appearblock.png new file mode 100644 index 0000000..4c8dffe Binary files /dev/null and b/editor/img/appearblock.png differ diff --git a/editor/img/chock.png b/editor/img/chock.png new file mode 100644 index 0000000..92df596 Binary files /dev/null and b/editor/img/chock.png differ diff --git a/editor/img/chrono2appear.png b/editor/img/chrono2appear.png new file mode 100644 index 0000000..44479f5 Binary files /dev/null and b/editor/img/chrono2appear.png differ diff --git a/editor/img/key2block.png b/editor/img/key2block.png index 2045aa5..f0b02fd 100644 Binary files a/editor/img/key2block.png and b/editor/img/key2block.png differ diff --git a/editor/img/key2blockvoid.png b/editor/img/key2blockvoid.png new file mode 100644 index 0000000..2045aa5 Binary files /dev/null and b/editor/img/key2blockvoid.png differ diff --git a/editor/levels/15.lvl b/editor/levels/15.lvl index 38482e6..2113bcf 100644 --- a/editor/levels/15.lvl +++ b/editor/levels/15.lvl @@ -1,4 +1,4 @@ i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116 -5 +4 7 \ No newline at end of file diff --git a/editor/levels/2.lvl b/editor/levels/2.lvl index 04771e4..b4e7501 100644 --- a/editor/levels/2.lvl +++ b/editor/levels/2.lvl @@ -1,3 +1,3 @@ -1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd10000000000d1331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16 +1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16 12 1 \ No newline at end of file diff --git a/src/setlevel.c b/src/setlevel.c index d79e508..feea25b 100644 --- a/src/setlevel.c +++ b/src/setlevel.c @@ -10,7 +10,7 @@ case 1: memcpy(level,"10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e11d1100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350); break; case 2: -memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd10000000000d1331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350); +memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350); *appear=12; *disappear=1; break; @@ -58,7 +58,7 @@ memcpy(level,"1111111111111ddd11iK1d00100000d111000000011it1d00000000d1000000000 break; case 15: memcpy(level,"i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd11",350); -*appear=5; +*appear=4; *disappear=7; break; }