:: PlayerAdvance.org ::

:: PlayerAdvance.org :: (http://www.playeradvance.org/forum/index.php)
-   Aide au développement (http://www.playeradvance.org/forum/forumdisplay.php?f=185)
-   -   PSP Aide Utilisation de osl_pad.pressed (http://www.playeradvance.org/forum/showthread.php?t=32914)

Sk4rT4l 21/06/2009 11h55

[RESOLU]Utilisation de osl_pad.pressed
 
Bonjour,

J'ai un problème avec l'utilisation de osl_pad.pressed.cross, la détection des touches n'a pas l'air de se faire tandis que avec osl_pad.held.cross, ça marche très bien.

Voici un exemple du code que j'utilise :
Code:

oslReadKeys();
if (osl_pad.pressed.cross){
        oslDebug("test");
}

Alors qu'avec ce code ça fonctionne :
Code:

oslReadKeys();
if (osl_pad.held.cross){
        oslDebug("test");
}

Si j'utilise une autre touche que la croix, le résultat est le même. J'ai également essayé d'utiliser osl_keys->pressed mais rien n'y fait, ça ne fonctionne pas non plus.

Je pourrais très bien utiliser la deuxième méthode, mais le problème c'est que j'ai besoin d'utiliser ces deux états pour faire des traitements différents.

Je ne sais pas si quelqu'un a déjà rencontré ce problème, et s'il y a une solution.
Pour info, j'utilise l'OSLib MOD de sakya.

Merci d'avance de votre aide

daaa57150 23/06/2009 21h17

T'as du te planter ailleurs, j'utilise aussi l'oslib mod de sakya et ca fonctionne chez moi. J'utilise pas "held" par contre. Regarde voir si t'as pas plusieurs appels à oslReadKeys, ca pourrait expliquer que "held" fonctionne et pas "pressed". Sinon poste un peu + de code qu'on puisse regarder.

Sk4rT4l 24/06/2009 19h05

Pourquoi l'appel à oslReadKeys() plusieurs fois pourrait faire fonctionner held mais pas pressed ?

Il y a un truc que j'ai pas du piger

daaa57150 24/06/2009 21h07

bah c'est simple, pour simplifier disons qu'on s'occupe que d'un bouton:
oslReadKeys fait comme ca:
- si le bouton est appuyé: held=true
- si le bouton n'est pas appuyé: held=false
- si le bouton est appuyé mais qu'il ne l'était pas à l'appel précédent: pressed=true, sinon false
- si le bouton n'est pas appuyé mais l'était à l'appel précédent: released=true, sinon false

tu vois bien que 2 appels successifs à oslReadKeys fera que pressed et released seront toujours false.

donc regarde bien que t'as qu'un seul oslReadKeys par tour de boucle ;)

Sk4rT4l 25/06/2009 16h25

En effet c'était bien ça le problème, merci pour l'explication


Fuseau horaire GMT +2. Il est actuellement 11h58.

Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone