forked from Tituya/AST3_C
mise à jour éditeur, nouveaux niveaux, README éditeur
This commit is contained in:
parent
c06c5df873
commit
db9f1beca4
|
@ -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()
|
|
@ -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
|
|
@ -1 +1 @@
|
|||
10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116
|
||||
10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116
|
||||
|
|
|
@ -1 +1 @@
|
|||
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116
|
||||
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116
|
||||
|
|
|
@ -1 +1 @@
|
|||
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
|
||||
11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16
|
||||
|
||||
12
|
||||
5
|
||||
1
|
|
@ -0,0 +1,4 @@
|
|||
0000000000000000000000000000000000000000000000000000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100110dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111111111000000000000000000000000000000000000000000000000000000000000000000000000000006
|
||||
|
||||
12
|
||||
6
|
|
@ -0,0 +1,4 @@
|
|||
11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10000000001111001dd0d1111100111100011dd001dt0d10000001dd100011dd001d11d10000001dd100011dd00dd11110011111dd100011dd00000000001dddddd100011dd1111dbd1111ddd111100011ddddddd0dd1d1ddd100000011ddddddd0000d1ddd1e0000011ddddddd1110d1ddd111cccc11dddddddddd0d1ddd111dddd111111111111011111111111116
|
||||
|
||||
12
|
||||
7
|
|
@ -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);}
|
|
@ -1,3 +1,3 @@
|
|||
#define PLAYER_SPEED 2
|
||||
#define PLAYER_HEIGHT 11
|
||||
#define FPS 80
|
||||
#define FPS 70
|
||||
|
|
|
@ -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);}
|
Loading…
Reference in New Issue