forked from Tituya/AST3_C
Ajout 2 blocs chronos + chrono à modifier
This commit is contained in:
parent
79836d70fe
commit
724ca474db
|
@ -1,2 +1,3 @@
|
|||
#define PLAYER_SPEED 3
|
||||
#define PLAYER_HEIGHT 11
|
||||
#define FPS 60
|
||||
|
|
|
@ -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[])
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
11
src/main.c
11
src/main.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue