Voila, je suis en train de rediger un petit TP pour la libge, a savoir un plus ou moins.
Vu que ma PSP reffuse de lancer l'OSK, et que je n'ai besoin que de nombres (je mettrais surement aussi l'osk en option, mais en attendant l'aide de dridri...) j'ai fait un petit truc avec le psp debug
La fonction n'est pas du tout finie, elle ne renvoie pas la valeur correcte, mais j'ai surtout ce probleme: lorsque j'incremente mon caractere "0", je n'obtient pas "1", mais trois fois un espace, puis "1", puis "i", puis"b", bref, pas du tout ce que je souhaite, en outre le premier "0" apparait decalé et n'est pas modifiable...
Code:
int GetUserY( int lastY, SceCtrlData pad, SceCtrlData oldpad, ge_Image * fond)
{
//Code pour le clavier
//Code en attendant:
int longueur = 6;
int i;
int clavierX = 1;
char*chaineY[longueur];
for (i = 1; i <= longueur; i++)
{
chaineY[i] = "0";
}
while (1)
{
sceCtrlReadBufferPositive(&pad, 1);
geBlitImage( 0, 0, fond, 0, 0, fond->width, fond->height, 1);
geSwapBuffers();
for (i = 1; i <= longueur; i++)
{
setXY(i,1);
printf("%c",*chaineY[i]);
}
setXY(1,1);
printf("%d",lastY);
setXY(clavierX,2);
printf("^");
if ((pad.Buttons & PSP_CTRL_RIGHT) && !(oldpad.Buttons & PSP_CTRL_RIGHT) && (clavierX < longueur))
{
clavierX++;
}
else if ((pad.Buttons & PSP_CTRL_LEFT) && !(oldpad.Buttons & PSP_CTRL_LEFT) && (clavierX > 1))
{
clavierX--;
}
else if ((pad.Buttons & PSP_CTRL_UP) && !(oldpad.Buttons & PSP_CTRL_UP))
{
*chaineY[clavierX]++;
}
else if ((pad.Buttons & PSP_CTRL_DOWN) && !(oldpad.Buttons & PSP_CTRL_DOWN))
{
*chaineY[clavierX]--;
}
else if (pad.Buttons & PSP_CTRL_CROSS)
{
break;
}
oldpad = pad;//On affecte la valeur de pad a oldpad pour pouvoir verifier si la touche est pressée en continue
}
return lastY;
}