modification générateur+icone

This commit is contained in:
Tituya 2020-07-17 01:34:21 +02:00
parent 14b5d4c077
commit d9e8cd3fe4
8 changed files with 48 additions and 97 deletions

BIN
AST3.g3a

Binary file not shown.

View File

@ -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 <gint/std/string.h>\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()
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()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

1
editor/levels/1.lvl Normal file
View File

@ -0,0 +1 @@
1111111111111111111111111100000000000100001dt10001100000000000100001td10001100000000000100001dt10001100000000000000001111000110000ddd00000000000000001100000000000000000000d001100000000000000000000d0011110000000000000000111111101000000000000000000100110000000000000000000000011000000000001110000000001100s0000l0000b0000l000e0111111111111111111111111116

1
editor/levels/2.lvl Normal file
View File

@ -0,0 +1 @@
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116

1
editor/levels/3.lvl Normal file
View File

@ -0,0 +1 @@
11111111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117

View File

@ -1,40 +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){
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);}