When dealing with the keyboard in GameMaker Studio 2 you have a variety of functions that can be used to recognise different keyboard states like pressed or released. There are also some that store all the key-presses as a string or that can tell you what the last key pressed was, as well as others that allow you to clear the keyboard state completely.
Now, each key is normally defined by a number, called the ascii code, and you can directly input this number into these functions and they will work fine... But, as it's a bit difficult to remember so many numbers and the relationship that they have with your keyboard, GameMaker Studio 2 has a series of constants for the most used keyboard special keys and a special function ord() to return the number from ordinary typed characters (either letters or numbers).
The following is a small example of how to use ord():
hspeed = -5;
So, the above will check the "A" key and if it's being pressed then it'll set the horizontal speed of the object to -5. Note, that the "A" is a capital "A", and that when using ord() the keyboard key to check must always be written in quotes and as a capital. Now, what if you want to use the arrow keys? Or if you want to modify an action using the "shift" key? Well, for that GameMaker Studio 2 has a series of vk_ constants (vk_ stands for virtual keyboard) that you can use in place of ord or the ascii code.
Here is a complete list of the vk_ constants:
|vk_nokey||keycode representing that no key is pressed|
|vk_anykey||keycode representing that any key is pressed|
|vk_left||keycode for left arrow key|
|vk_right||keycode for right arrow key|
|vk_up||keycode for up arrow key|
|vk_down||keycode for down arrow key|
|vk_shift||either of the shift keys|
|vk_control||either of the control keys|
|vk_f1 ... vk_f12||keycode for the function keys F1 to F12|
|vk_numpad0 ... vk_numpad9||number keys on the numeric keypad|
|vk_multiply||multiply key on the numeric keypad|
|vk_divide||divide key on the numeric keypad|
|vk_add||key on the numeric keypad|
|vk_subtract||subtract key on the numeric keypad|
|vk_decimal||decimal dot keys on the numeric keypad|
The following constants can only be used with
|vk_lshift||left shift key|
|vk_lcontrol||left control key|
|vk_lalt||left alt key|
|vk_rshift||right shift key|
|vk_rcontrol||right control key|
|vk_ralt||right alt key|
The following is a small example of how to use the vk_ constants:
instance_create_layer(x, y, "Controllers", obj_Menu);
The above code will detect if the "Tab" key is pressed and create an instance of object "obj_Menu" if it is.
For information on the available GameMaker Studio 2 keyboard functions, please see the following sections of the manual: