Ajout gravité par défaut dans un niveau

This commit is contained in:
Tituya 2020-07-02 00:00:04 +02:00
parent 9ec8ffc738
commit 53e81843dc
8 changed files with 24 additions and 7 deletions

BIN
AST3.g3a

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 221 B

View File

@ -1 +1,2 @@
void set_level(int id_level, char level[], int *startx, int *starty);
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity);
void set_gravity(int id_level, char *default_gravity);

View File

@ -14,7 +14,7 @@ void draw_player(int x, int y)
}
void draw_level(char level[])
{
dclear(C_WHITE);
dclear(C_BLACK);
unsigned int x = 0;
unsigned int y = 0;
unsigned int i = 0;

View File

@ -16,7 +16,7 @@ int main(void)
int id_level = 1;
int start_x;
int start_y;
set_level(id_level, level, &start_x, &start_y);
set_level(id_level, level, &start_x, &start_y, &gravity);
player_x = start_x;
player_y = start_y;
draw_level(level);
@ -33,11 +33,11 @@ int main(void)
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,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
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();
@ -77,11 +77,12 @@ int main(void)
{
player_x = start_x;
player_y = start_y;
set_gravity(id_level, &gravity);
}
if(collide_end(player_x, player_y, level, gravity))
{
id_level++;
set_level(id_level, level, &start_x, &start_y);
set_level(id_level, level, &start_x, &start_y, &gravity);
player_x = start_x;
player_y = start_y;
}

View File

@ -1,7 +1,7 @@
#include "setlevel.h"
#include <gint/std/string.h>
void set_level(int id_level, char level[], int *startx, int *starty)
void set_level(int id_level, char level[], int *startx, int *starty, char *gravity)
{
switch(id_level)
{
@ -13,6 +13,8 @@ void set_level(int id_level, char level[], int *startx, int *starty)
break;
}
set_gravity(id_level, gravity);
unsigned int x = 0;
unsigned int y = 0;
unsigned int i = 0;
@ -34,3 +36,16 @@ void set_level(int id_level, char level[], int *startx, int *starty)
i++;
}
}
void set_gravity(int id_level, char *default_gravity)
{
switch(id_level)
{
case 1:
*default_gravity = 0; //0 down - 1 up
break;
case 2:
*default_gravity = 1; //0 down - 1 up
break;
}
}