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 :

Déplacement personnage en java avec KeyListener: Supprimer le temps de latence quand une touche est enfoncée


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut Déplacement personnage en java avec KeyListener: Supprimer le temps de latence quand une touche est enfoncée
    Bonjour à tous,
    Je suis un grand débutant en java (1 ou 2 semaines tout au plus) et me voilà confronté à un problème dans le développement de mon jeu en java.
    J'aimerais que mon personnage aille à droite quand la touche directionnelle droite est enfoncée et à gauche pour la touche gauche est enfoncée. J'utilise KeyListener (cf image).
    Cela fonctionne parfaitement quand je tape et relâche la touche, sauf que si je reste appuyé sur la touche, mon personnage se déplace une fois, et après un court délai se déplace en continue.
    J'aimerai supprimer ce délai.
    Merci d'avance =)!!
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Première, merci de montrer ton code (et tout le code utile) en utilisant la balise CODE, comme indiqué ici.

    Comme je n'ai pas tout le code, je suppose qu'en réaction à l'appui d'une touche tu modifies les coordonnées de ton mobile. Du coup, il se déplace une fois. Ensuite, le système de bufferisation du clavier prend la suite en envoyant les évenements enregistrés pendant que la touche était enfoncée. Le temps d'attente entre la réaction à la première et celle de la sauite est le temps d'attente normale dû au fonctionnement de ton OS (tu peux essayer de faire la même chose dans un éditeur de texte en enfonçant la touche espace sans la lâcher, tu auras le même effet).

    Pour résoudre ce genre de problématique, on fait plutôt que la touche change des états qui gèrent des directions et on utilise un timer qui déplace le mobile en fonction de la valeur de ces états.

    Ainsi au lieu de faire x = x + 1 pour déplacer le mobile à droite lors de l'appui de la touche, on va dx=1, et au release de la touche dx=0, et le timer fera x = x+dx.

    Exemples d'illustration dans ces posts :

    https://www.developpez.net/forums/d1...r/#post8488394
    https://www.developpez.net/forums/d1...t/#post8767050
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Déplacement Fichier en unix avec JAVA
    Par karimoscapitated dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 27/09/2016, 17h27
  2. Réponses: 4
    Dernier message: 24/11/2014, 01h33
  3. Réponses: 4
    Dernier message: 09/06/2010, 17h44
  4. Exécutable Java avec JRE intégré
    Par clawhammer dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/10/2003, 16h26
  5. Réponses: 2
    Dernier message: 26/05/2003, 19h42

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