update chrono block timer modifiable + modif editeur

This commit is contained in:
Tituya 2020-07-19 18:00:08 +02:00
parent 92b22c52ff
commit c06c5df873
10 changed files with 118 additions and 32 deletions

BIN
AST3.g3a

Binary file not shown.

View File

@ -2,12 +2,16 @@ ids = 1
save = open("src/setlevel.c","w+")
save.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){")
int *starty, char *gravity, char check_coin, int *appear, int *disappear){\nswitch(id_level){")
while 1:
try:
lv = open(f"editor/levels/{ids}.lvl","r")
ide = lv.read()
save.write(f"case {ids}:\nmemcpy(level,\"{ide[:-1]}\",350);\nbreak;\n")
ide = lv.readlines()
if len(ide)==1: save.write(f"case {ids}:\nmemcpy(level,\"{str(ide[0][:-1])}\",350);\nbreak;\n")
elif ide[1]!='\n':
save.write(f"case {ids}:\nmemcpy(level,\"{str(ide[0][:-2])}\",350);\n*appear={ide[1][:-1]};\n*disappear={ide[2]};\nbreak;\n")
else:
save.write(f"case {ids}:\nmemcpy(level,\"{str(ide[0][:-2])}\",350);\n*appear={ide[2][:-1]};\n*disappear={ide[3]};\nbreak;\n")
ids+=1
except FileNotFoundError:
lv.close()

View File

@ -30,9 +30,12 @@ def load(ids):
global grille, gravityid
try:
lv = open(f"editor/levels/{ids}.lvl","r")
ide = lv.read()
gravityid=ide[350:]
ide = ide[:-1]
ide = lv.readlines()
gravityid=str(ide[0][350:])
if len(ide)==1:
ide = str(ide[0][:-1])
else:
ide = str(ide[0][:-2])
grille=[]
for j in range(14):
grille.append([])
@ -47,6 +50,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))
for a in range(14):
for b in range(25):
pygame.draw.rect(fenetre,(255,255,255),((52*b, 52*a), (52, 52)))
@ -82,9 +87,18 @@ 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))
pygame.display.flip()
def write():
f = open(f"editor/levels/{id_level}.lvl","w+")
if not "c" in str(grille):
if not "m" in str(grille):
f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}")
else: f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}\n{app}\n{disa}")
else: f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}\n{app}\n{disa}")
f.close()
pygame.init()
pygame.mixer.quit()
@ -97,7 +111,8 @@ suite=["0","1","d","s","e","k","3","K","a","c","m","t","l","b"]
id_level = 1
gravityid = 6
disa = 10
app = 13
solid_0 = pygame.image.load("editor/img/solid_0.png").convert()
@ -134,14 +149,28 @@ while securite==False:
if id_level!=1: id_level-=1
load(id_level)
place()
if carac == "z":
app+=1
write()
place()
if carac == "s":
app-=1
write()
place()
if carac == "r":
disa+=1
write()
place()
if carac == "f":
disa-=1
write()
place()
if event.key == pygame.K_LSHIFT:
if gravityid=="7":
gravityid="6"
else:
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()
write()
place()
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
@ -172,6 +201,4 @@ while securite==False:
break
pygame.draw.rect(fenetre,(255,255,255),((52*x, 52*y), (55, 55)))
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()
write()

View File

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

View File

@ -1 +0,0 @@
11111111111111111111111111000000000000000000000001100000000000000000000000110ddd0ddd000d0d0d00000001100d0d0d0d0d0d0d0d0000001100d0d0d0d0d0d0ddd0000001100d0d0d0ddd0d0d0d00000011000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110s0000000000000000000e0111111111111111111111111116

55
editor/setlevel.c Normal file
View File

@ -0,0 +1,55 @@
#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 60
#define FPS 80

View File

@ -1,3 +1,3 @@
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin);
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity, char check_coin, int *appear, int *disappear);
void set_gravity(int id_level, char *default_gravity);
void del_level(char level[]);

View File

@ -26,7 +26,7 @@ int main(void)
char game_loop = 1;
unsigned int frame = 0;
unsigned int framelevel = 0;
int framelevel = 0;
int player_x = 20, player_y = 20;
char level[351];
char gravity = 0; //0 down 1 up
@ -39,10 +39,13 @@ int main(void)
unsigned int coin = 0;
char check_coin = 0;
int appear = 10;
int disappear = 13;
float vspd = 1.0;
int vert_spd = 1;
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin);
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin, &appear, &disappear);
player_x = start_x;
player_y = start_y;
draw_level(level);
@ -153,7 +156,7 @@ int main(void)
vspd = 1;
player_x = start_x;
player_y = start_y;
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin);
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin, &appear, &disappear);
blackout = 0;
framelevel = 0;
}
@ -161,7 +164,7 @@ int main(void)
{
id_level++;
check_coin = 0;
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin);
set_level(id_level, level, &start_x, &start_y, &gravity, check_coin, &appear, &disappear);
player_x = start_x;
player_y = start_y;
blackout = 0;
@ -246,8 +249,8 @@ int main(void)
else gravity=0;
}
if((framelevel/FPS)>13) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='c') level[i]='0'; //after 13 seconds blocks disappear
if((framelevel/FPS)>10) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='m') level[i]='C'; //after 10 seconds blocks appear
if((framelevel/FPS)>disappear) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='c') level[i]='0'; //after x seconds blocks disappear
if((framelevel/FPS)>appear) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='m') level[i]='C'; //after x seconds blocks appear
if(player_y>=212) player_y=-4;
if(player_y<-6) player_y=212;

View File

@ -1,6 +1,6 @@
#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){
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;
@ -11,10 +11,9 @@ case 3:
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350);
break;
case 4:
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000001001000000000110000000000100b0000000001100000000001t0b00000000011000K0000001111aaaaaaaaa1111111110011111ddddddddd1",350);
break;
case 5:
memcpy(level,"11111111111111111111111111000000000000000000000001100000000000000000000000110ddd0ddd000d0d0d00000001100d0d0d0d0d0d0d0d0000001100d0d0d0d0d0d0ddd0000001100d0d0d0ddd0d0d0d00000011000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110s0000000000000000000e011111111111111111111111111",350);
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd1",350);
*appear=12;
*disappear=5;
break;
}if(check_coin) for (int i = 0; level[i]!='\0' ; i++) if(level[i]=='t') level[i]='0';
set_gravity(id_level, gravity);
@ -43,9 +42,6 @@ break;
case 4:
*default_gravity = 0;
break;
case 5:
*default_gravity = 0;
break;
}}
void del_level(char level[])
{memcpy(level,"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",350);}