Extraño suceso con sprites duales

Mi intencion es hacer que una flecha se mueva por las pantallas dando saltos. Este es el codigo:


PA_DualLoadSpritePal(0,(void*)flechas_Pal);
PA_DualCreateSprite(0,(void*)flechas_Sprite, OBJ_SIZE_16X16,1, 0, 0, 9);
PA_DualSetSpriteAnim(0,1);

while (1)
{
while (lectura == false){
posicion += (Pad.Newpress.Down - Pad.Newpress.Up) * 8;
PA_OutputText(0,3,15," ");
PA_OutputText(0,3,15,"%d",posicion);
PA_DualSetSpriteY(0,posicion);
}




Aunque en teoria deberia ir, en la practica cuando le doy abajo, el sprite me aparece en el quinto demonio. Probe ponerle que saltara un pixel en vez de 8. Pero seguia pasando lo mismo.



Aqui os dejo el nds:

http://www.mediafire.com/?nywmmqejmdm



Saludos!
Los PA_WaitForVBL() lloran si no los utilizas.

Debes utilizar en cada ciclo de tu programa una llamada a ésta función para hacer una "espera". De éste modo sincronizas la velocidad de tu juego y se actualizan los registros de estado (como por ejemplo los que indican el estado del Pad de control).

Resumiendo. En cada iteración del bucle debes hacer una llamada a PA_WaitForVBL();
frodonag escribió:Los PA_WaitForVBL() lloran si no los utilizas.

Debes utilizar en cada ciclo de tu programa una llamada a ésta función para hacer una "espera". De éste modo sincronizas la velocidad de tu juego y se actualizan los registros de estado (como por ejemplo los que indican el estado del Pad de control).

Resumiendo. En cada iteración del bucle debes hacer una llamada a PA_WaitForVBL();

Ups [+risas] .

Solucionado, gracias frodonag.
2 respuestas