IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Fluidité d'un deplacement clavier


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut Fluidité d'un deplacement clavier
    Bonjour a tous !!

    J'ai fait un petit programme de jeux simple de voiture et je butte sur la derniere partie de mon programme qui est la fluidité du deplacement au clavier.

    Ma JFrame (programme codé en swing) implemente KeyListener et intercepte bien les keyPressed. a partir de la je fais bien bouger ma tite voiture mais lorsque je reste appuyer sur une touche, il y a d'abord une phase d'acceleration puis une vitesse de croisiere des evenements clavier, comme lorsque l'on reste appuyer sur une touche dans une boite de dialogue. Pour un jeux de voiture, c'est pas top et je voudrais savoir comment faire pour que le fait de rester appuyer envoie l'evenement associé a la touche a intervalle regulier (de l'ordre de la milliseconde au mieux ).

    Merci a tous !!

    (ps : j'ai chercher sur le forum et aucune reponse trouvée ne m'a réellement satisfait et dans la faq Java de dev.com y'a souris et clavier mais ca parle que de souris )

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Pourquoi n'utilises-tu pas la méthode keyReased(KeyEvent) qui indique que tu à relaché la touche ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Par défaut
    Je devrais l'utiliser comment ? Je capte la pression de la touche puis tant qu'elle est pas soulever, je fait mon evenement jusque la toute les x seconde?

    En fait je suis un peu debutant en thread et je sais pas trop comment gerer ca dans mon programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class ApplicationCourse {
     
        public static void main(String[] args){
            SwingUtilities.invokeLater(new Runnable(){
                public void run(){
                    //On crée une nouvelle instance de notre JFrame
                    new MainForm();
     
                }
            });
        }
     
    }
    puis mainform c'est un JFrame qui contient des JPanel et qui est KeyListener.

    Pour le moment je créer meme pas de thread donc mon appli change que lorsque le clavier envoie (ou que le systeme d'exploitation veux bien recevoir) un evenement du clavier donc c'est pas super temps reel ^^

    Ce qu'il faudrait faire c'est que lors du thread, tout les x temps, je regarde le clavier ? Ca marcherais juste avec la fonction keyTyped (qui de memoire doit etre que la touche EST enfoncé, non ? ) ?

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Je ne vois pas bien les choses mais dans mon idée c'était du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void keyPressed(KeyEvent event) {
    	if(event.getKeyCode == KeyEvent.VK_...)
    		carStart();
    }
     
    public void keyReased(KeyEvent) {
    	if(event.getKeyCode == KeyEvent.VK_...)
    		carStop();
    }

Discussions similaires

  1. Deplacer un objet grace au clavier
    Par peepo dans le forum Interfaces Graphiques en Java
    Réponses: 16
    Dernier message: 31/07/2010, 02h55
  2. deplacer un cube avec clavier
    Par barbieaqua dans le forum GLUT
    Réponses: 9
    Dernier message: 29/07/2007, 11h21
  3. [VB6] [Form] Interdire le déplacement d'une feuille
    Par Loïc dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/09/2002, 15h02
  4. Cherche Nom des touches du clavier
    Par juan64 dans le forum C++Builder
    Réponses: 8
    Dernier message: 23/07/2002, 19h11
  5. Vider le buffer du clavier
    Par flavien tetart dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 12/07/2002, 08h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo