Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
787 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [awt]État d'une touche pressée/relâchée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[awt]État d'une touche pressée/relâchée

n°753416
raytaller
Posté le 05-06-2004 à 19:10:18  profilanswer
 

Les évènements clavier dans un component se récupèrent dans les méthodes de KeyListener.
 
Je veux savoir si la touche machin est enfoncée : je suis obligé de mettre à jour dans les méthodes d'évènements une variable qui me donnera son état à tout instant ?
 
N'y a-t-il pas un truc tout fait qui donne l'état enfoncé de n'importe quelle touche ?  
 

mood
Publicité
Posté le 05-06-2004 à 19:10:18  profilanswer
 

n°753924
pascal34
one point !
Posté le 06-06-2004 à 15:07:20  profilanswer
 

Ca dépend de ce que tu veux faire

n°753926
raytaller
Posté le 06-06-2004 à 15:08:30  profilanswer
 

un jeu

n°753927
raytaller
Posté le 06-06-2004 à 15:10:47  profilanswer
 

en fait, pour une seule touche, c'est jouable de faire une variable d'état mais pour plusieurs.. ça m'embête de faire un tableau quoi.
 
enfin, si ya que ça comme méthode, je le ferai mais je préfère utiliser des trucs de l'API si ça existe

n°753976
pascal34
one point !
Posté le 06-06-2004 à 17:07:33  profilanswer
 

fais-toi une liste FIFO pour traiter tes évènements dans ton jeu. chaque fois qu'une touche est enfoncée ou relachée ou autre évènement dans ton jeu, tu ajoute une entrée dans la file. Une classe controlleur sera chargée de défiler et dispatcher le travail a effectuer en fonction des évènements.

n°753989
raytaller
Posté le 06-06-2004 à 17:44:20  profilanswer
 

Mhh.. je vais réfléchir à cette méthode merci :)

n°754012
pascal34
one point !
Posté le 06-06-2004 à 18:43:58  profilanswer
 

Avec une méthode comme ça, ton jeu avance par tranche de temps unitaire (100/200 ms par exemple. c'est à tester). Dans chaque tanche, tu devras lire les évènements arrivés depuis la tranche de temps précédente, les dispatcher et les traiter, mettre à jour l'état du jeu et de l'affichage. Il faut faire attention à ne pas avoir trop de chose à faire par tranche de temps. Si par contre tu arrives à tout faire et qu'il rerste du temps jusqu'à la tranche de temps suivante, tu peux essayer de diminuer un peu le temps accordé à une tranche ou laisser telquel si la vitesse du jeu est satisfaisante.

n°754067
raytaller
Posté le 06-06-2004 à 20:18:42  profilanswer
 

attends ,

Citation :


tu devras lire les évènements arrivés depuis la tranche de temps précédente


 
pourquoi ne pas updater ma pile que lors des appels des méthodes KeyListener ?
 
et même, je viens d'avoir une idée : pourquoi ne pas utiliser une ArrayList où j'ajoute/enlève les touches qui sont pressées. Genre, sur un press, j'ajoute au bout la dernière touche (quand je dis touche, je sais pas encore trop quelle sorte de classe, c'est à voir) et sur un release, je vire l'élément qui correspond à la touche lâchée.
 
Après il reste plus qu'à itérer sur la liste pour récupérer les touches pressées.
 
C'est pas bon ça ?


Message édité par raytaller le 06-06-2004 à 21:22:03
n°754340
pascal34
one point !
Posté le 07-06-2004 à 08:54:51  profilanswer
 

C'est possible.
Ce que je te propose c'est pour un peu structurer ton code et permettre une maintenance facile :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [awt]État d'une touche pressée/relâchée

 

Sujets relatifs
Boucle infinie jusqu'à touche appuyée[Access] avoir seulement le dernier enregistrement dans un état
sous état (extensible) dans état en bas de page[ASP + Access] Lancer un Etat Access à partir d'une page ASP
Trouver l'etat d'un fichierBarre d'état (rajout icones)
[ACCESS] Tableaux d'affichage tout simple dans un état[HTML] Problème de textarea et touche TAB...
[pda pocket pc C#] code touche[HTML]Besoin d'aide d'un mec qui touche un peu...
Plus de sujets relatifs à : [awt]État d'une touche pressée/relâchée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR