Accueil | Personnaliser | Blog | Extras | Log In | Information
Manuel | D&D icons | GML Parser | Archives | Ville Iso
Username: Password:  
à propos | Caractéristiques | Directory | Bannières | Contacter

Création de jeux avec Game Maker
Création de jeux avec Game Maker

Le Clavier

Les variables et fonctions clavier suivantes existent afin de permettre une interactivité entre le jeu et l'utilisateur :

keyboard_lastkey Code de la dernière touche pressée. Voir ci-dessous pour connaître la liste complète des codes du clavier. Vous pouvez modifier le code retourné. Par exemple, vous pouvez lui affecter la valeur 0 si vous souhaitez le gérer par vous-même.
keyboard_key Code de l'actuelle touche pressée (voir plus bas; 0 si aucune).
keyboard_lastchar Dernier caractère pressé (retourné dans une chaîne de caractères).
keyboard_string La chaîne contient au plus les 1024 derniers caractères frappés au clavier. Cette chaîne ne contiendra que les caractères tapés imprimables. La chaîne assure une gestion correcte lors de la pression de la touche retour arrière (backspace) en effaçant le dernier caractère à chaque appui sur cette dernière.

Il est parfois utile de simuler l'appui d'une touche par une autre. C'est par exemple le cas lorsque vous souhaitez que le joueur utilise à la fois les touches flêchées et les touches du pavé numérique. Plutôt que de dupliquer les actions, vous pourrez faire en sorte que les touches du clavier numérique correspondent à celles des touches flêchées. Vous voudrez peut-être également implémenter un mécanisme dans lequel le joueur pourra choisir lui-même les touches à utiliser dans le jeu. Les fonctions suivantes sont dédiées à cet usage :

keyboard_set_map(key1, key2) Simule l'emploi de la touche de code key1 avec la touche de code key2.
keyboard_get_map(key) Retourne l'actuel mappage de la touche key.
keyboard_unset_map() Réinitialise toutes les touches à leur valeur d'origine (plus de mappage).

Pour contrôler qu'une touche particulière du clavier ou qu'un bouton de la souris aient été pressés, vous pouvez employer les fonctions ci-après. Cela sera particulièrement utile lorsque plusieurs touches seront pressées simultanément.

keyboard_check(key) Retourne si la touche de code key, est actuellement pressée.
keyboard_check_pressed(key) Retourne si la touche de code key a été pressée depuis le dernier step.
keyboard_check_released(key) Retourne si la touche de code key a été relâchée depuis le dernier step.
keyboard_check_direct(key) Retourne si la touche de code key a été pressée en effectuant directement un contrôle hardware. Le résultat est indépendant de l'application en cours. Cela permettra d'effectuer davantage de vérifications. En particulier, vous pouvez utiliser les code de touches vk_lshift, vk_lcontrol, vk_lalt, vk_rshift, vk_rcontrol et vk_ralt pour vérifier si les touches shift gauche, shift droit, contrôle (Ctrl) ou encore alt ont été pressées.

Les routines suivantes peuvent être utilisées pour vérifier l'état du clavier :

keyboard_get_numlock() Retourne si la touche de verrouillage numérique (Verr num) est actuellement en fonction.
keyboard_set_numlock(on) Mets en service (true) ou hors service (false) la touche de verrouillage numérique (Verr num).
keyboard_key_press(key) Simule la pression d'une touche avec le code touche key indiqué.
keyboard_key_release(key) Simule le relâchement d'une touche avec le code touche key indiqué.

Les constantes suivantes existent et concernent les codes touches virtuelles :

vk_nokey code touche indiquant qu'aucune touche n'a été pressée
vk_anykey code touche indiquant qu'une touche quelconque a été pressée
vk_left code touche correspondant à la touche flêche de gauche
vk_right code touche correspondant à la touche flêche de droite
vk_up code touche correspondant à la touche flêche du haut
vk_down code touche correspondant à la touche flêche du bas
vk_enter touche Entrée (enter)
vk_escape touche Esc (escape)
vk_space touche espace
vk_shift touche shift
vk_control touche contrôle (Ctrl)
vk_alt touche alt
vk_backspace touche retour arrière (backspace)
vk_tab touche tabulation (tab)
vk_home touche home (place le curseur en haut et à gauche de l'écran)
vk_end touche Fin (end)
vk_delete touche Suppr (delete)
vk_insert touche Inser (insert)
vk_pageup touche page précédente (pageup)
vk_pagedown touche page suivante (pagedown)
vk_pause touche pause/break
vk_printscreen touche printscreen/sysrq
vk_f1 ... vk_f12 codes touches pour les touches de fonction F1 à F12
vk_numpad0 ... vk_numpad9 touches correspondant aux chiffres du pavé numérique
vk_multiply touche multiplication (*) du pavé numérique
vk_divide touche division (/) du pavé numérique
vk_add touche addition (+) du pavé numérique
vk_subtract touche soustraction (-) du pavé numérique
vk_decimal touche point décimal (.) du pavé numérique

Pour les touches correspondant aux lettres, utilisez par exemple ord('A') (lettres capitales). Pour les touches correspondant aux chiffres, utilisez par exemple ord('5') pour obtenir la touche <5>. Les constantes suivantes peuvent être seulement utilisées avec keyboard_check_direct :

vk_lshift touche shift gauche
vk_lcontrol touche contrôle (Ctrl) gauche
vk_lalt touche alt gauche
vk_rshift touche shift droite
vk_rcontrol touche contrôle (Ctrl) droite
vk_ralt touche alt droite

Par exemple, supposons que vous ayez un objet que le joueur doit contrôler avec les touches flêchées, vous pourrez alors insérer le code programme suivant dans l'événement step de l'objet :

{
  if (keyboard_check(vk_left))  x -= 4;
  if (keyboard_check(vk_right)) x += 4;
  if (keyboard_check(vk_up))    y -= 4;
  if (keyboard_check(vk_down))  y += 4;
}

Bien entendu, il eût été beaucoup plus simple de mettre le code ci-dessus dans les événements clavier de l'objet.

Il existe quelques fonctions supplémentaires concernant l'interactivité clavier avec l'utilisateur.

keyboard_clear(key) Efface l'état de la touche key mentionnée. Cela signifie que celle-ci ne générera plus aucun événement clavier jusqu'au prochain appui sur la touche key.
io_clear() Efface tous les états du clavier et de la souris.
io_handle() Gestion des entrées-sorties (I/O) utilisateur, avec mise à jour du statut du clavier et de la souris.
keyboard_wait() Attends que l'utilisateur presse une touche au clavier.
















<< Traduction française par Philippe Ragni - (2005) >>

Search Search


Alternative versions Alternative versions

You can also read this manual on one single long page (± 1.5 mb)

Also available in: Dutch English German

ZIP Download helpfile

Annonces Annonces

GameMaker Manual