Ajout 2 blocs chronos + chrono à modifier

This commit is contained in:
Tituya 2020-07-04 16:05:52 +02:00
parent 79836d70fe
commit 724ca474db
6 changed files with 20 additions and 6 deletions

BIN
AST3.g3a

Binary file not shown.

View File

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

View File

@ -17,7 +17,9 @@ char collide_solid(int x, int y, char level[], char gravity)
return collide(x, y, level, gravity, '1')
|| collide(x, y, level, gravity, '2')
|| collide(x, y, level, gravity, '3')
|| collide(x, y, level, gravity, '4');
|| collide(x, y, level, gravity, '4')
|| collide(x, y, level, gravity, 'c')
|| collide(x, y, level, gravity, 'C');
}
char collide_dead(int x, int y, char level[])

View File

@ -49,6 +49,12 @@ void draw_level(char level[])
case 'K': //key2
dimage(x,y,&img_key1);
break;
case 'c': //chrono blocks
dimage(x,y,&img_solid_1);
break;
case 'C': //chrono blocks
dimage(x,y,&img_solid_1);
break;
}
x+=16;
if(x==16*25)
@ -62,5 +68,5 @@ void draw_level(char level[])
void draw_timer(unsigned int frame)
{
dprint_opt(0, 0, C_WHITE, C_BLACK, DTEXT_LEFT, DTEXT_TOP, "%u.%02u",(frame)/45, (frame)%45);
dprint_opt(0, 0, C_WHITE, C_BLACK, DTEXT_LEFT, DTEXT_TOP, "%u.%02u",(frame)/FPS, (frame)%FPS);
}

View File

@ -20,10 +20,11 @@ int callback(volatile int *frame_elapsed)
int main(void)
{
volatile int frame_elapsed = 1;
int timer = timer_setup(TIMER_ANY, 16500, callback, &frame_elapsed);
int timer = timer_setup(TIMER_ANY, 1000000/FPS, callback, &frame_elapsed);
timer_start(timer);
unsigned int frame = 0;
unsigned int framelevel = 0;
int player_x = 20, player_y = 20;
char level[351];
char gravity = 0; //0 down 1 up
@ -45,7 +46,7 @@ int main(void)
frame_elapsed = 0;
frame++;
framelevel++;
draw_level(level);
draw_player(player_x,player_y);
draw_timer(frame);
@ -122,7 +123,8 @@ int main(void)
vspd = 1;
player_x = start_x;
player_y = start_y;
set_gravity(id_level, &gravity);
set_level(id_level, level, &start_x, &start_y, &gravity);
framelevel=0;
}
if(collide_end(player_x, player_y, level, gravity))
{
@ -130,6 +132,7 @@ int main(void)
set_level(id_level, level, &start_x, &start_y, &gravity);
player_x = start_x;
player_y = start_y;
framelevel=0;
}
if(collide(player_x, player_y, level, gravity, 'k')) //Collide with key1 = disappearance of blocks
{
@ -147,6 +150,8 @@ int main(void)
if(level[i]=='K') level[i]='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(player_y>=212) player_y=-4;
if(player_y<-6) player_y=212;
}

View File

@ -12,7 +12,7 @@ void set_level(int id_level, char level[], int *startx, int *starty, char *gravi
switch(id_level)
{
case 1:
memcpy(level,"111111111111111111111111110000000003a000000000000110000000003a000000000000110000000003a000000000000110000000023a000000000000110000000013a000000000000110000000013a000000000000110000000003a000000000000110000000003a000000000000110000000003a000000000000110000000003a000000000000110000000003a000000000000110s00000k03a00K000000e0011111111111111111111111111",350);
memcpy(level,"111111110011111111111111110000000000000300000000011000000000000030000000001100000000000003000000000110000000000000300000000e11000000000000k3000000mmm1112211aaaaaa113000000mcc1m00000dddddd0m0000000mc0mm000000000000m0000000mc0m1000000000000m0000000mcc11000000000000m0000000mmm11000000000000m0000000000110s0000K00000m000000000011111ddd10011111ddddd11111",350);
break;
case 2:
memcpy(level,"1210011111111002110011122200000111ddd000111000000120000000000000011100000e1111111ddd111112211111121100000000000000000000d0000122111111dd111111200d000210002100000000011200d000200002100000000012100d000000000000000000011100d00001111dd11200000011100112222000011211ddd0021100111111000011111ddd00211001111110s0021111ddd0012100211111110021111111001110021111",350);