La saisie au clavier


Lorsque vous manipulez le clavier dans GameMaker Studio 2 vous disposez d'une variété de fonctions qui peuvent être utilisées pour reconnaître différents états du clavier, comme pressé ou relâché. Il y en a aussi qui stockent toutes les touches en tant que cordes ou qui peuvent vous dire quelle a été la dernière touche enfoncée, ainsi que d'autres qui vous permettent d'effacer complètement l'état du clavier.

REMARQUE: Ces fonctions sont uniquement conçues pour les plates-formes de bureau Windows / Mac / Ubuntu. Vous trouverez peut-être certaines des variables intégrées et les constantes ne sont pas valides sur d'autres plates-formes et la plupart des fonctions ne fonctionneront pas sur les mobiles.

Maintenant, chaque touche est normalement définie par un nombre, appelé code ASCII, et vous pouvez entrer directement ce numéro dans ces fonctions et ils fonctionneront bien... Mais, comme c'est un peu difficile de se souvenir de tant de nombres et de la relation ils ont avec votre clavier, GameMaker Studio 2 a une série de constantes pour les touches spéciales du clavier les plus utilisées et une fonction spéciale ord() pour renvoyer le nombre à partir de caractères typés ordinaires (lettres ou chiffres).

Ce qui suit est un petit exemple d'utilisation ord():

if keyboard_check(ord("A"))
   {
   hspeed = -5;
   }

Donc, ce qui précède va vérifier la touche "A" et si elle est pressée, alors il va définir la vitesse horizontale de l'objet à -5. Notez que le "A" est un "A" majuscule, et que lorsque vous utilisez ord() la touche du clavier à vérifier doit toujours être écrite entre guillemets et en majuscule. Maintenant, que faire si vous voulez utiliser les touches fléchées? Ou si vous voulez modifier une action en utilisant la touche "shift"? Eh bien, pour que GameMaker Studio 2 a une série de vk_ constantes ( vk_ signifie clavier virtuel ) que vous pouvez utiliser à la place d'ord ou du code ASCII.

Voici une liste complète des vk_ constantes:

Constant La description
vk_nokey keycode représentant qu'aucune touche n'est enfoncée
vk_anykey keycode représentant que n'importe quelle touche est pressée
vk_left code clé pour la touche fléchée gauche
vk_right code clé pour la touche fléchée droite
vk_up code clé pour la touche fléchée vers le haut
vk_down code clé pour la touche fléchée vers le bas
vk_enter la touche Entrée
vk_escape touche d'échappement
vk_space clé d'espace
vk_shift l'une des touches de changement de vitesse
vk_control l'une des touches de contrôle
vk_alt touche Alt
vk_backspace touche de retour arrière
vk_tab La touche TAB
vk_home clé de la maison
vk_end touche de fin
vk_delete supprimer la clé
vk_insert insérer la clé
vk_pageup clé de mise en page
vk_pagedown clé pagedown
vk_pause pause / pause clé
vk_printscreen touche printscreen / sysrq
vk_f1... vk_f12 code clé pour les touches de fonction F1 à F12
vk_numpad0... vk_numpad9 touches numériques sur le pavé numérique
vk_multiply multipliez la clé sur le pavé numérique
vk_divide diviser la clé sur le pavé numérique
vk_add touche sur le clavier numérique
vk_subtract soustraire la clé sur le pavé numérique
vk_decimal touches de point décimal sur le pavé numérique

Les constantes suivantes ne peuvent être utilisées qu'avec keyboard_check_direct():

Constant La description
vk_lshift touche Maj gauche
vk_lcontrol touche de contrôle gauche
vk_lalt gauche alt clé
vk_rshift touche Maj droite
vk_rcontrol touche de contrôle droite
vk_ralt touche alt de droite



Ce qui suit est un petit exemple de la façon d'utiliser le vk_ constantes:

if keyboard_check_pressed(vk_tab)
   {
   instance_create_layer(x, y, "Controllers", obj_Menu);
   }

Le code ci-dessus détectera si la touche "Tab" est enfoncée et créera une instance de l'objet "obj_Menu" si c'est le cas.

Pour plus d'informations sur les fonctions disponibles du clavier GameMaker Studio 2, consultez les sections suivantes du manuel:

  1. io_clear
  2. keyboard_check
  3. keyboard_check_pressed
  4. keyboard_check_released
  5. keyboard_check_direct
  6. keyboard_clear
  7. keyboard_key_press
  8. keyboard_key_release
  9. touche du clavier
  10. keyboard_lastkey
  11. keyboard_lastchar
  12. keyboard_string
  13. keyboard_set_map
  14. keyboard_get_map
  15. keyboard_unset_map
  16. keyboard_get_numlock
  17. keyboard_set_numlock