cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009
-
30 juil. 2007 à 15:47
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
30 juil. 2007 à 18:33
Salutations !
Ma question est simple : comment détecter les évenements "appuie d'une touche particuliere " "ou "le relachement d'une touche particuliere" avec allegro ?
je dis "particuliere" car avec allegro , on ne dispose que d'une fonction bool keypressed() ou encore les test pour connaître l'état d'une touche ("enfoncée ou non") mais pas de test pour détecter le relachement et l'appui....
Exemple : si on fait if(key[KEY_A]) action(); action() va boucler si on laisse la touche A appuyée. :'(
Sinon on a readkey()>>8 mais readkey() est blockant dans la mesure on l'on attent qu'on appuie une touche si le keybuff est vide
(on peut l'utiliser avec if(keypressed()) mais alors impossible de déterminer le relachement d'une touche ?!)
Un fan d'allegro parmis vous a une solution à me proposer ?
(Quand je pense que Mugen a été fait avec allegro , avec toutes les combinaisons impossibles et inimaginables de touches pour déclencher une action; et moi qui cherche juste à détecter le relachement d'une touche :'( )
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 30 juil. 2007 à 18:33
En effet ca a l'air moche!
Mo ice que j'aurais c'est de creer un tableau de la meme taille que le tableau key d'allegro. Puis je souvegarderais le dernier etat de chaque touche dedans. Ensuite lors d'un test sur une touche, si la touche est actuellement pressé et qu'avant elle etait relachée, alors on vien d'enfoncée la touche et on met a jour le dernier etat de la touche ( c a d enfoncée) Inversement pour detecter le relachement d'une, si le dernier etat est enfoncé et que maintenant c'est relaché alors on vient de relaché la touche et de meme on remet a jour le tableau....
J'ai pas testé ce que je viens de dire mais a mon avis ca prend moins de lignes.