Pues tengo una duda con la gravedad, el code es:
#define FLOOR (160<<8) s32 x; s32 gravity = 32; s32 velocity_y = 0; s32 spritey = 190<<8; s32 takeoffspeed = 1000; while(1) { x+=Pad.Held.Right-Pad.Held.Left; PA_SetSpriteX(0,0,x); if(Pad.Held.B) { x+=(Pad.Held.Right-Pad.Held.Left)*2; } if((spritey <= FLOOR) && Pad.Newpress.A) { velocity_y = -takeoffspeed; } velocity_y += gravity; spritey += velocity_y; if(spritey >= FLOOR) { velocity_y = 0; spritey = FLOOR; } if (spritey>>8 > -32) PA_SetSpriteY(0, 0, spritey>>8); else PA_SetSpriteY(0, 0, 175); PA_WaitForVBL(); }
y la duda es que al pulsar A y realizo el salto, lo normal es que no vuelva a saltar estando en el aire, pero si vuelvo a pulsar A aun estando en el "aire" sigue elevandose, como hago para que detecte que si se pulsa A en medio del salto no siga subiendo???
Gracias por vuestra futura ayuda. Salu222.
A que os mola la firma!!!
Lo he mirado por encima.
Has puesto que si el sprite esta mas alto o igual de alto que el suelo y pulse A salte, igual si pones solo cuando sea igual al suelo lo soluciones.
Es cierto, ya me di cuenta,
Es cierto, ya me di cuenta, ahora solo salta si esta tocando el suelo. Gracias.
PD: es que lo saque del ejemplo de palib...