Le nouveau Super Mario Bros pour la gamme des fx9860g https://www.planet-casio.com/Fr/forums/topic15994-1-[addin]-SuperCasioBros-v0.1.html
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
supercasiobros/src/tuyau.c

75 lines
1.4 KiB

#include <tuyau.h>
#include <mario.h>
#include <keyboard.h>
#include <world.h>
#include <framerate.h>
#include <camera.h>
#include <gint/std/string.h>
static teleport_t teleporteurs[6]={0}; // 6 max
static int nombre_teleporteurs=0; // Nombre d'entités utilisés dans le niveau actuel
void set_teleporteurs(teleport_t const * const t, int const n)
{
nombre_teleporteurs=0;
if (t)
{
if (n>6)
nombre_teleporteurs=6;
else
nombre_teleporteurs=n;
if (nombre_teleporteurs)
{
memcpy(teleporteurs, t, sizeof(teleport_t)*n);
}
}
}
void teleport_active()
{
for (int i=0; i<nombre_teleporteurs; i++)
{
teleport_t const t = teleporteurs[i];
if ((t.x==mario.p.x/8) && (t.y*8==mario.p.y || t.y*8==mario.p.y+mario.p.h))
{
if (t.key>=0)
{
if (!mkb_getstate(t.key))
continue;
}
// Animation section
if (t.key==MK_DOWN)
{
while (mario.p.y+mario.p.h>=8*t.y)
{
dclear(C_WHITE);
world_draw(0,0);
dupdate();
wait_next_frame(); // 10 fps
wait_next_frame();
mario.p.y--;
}
}
if (t.key==MK_RIGHT)
{
while (mario.p.x-mario.p.w<=8*t.x)
{
dclear(C_WHITE);
world_draw(0,0);
dupdate();
wait_next_frame(); // 10 fps
wait_next_frame();
mario.p.x++;
}
}
ResetMarioJump();
mario.p.x=t.tx*8+4; mario.p.y=t.ty*8;
mario.p.vx=0; mario.p.vy=0;
camera_adjust();
}
}
}