Partage
  • Partager sur Facebook
  • Partager sur Twitter

3 touche en même temps dans java

Sujet résolu
    17 décembre 2009 à 13:00:52

    Bonjour

    Je suis confronté a un bug dans java que je ne parvient pas a expliquer.
    Je veut que l'on puisse appuyer simultanément sur la touche haut, espace, et une autre de mon clavier.

    if ((evt.getKeyCode() == KeyEvent.VK_LEFT) ||		//Touche gauche
    	(evt.getKeyCode() == KeyEvent.VK_Q))
    	apli.gauche = true;
    	
    if ((evt.getKeyCode() == KeyEvent.VK_RIGHT) ||		//Touche droite
    	(evt.getKeyCode() == KeyEvent.VK_D))
    	apli.droite = true;
    
    if ((evt.getKeyCode() == KeyEvent.VK_UP) ||		//Touche haut
    	(evt.getKeyCode() == KeyEvent.VK_Z))
    	apli.haut = true;
    
    if ((evt.getKeyCode() == KeyEvent.VK_DOWN) ||		//Touche bas
    	(evt.getKeyCode() == KeyEvent.VK_S))
    	apli.bas = true;
    
    if ((evt.getKeyCode() == KeyEvent.VK_A)	||		//Touche maser
    	(evt.getKeyCode() ==  KeyEvent.VK_SPACE) ||
    	(evt.getKeyCode() ==  KeyEvent.VK_SHIFT))
    	apli.a = true;
    


    Code pas très complexe, donc.
    Quand appuis sur Z, Q et Espace, cela marche. Lorsque appuis sur Haut, droite, et Espace, la dernière touche appuyé ne marche pas.

    Vous avez une explication?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      17 décembre 2009 à 13:52:10

      Attention, il ne s'agit pas d'un bug de Java ;)

      Ceci est dû au fonctionnement interne de ton clavier. En appuyant sur plusieurs touches, il se peut qu'il soit impossible de déterminer quelles sont les touches appuyées précisément, c'est ce qu'on appelle le "ghosting".

      Voici un lien intéressant (en anglais) sur ce sujet: http://www.dribin.org/dave/keyboard/html/index.html

      Pour y remédier, soit tu utilises un clavier "anti-ghosting" (plus chers et j'imagine que tu ne comptes pas limiter ton programme aux possesseurs de tels claviers) ou alors tu te débrouilles pour qu'on appuye simultanément sur des touches qui peuvent être dissociées (et là malheureusement, ça dépend assez du clavier utilisé).

      La meilleure façon de faire c'est de tout simplement éviter de devoir appuyer simultanément sur plus de 2 touches.
      • Partager sur Facebook
      • Partager sur Twitter
        17 décembre 2009 à 15:42:08

        Waou. Merci beaucoup.
        C'est pour cela, que, par exemple, les FPS n'utilisent pas les touches directionnels, non?
        • Partager sur Facebook
        • Partager sur Twitter

        3 touche en même temps dans java

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown