Correction timer + nouveau niveau + fps constant

This commit is contained in:
Tituya 2020-07-19 01:13:01 +02:00
parent f0cb3509b4
commit 92b22c52ff
7 changed files with 55 additions and 25 deletions

BIN
AST3.g3a

Binary file not shown.

View File

@ -1 +1 @@
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116
111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d00111116

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

@ -0,0 +1 @@
1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000001001000000000110000000000100b0000000001100000000001t0b00000000011000K0000001111aaaaaaaaa1111111110011111ddddddddd16

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

@ -0,0 +1 @@
11111111111111111111111111000000000000000000000001100000000000000000000000110ddd0ddd000d0d0d00000001100d0d0d0d0d0d0d0d0000001100d0d0d0d0d0d0ddd0000001100d0d0d0ddd0d0d0d00000011000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110s0000000000000000000e0111111111111111111111111116

View File

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

View File

@ -9,7 +9,7 @@
#include "collide.h"
#include "define.h"
#define ACCELERATION 0.4
#define ACCELERATION 0.2
#define MAX_VSPD 9.0
int callback(volatile int *frame_elapsed)
@ -53,10 +53,13 @@ int main(void)
frame++;
framelevel++;
draw_level(level);
if(blackout) draw_blackout(player_x, player_y);
draw_player(player_x,player_y);
draw_timer(frame);
if(!(frame%2))
{
draw_level(level);
if(blackout) draw_blackout(player_x, player_y);
draw_player(player_x,player_y);
draw_timer(frame);
if(id_level==1)
{
dprint(85,180,C_RGB(245,245,0),"SHIFT");
@ -65,21 +68,22 @@ int main(void)
dprint(162,173,C_RGB(110,110,110),"sur certains blocs");
dprint(315,115,C_RGB(110,110,110),"Bravo !");
}
dprint(150,100,C_GREEN,"%d",player_x);
dprint(150,120,C_GREEN,"%d",player_y);
dprint_opt(340, 0, C_RGB(255,190,0), C_BLACK, DTEXT_LEFT, DTEXT_TOP, "Coin : %d", coin);
/*dprint(320,120,C_GREEN,"%d",collide_solid(player_x+1, player_y, level, gravity));
dprint(320,140,C_GREEN,"%d",collide_solid(player_x-1, player_y, level, gravity));
dprint(320,160,C_GREEN,"%d",collide_solid(player_x, player_y+1, level, gravity));
dprint(320,180,C_GREEN,"%d",collide_solid(player_x, player_y-1, level, gravity));*/
/*dprint(300,100,C_GREEN,"%d",collide_dead(player_x, player_y, level));
dprint(300,120,C_GREEN,"%c",level[(int)((player_x-1)/16)+(int)((player_y-1)/16*25)]); //top left
dprint(300,140,C_GREEN,"%c",level[(int)((player_x+PLAYER_HEIGHT+1)/16)+(int)((player_y-1)/16*25)]); //top right
dprint(300,160,C_GREEN,"%c",level[(int)((player_x-1)/16)+(int)((player_y+PLAYER_HEIGHT+1)/16*25)]); //bottom left
dprint(300,180,C_GREEN,"%c",level[(int)((player_x+PLAYER_HEIGHT+1)/16)+(int)((player_y+PLAYER_HEIGHT+1)/16*25)]); //bottom right*/
dupdate();
dprint(150,100,C_GREEN,"%d",player_x);
dprint(150,120,C_GREEN,"%d",player_y);
dprint_opt(340, 0, C_RGB(255,190,0), C_BLACK, DTEXT_LEFT, DTEXT_TOP, "Coin : %d", coin);
/*dprint(320,120,C_GREEN,"%d",collide_solid(player_x+1, player_y, level, gravity));
dprint(320,140,C_GREEN,"%d",collide_solid(player_x-1, player_y, level, gravity));
dprint(320,160,C_GREEN,"%d",collide_solid(player_x, player_y+1, level, gravity));
dprint(320,180,C_GREEN,"%d",collide_solid(player_x, player_y-1, level, gravity));*/
/*dprint(300,100,C_GREEN,"%d",collide_dead(player_x, player_y, level));
dprint(300,120,C_GREEN,"%c",level[(int)((player_x-1)/16)+(int)((player_y-1)/16*25)]); //top left
dprint(300,140,C_GREEN,"%c",level[(int)((player_x+PLAYER_HEIGHT+1)/16)+(int)((player_y-1)/16*25)]); //top right
dprint(300,160,C_GREEN,"%c",level[(int)((player_x-1)/16)+(int)((player_y+PLAYER_HEIGHT+1)/16*25)]); //bottom left
dprint(300,180,C_GREEN,"%c",level[(int)((player_x+PLAYER_HEIGHT+1)/16)+(int)((player_y+PLAYER_HEIGHT+1)/16*25)]); //bottom right*/
dupdate();
}
pollevent();
if(keydown(KEY_RIGHT))
@ -104,12 +108,18 @@ int main(void)
else if(!keydown(KEY_SHIFT) && check) check=0;
if(!gravity)
{
if(!collide_solid(player_x, player_y+vert_spd, level, gravity))
if(!collide_solid(player_x, player_y+vert_spd+1, level, gravity))
{
if (vspd<MAX_VSPD) vspd+=ACCELERATION;
vert_spd = vspd;
player_y+=vert_spd;
}
else if(!collide_solid(player_x, player_y+vert_spd, level, gravity))
{
vspd-=ACCELERATION;
vert_spd = vspd;
player_y+=vert_spd;
}
else if(!collide_solid(player_x, player_y+1, level, gravity))
{
vspd = 1;
@ -119,12 +129,18 @@ int main(void)
}
else
{
if(!collide_solid(player_x, player_y-vert_spd, level, gravity))
if(!collide_solid(player_x, player_y-vert_spd-1, level, gravity))
{
if (vspd<MAX_VSPD) vspd+=ACCELERATION;
vert_spd = vspd;
player_y-=vert_spd;
}
else if(!collide_solid(player_x, player_y-vert_spd, level, gravity))
{
vspd-=ACCELERATION;
vert_spd = vspd;
player_y-=vert_spd;
}
else if(!collide_solid(player_x, player_y-1, level, gravity))
{
vspd = 1;

View File

@ -5,11 +5,17 @@ switch(id_level){case 1:
memcpy(level,"10011111111dddd111111111100011110000000000000000000001111001111111dddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e1111100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k0001001111111111111111111111",350);
break;
case 2:
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d000000000l000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350);
memcpy(level,"111001111111100d0d0011111100000111ddd000d0d0000001100000000000000dtd00000e1111111ddd111111111111111100000000000000000l00d0000111111111dd111110100d000110001100000000010100d0001000011000000000d0d00d00000000l0000000000d0d00d00001111dd111000000d0d00111111000011111ddd00d0d00111111000011111ddd00d0d001111110s0011111ddd00d0d0011111111001111111100d0d0011111",350);
break;
case 3:
memcpy(level,"11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d00111111100111111111111",350);
break;
case 4:
memcpy(level,"1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000001001000000000110000000000100b0000000001100000000001t0b00000000011000K0000001111aaaaaaaaa1111111110011111ddddddddd1",350);
break;
case 5:
memcpy(level,"11111111111111111111111111000000000000000000000001100000000000000000000000110ddd0ddd000d0d0d00000001100d0d0d0d0d0d0d0d0000001100d0d0d0d0d0d0ddd0000001100d0d0d0ddd0d0d0d00000011000000000000000000000001100000000000000000000000110000000000000000000000011000000000000000000000001100000000000000000000000110s0000000000000000000e011111111111111111111111111",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;
@ -34,6 +40,12 @@ 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);}