Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [1.6] isKeyDown  (Lu 3347 fois)

0 Membres et 1 Invité sur ce sujet

cChaD

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
[1.6] isKeyDown
« le: Novembre 20, 2012, 12:09:08 am »
Bonsoir,

Je travaille avec la SFML 2.0 et j'ai vu quelqu'un utiliser avec la 1.6

window.GetInput().isKeyDown()


Je voulais savoir quel etait la difference entre isKeyDown et KeyPressed..


Merci d'avance.


Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [1.6] isKeyDown
« Réponse #1 le: Novembre 20, 2012, 12:18:25 am »
Dans la 1.6, la SFML gérait cette commande pour accommoder les utilisateurs. Aujourd'hui (2.0), ceci n'existe plus.

Event::KeyPressed c'est un événement déclenché par l'utilisateur (il a appuyé une touche). isKeyDown servait à savoir à n'importe quel moment dans le code si une touche est actuellement appuyé (tu ne vas pas recevoir infiniment l'événement KeyPressed quand on tiens une touche enfoncé (bien que c'est possible de setter la répétition des événements...)

Tu dois donc, avec la 2.0, avoir un tableau de booléen stockant l'état de chaque touche du clavier. Ainsi, lorsque tu reçois un Event::KeyPressed, tu mets le nouvel état de la touche dans le tableau. C'est dans ce tableau que tu vas lire pour savoir si l'utilisateur appuie actuellement une touche.

Voilà tout :)

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : [1.6] isKeyDown
« Réponse #2 le: Novembre 20, 2012, 01:08:55 am »
Cette fonctionnalité existe toujours en 2.0, et est disponible dans la classe sf::Keyboard. C'est la même chose que la fonction IsKeyDown en 1.6 : connaitre à n'importe quel moment l'état d'une touche du clavier.
Tu n'as aucunement besoin de tenir toi-même un tableau de booléens représentant l'état des touches.

Si tu cherches à connaître et comprendre les différences entre l'évènement KeyPressed et la fonction isKeyPressed, réfère-toi au tutoriel sur les évènements ainsi qu'à celui sur les entrées en temps réel, pour la 1.6 c'était le même principe.
(neo007, jettes-y aussi un coup d'oeil car apparemment tu as sauté toute la partie sur l'utilisation d'sf::Keyboard ^^ )
« Modifié: Novembre 20, 2012, 01:12:28 am par G. »

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [1.6] isKeyDown
« Réponse #3 le: Novembre 20, 2012, 01:21:45 am »
Ah effectivement, tu as raison (je suis allé voir dans les headers).

Je crois qu'elle n'existait pas dans un ancien snapshot (je ne suis pas sûr...). Du moins, les tutoriaux n'existaient pas à cette époque et je n'avais jamais vu la méthode statique dans le header dans ce temps ::)

C'est toujours bon à savoir ;D

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [1.6] isKeyDown
« Réponse #4 le: Novembre 20, 2012, 01:25:26 am »
Par contre, je ne crois pas qu'il y ait une méthode pour connaître la position antérieur du curseur (pas vu dans les tutos cités en tous cas).

Donc pour créer un déplacement, là je suppose qu'il faut conserver l'ancienne position du curseur, non ?

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : [1.6] isKeyDown
« Réponse #5 le: Novembre 20, 2012, 01:33:23 am »
Ouai, si tu veux savoir de combien de pixels la souris s'est déplacée tu dois conserver sa position précédente.