mise à jour éditeur, nouveaux niveaux, README éditeur

This commit is contained in:
Tituya 2020-07-20 00:55:36 +02:00
parent c06c5df873
commit db9f1beca4
12 changed files with 109 additions and 86 deletions

BIN
AST3.g3a

Binary file not shown.

View File

@ -27,7 +27,7 @@ def newgrille():
["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"]
def load(ids):
global grille, gravityid
global grille, gravityid, app, disa
try:
lv = open(f"editor/levels/{ids}.lvl","r")
ide = lv.readlines()
@ -35,6 +35,12 @@ def load(ids):
if len(ide)==1:
ide = str(ide[0][:-1])
else:
if ide[1]!="\n":
app = int(ide[1][:-1])
disa = int(ide[2])
else:
app = int(ide[2][:-1])
disa = int(ide[3])
ide = str(ide[0][:-2])
grille=[]
for j in range(14):
@ -50,8 +56,8 @@ def place():
level = font.render(str(id_level),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))
timeapp = font.render(str(app),1,(0,120,120))
timedisa = font.render(str(disa),1,(0,120,120))
timeapp = font.render("A="+str(app),1,(255,180,0))
timedisa = font.render("D="+str(disa)+" LOCK : "+str(lock),1,(0,255,100))
for a in range(14):
for b in range(25):
pygame.draw.rect(fenetre,(255,255,255),((52*b, 52*a), (52, 52)))
@ -87,8 +93,8 @@ def place():
fenetre.blit(pygame.transform.scale(blackout,(52,52)),(52*b,52*a))
fenetre.blit(level, (10, 10))
fenetre.blit(levelgr, (10, 60))
fenetre.blit(timeapp, (50, 10))
fenetre.blit(timedisa, (100, 10))
fenetre.blit(timeapp, (55, 10))
fenetre.blit(timedisa, (140, 10))
pygame.display.flip()
def write():
@ -113,7 +119,7 @@ id_level = 1
gravityid = 6
disa = 10
app = 13
lock=""
solid_0 = pygame.image.load("editor/img/solid_0.png").convert()
player = pygame.image.load("editor/img/player.png").convert()
@ -165,6 +171,9 @@ while securite==False:
disa-=1
write()
place()
if carac == "a":
lock=""
place()
if event.key == pygame.K_LSHIFT:
if gravityid=="7":
gravityid="6"
@ -176,29 +185,40 @@ while securite==False:
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
if lock!="":
grille[y][x]=lock
else:
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:
securite=True
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
lock=suite[i]
place()
if event.button == 3:
x=int(event.pos[0]/52)
y=int(event.pos[1]/52)
if lock!="":
grille[y][x]="0"
else:
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()
write()

33
editor/README.md Normal file
View File

@ -0,0 +1,33 @@
# AST3_C
## Éditeur :
Pour ouvrir (python + pygame):
`$ ./editor.sh`
## Commande :
- Q niveau précédent (Numéro de salle affiché en haut à gauche)
- D niveau suivant
- Z augmenter temps avant apparition blocs + (temps affiché en haut à gauche)
- S baisser temps avant apparition blocs +
- 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)
- A supprime le bloc bloqué dans la main.
Click gauche : tourner parmis les blocs dans le sens horaire
Click droit : tourner parmis les blocs dans le sens anti-horaire
Click molette centrale sur un bloc : bloquer ce bloc dans la main, permet de placer plusieurs fois le même bloc rapidement. (bloc bloqué affiché en haut)
Click gauche après molette : placer le bloc
Click droit après molette : supprimer le bloc
## Sauvegarde :
L'éditeur sauvegarde automatiquement les niveaux à chaques actions.
`$ ./build.sh` pour construire l'application depuis ces niveaux.
by Tituya

View File

@ -1 +1 @@
10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116
10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116

View File

@ -1 +1 @@
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116

View File

@ -1 +1 @@
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117

View File

@ -1,3 +1,4 @@
1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
12
5
1

4
editor/levels/5.lvl Normal file
View File

@ -0,0 +1,4 @@
0000000000000000000000000000000000000000000000000000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100110dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111111111000000000000000000000000000000000000000000000000000000000000000000000000000006
12
6

4
editor/levels/6.lvl Normal file
View File

@ -0,0 +1,4 @@
11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10000000001111001dd0d1111100111100011dd001dt0d10000001dd100011dd001d11d10000001dd100011dd00dd11110011111dd100011dd00000000001dddddd100011dd1111dbd1111ddd111100011ddddddd0dd1d1ddd100000011ddddddd0000d1ddd1e0000011ddddddd1110d1ddd111cccc11dddddddddd0d1ddd111dddd111111111111011111111111116
12
7

View File

@ -1,55 +0,0 @@
#include "setlevel.h"
#include <gint/std/string.h>
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin, int *appear, int *disappear){
switch(id_level){case 1:
memcpy(level,"10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350);
break;
case 2:
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350);
break;
case 3:
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350);
break;
case 4:
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350);
*appear=13;
*disappear=10;
break;
case 5:
memcpy(level,"11111111111111111111111111000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110s00000000000000000000011111c0000000000000000000110010000000000000000000011001000000000000000000e011111111111111111111111111",350);
*appear=8;
*disappear=15;
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 = 1;
break;
case 4:
*default_gravity = 0;
break;
case 5:
*default_gravity = 0;
break;
}}
void del_level(char level[])
{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);}

View File

@ -1,3 +1,3 @@
#define PLAYER_SPEED 2
#define PLAYER_HEIGHT 11
#define FPS 80
#define FPS 70

View File

@ -2,18 +2,28 @@
#include <gint/std/string.h>
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin, int *appear, int *disappear){
switch(id_level){case 1:
memcpy(level,"10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350);
memcpy(level,"10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116",350);
break;
case 2:
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350);
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116",350);
break;
case 3:
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350);
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117",350);
break;
case 4:
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350);
*appear=12;
*disappear=5;
*disappear=1;
break;
case 5:
memcpy(level,"0000000000000000000000000000000000000000000000000000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100110dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d11111111100000000000000000000000000000000000000000000000000000000000000000000000000000",350);
*appear=12;
*disappear=6;
break;
case 6:
memcpy(level,"11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10000000001111001dd0d1111100111100011dd001dt0d10000001dd100011dd001d11d10000001dd100011dd00dd11110011111dd100011dd00000000001dddddd100011dd1111dbd1111ddd111100011ddddddd0dd1d1ddd100000011ddddddd0000d1ddd1e0000011ddddddd1110d1ddd111cccc11dddddddddd0d1ddd111dddd11111111111101111111111111",350);
*appear=12;
*disappear=7;
break;
}if(check_coin) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='t') level[i]='0';
set_gravity(id_level, gravity);
@ -42,6 +52,12 @@ break;
case 4:
*default_gravity = 0;
break;
case 5:
*default_gravity = 0;
break;
case 6:
*default_gravity = 0;
break;
}}
void del_level(char level[])
{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);}