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

77 lines
1.9 KiB

#include <tuyau.h>
#include <mario.h>
#include <keyboard.h>
#include <world.h>
#include <framerate.h>
#include <camera.h>
#include <gint/std/string.h>
#include <base.h>
#include <ennemi.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 teleportersSet(teleport_t const * const t, unsigned int const n)
{
if (t)
{
nombre_teleporteurs=min(n,6);
if (nombre_teleporteurs) memcpy(teleporteurs, t, sizeof(teleport_t)*nombre_teleporteurs);
}
else nombre_teleporteurs=0;
}
void teleportersActive()
{
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 (!MKB_getKeyState(t.key)) continue;
/* Animation section */
if (t.key==MK_DOWN) while (mario.p.y+mario.p.h>=8*t.y)
{
dclear(C_WHITE); worldDraw(0,0); dupdate();
waitNextFrame(); waitNextFrame(); // 20/2 = 10 fps
mario.p.y--;
}
if (t.key==MK_RIGHT) while (mario.p.x-mario.p.w<=8*t.x)
{
dclear(C_WHITE); worldDraw(0,0); dupdate();
waitNextFrame(); waitNextFrame();
mario.p.x++;
}
if (t.key==MK_LEFT) while (mario.p.x+mario.p.w>=8*t.x)
{
dclear(C_WHITE); worldDraw(0,0); dupdate();
waitNextFrame(); waitNextFrame();
mario.p.x--;
}
/* End of animated section */
marioResetJump();
mario.p.x=t.tx*8+4; mario.p.y=t.ty*8; // Move Mario
mario.p.vx=0; mario.p.vy=0; // Disables every move of mario
cameraAdjust();
for (int j=0; j<ennemiesNumber(); j++) if (ennemis_global[j].type==PLANTE_ID) for (int k=0; k<99; k++) plante_tour(&ennemis_global[j]);
const tuyau_t c = *((tuyau_t*)worldGetCell(mario.p.x, mario.p.y));
if (c.type==TUYAU && c.y==2) // animation de sortie
{
for (int j=0; j<8; j++)
{
dclear(C_WHITE); worldDraw(0,0); dupdate();
waitNextFrame(); waitNextFrame();
mario.p.y++;
}
}
}
}
}