[SDL] input du clavier
Fermé
thyma2
Messages postés
20
Date d'inscription
dimanche 26 mars 2017
Statut
Membre
Dernière intervention
7 janvier 2020
-
5 janv. 2020 à 15:13
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 7 janv. 2020 à 14:16
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 7 janv. 2020 à 14:16
A voir également:
- Sdl input
- No video input ✓ - Forum Matériel & Système
- Input signal out of range change settings to 1600x900-60hz - Forum Windows
- Input signal out of range - Forum Matériel & Système
- No signal input check video cable - Forum Matériel & Système
- Mon écran s'éttein & marque No Vidéo Input - Forum Windows
3 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
6 janv. 2020 à 18:40
6 janv. 2020 à 18:40
Salut thyma2,
Il n'y a pas de fonctions keyup et keydown dans la sdl2.
Je pense que tu parles des types d'événements SDL_KEYUP et SDL_KEYDOWN dans une union SDL_Event obtenue avec la fonction SDL_PollEvent() et de scancode ou de keycode récupéré(s) via les champs key, puis keysym.
En tout état de cause, ce moyen est normalement utilisé pour récupérer des information sur des touches pressées (plutôt que sur des caractères saisis), typiquement pour construire une interface avec l'utilisateur permettant au programme de réagir à la pression d'une touche.
Pour récupérer du texte saisi, tu devrais t'intéresser au type d'événements SDL_TEXTINPUT, qui va récupérer le texte saisi en utf8.
https://wiki.libsdl.org/Tutorials/TextInput
Dal
Il n'y a pas de fonctions keyup et keydown dans la sdl2.
Je pense que tu parles des types d'événements SDL_KEYUP et SDL_KEYDOWN dans une union SDL_Event obtenue avec la fonction SDL_PollEvent() et de scancode ou de keycode récupéré(s) via les champs key, puis keysym.
En tout état de cause, ce moyen est normalement utilisé pour récupérer des information sur des touches pressées (plutôt que sur des caractères saisis), typiquement pour construire une interface avec l'utilisateur permettant au programme de réagir à la pression d'une touche.
Pour récupérer du texte saisi, tu devrais t'intéresser au type d'événements SDL_TEXTINPUT, qui va récupérer le texte saisi en utf8.
https://wiki.libsdl.org/Tutorials/TextInput
Dal
thyma2
Messages postés
20
Date d'inscription
dimanche 26 mars 2017
Statut
Membre
Dernière intervention
7 janvier 2020
2
7 janv. 2020 à 11:23
7 janv. 2020 à 11:23
salut
merci de ta réponse
j'ai essayer donc d'utiliser cette fonction au lieu de celles que j'avais crée.
mais j'ai une erreur à la compilation undefined reference to function sdl TextInput
c'est étrange car j'include bien sdl et les autres fonctions sdl fonctionnent.
c'est peut être du au fait que j'utilise arch linux et non windows ?
merci de ta réponse
j'ai essayer donc d'utiliser cette fonction au lieu de celles que j'avais crée.
mais j'ai une erreur à la compilation undefined reference to function sdl TextInput
c'est étrange car j'include bien sdl et les autres fonctions sdl fonctionnent.
c'est peut être du au fait que j'utilise arch linux et non windows ?
thyma2
Messages postés
20
Date d'inscription
dimanche 26 mars 2017
Statut
Membre
Dernière intervention
7 janvier 2020
2
7 janv. 2020 à 13:22
7 janv. 2020 à 13:22
Re - salut
eh oui j'étais sur sdl1, et cette fonctionne n'existe que sous sdl2
mais comme j'en ai besoin, je migre sur sdl2 (c'est chiant faut refaire pleins de trucs)
je repasse ce soir ou demain pour dire si cette méthode marche sur sdl2
eh oui j'étais sur sdl1, et cette fonctionne n'existe que sous sdl2
mais comme j'en ai besoin, je migre sur sdl2 (c'est chiant faut refaire pleins de trucs)
je repasse ce soir ou demain pour dire si cette méthode marche sur sdl2
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 7 janv. 2020 à 14:32
Modifié le 7 janv. 2020 à 14:32
Oui, c'est pour sdl2.
En sdl 1.2 tu avais SDL_EnableUNICODE() pour paramétrer la sdl en vue d'obtenir le caractère unicode associé à la touche pressée.
Tu as des exemples sur le site de Lazy Foo http://lazyfoo.net/SDL_tutorials/lesson23/index.php (c'est en C++).
Mais cela ne fonctionnait pas bien pour plusieurs raisons (vois https://wiki.libsdl.org/MigrationGuide?highlight=%28SDL_EnableUNICODE%29) et cela a été abandonné dans la sdl2 qui crée un type d'événement et des procédés différents de gestion de la saisie en utf8 et distingués de ceux de gestion des touches.
Avant de migrer tout ton code en sdl2, fais juste un court programme sdl2 de test en utilisant comme base le code du tutoriel.
Si tu es sous Linux, ta console devrait être capable d'afficher les caractères utf8 avec un simple printf(). Tu peux aussi afficher la chaîne utf8 récupérée dans une fenêtre sdl avec SDL_ttf sous la forme d'une surface avec TTF_RenderUTF8_Solid() ou la sauvegarder dans un fichier et l'ouvrir avec un éditeur supportant utf8 (ce qui ne devrait pas être un problème sous Linux).
En sdl 1.2 tu avais SDL_EnableUNICODE() pour paramétrer la sdl en vue d'obtenir le caractère unicode associé à la touche pressée.
Tu as des exemples sur le site de Lazy Foo http://lazyfoo.net/SDL_tutorials/lesson23/index.php (c'est en C++).
Mais cela ne fonctionnait pas bien pour plusieurs raisons (vois https://wiki.libsdl.org/MigrationGuide?highlight=%28SDL_EnableUNICODE%29) et cela a été abandonné dans la sdl2 qui crée un type d'événement et des procédés différents de gestion de la saisie en utf8 et distingués de ceux de gestion des touches.
Avant de migrer tout ton code en sdl2, fais juste un court programme sdl2 de test en utilisant comme base le code du tutoriel.
Si tu es sous Linux, ta console devrait être capable d'afficher les caractères utf8 avec un simple printf(). Tu peux aussi afficher la chaîne utf8 récupérée dans une fenêtre sdl avec SDL_ttf sous la forme d'une surface avec TTF_RenderUTF8_Solid() ou la sauvegarder dans un fichier et l'ouvrir avec un éditeur supportant utf8 (ce qui ne devrait pas être un problème sous Linux).