supercasiobros/src/mario.c

77 lines
1.5 KiB
C

#include "mario.h"
#include "tile.h"
#include "world.h"
#include <gint/display.h>
#include <gint/keyboard.h>
#include "keyboard.h"
#include "box.h"
extern image_t img_mariosmall;
int numero_frame=0;
tileset_t mario_small={&img_mariosmall, 8,8, 1};
pnj mario=
{
{26,17,8,8,0,0,1},
M_SMALL,
M_RIGHT1, M_WALK,
0
};
void mario_draw()
{
if (mario.size==M_SMALL)
draw_tile(mario.p.x-world_get_real_x0(mario.p.x), mario.p.y-world_get_real_y0(mario.p.y)+2, &mario_small, mario.type1, mario.type2);
}
int test_sol_le_plus_proche(int x, int y)
{
int distance=0;
int t=0;
while (t==0)
{
int type_sol = world_get_ctg(x, y-1);
if (type_sol==CTG_SOIL)
t=1;
if (type_sol==CTG_DEATH)
return distance+1;
type_sol = world_get_ctg(x+7, y-1);
if (type_sol==CTG_SOIL)
t=1;
if (type_sol==CTG_DEATH)
return distance+1;
y--;
distance++;
}
return distance;
}
int global_quit=0;
void mario_move()
{
update_keyboard();
int jump = keys[MK_JUMP1] || keys[MK_JUMP2];
mario.p.vx = keys[MK_RIGHT] - keys[MK_LEFT];
/*
if (hitbox(mario.p.x, mario.p.y-1, 8, 8)==CTG_SOIL)
{
if (jump)
{
if (mario.running==1)
mario.vel_y=6;
else
mario.vel_y=5;
}
else
{
mario.vel_y=0;
}
}
else if (mario.vel_y>=-1)
mario.vel_y--;
*/
box_move(&mario.p);
}