撰写了文章 发布于 2018-07-11 18:01:19
GML学习手记 六点零
我的天,暑假一到玩游戏玩的有点爽,差点把正事儿给忘了(然而玩游戏也是正事儿2333)。所以呢,现在赶紧啊,要继续学习学习。 这次呢,来学习一下跟键盘输入相关的一些知识。我大致浏览了一下,内容还挺多的。开始吧开始吧。
吐槽一下:卡婊这波操作简直了,不过偷偷支持一下。为卡婊扣一波666。但是,不管是wg还是steam我电脑都带不动。
Keyboard Input
这章主要就是说一下在GameMaker: Studio中,有许多和键盘相关的常量和函数,以及如何来使用它们。但是需要注意的是,这些函数和功能只适用于Windows/Mac/Ubuntu桌面平台。一些内置的变量和常量在其他平台上是无效的,而且许多函数也同样不适用于移动设备(我靠,你这不是废话嘛!)。
而且,我们可以使用ASCII码来表示不同的按键,我们可以直接在函数中使用它们。如果记不住他们的话,GameMaker: Studio也给我们配备了ord()函数来表示键盘上一些常用的按键,下面就是它的简单的运用方式:
if keyboard_check(ord('A'))
{
hspeed = -5;
}
上述的代码检查A键是否被按下,如果被按下,则将该物体的水平速度设置为-5。在这里需要注意的是,首先这个字母必须为大写!还有书写在引号当中!
不过这个函数终究只能表达键盘上的这些字母与数字,如果我们想要检测其它的按键时,我们就需要用到vk_常量(vk_表示虚拟键盘)。这个常量可以替代ord()函数和ASCII码。我把文档中的表格整理到了下面:
常量 | 意义 |
---|---|
vk_nokey | 表示没有被按下的键码 |
vk_anykey | 表示被按下的键码 |
vk_left | 表示左箭头键码 |
vk_right | 表示右箭头键码 |
vk_up | 表示上箭头键码 |
vk_down | 表示下箭头键码 |
vk_enter | 回车键啦 |
vk_escape | 退出键啦 |
vk_space | 空格键啦 |
vk_shift | 这个可以同时表示键盘两侧的shift键 |
vk_control | 这个可以同时表示键盘两侧的ctrl键 |
vk_alt | 这个可以同时表示键盘两侧的alt键 |
vk_backspace | 退格键啦 |
vk_tab | tab键啦 |
vk_home | home键啦 |
vk_end | end键啦 |
vk_delete | delete键啦 |
vk_insert | insert键啦 |
vk_pageup | pgup键啦 |
vk_pagedown | pgdn键啦 |
vk_pause | pause/break键啦 |
vk_printscreen | prt sc/sysrq键啦 |
vk_f1 ... vk_f12 | F1到F12键啦 |
vk_numpad0 ... vk_numpad9 | 数字键盘上的数字键啦 |
vk_multiply | 数字键盘上的乘法键啦 |
vk_divide | 数字键盘上的除法键啦 |
vk_add | 数字键盘上的加法键啦 |
vk_subtract | 数字键盘上的减法键啦 |
vk_decimal | 数字键盘上的十进制点键啦,就那个小点点 |
下面,还有一些常量,但这些常量只能和keyboard_check_direct()一起使用,康一康:
常量 | 意义 |
---|---|
vk_lshift | 表示左边的shift键 |
vk_lcontrol | 表示左边的ctrl键 |
vk_lalt | 表示左边的alt键 |
vk_rshift | 表示右边的shift键 |
vk_rcontrol | 表示右边的ctrl键 |
vk_ralt | 表示右边的alt键 |
说白了就是分的更加细一点,暂时不明白其中的意义。
下面就是一个简单的运用例子:
if keyboard_check_pressed(vk_tab)
{
instance_create(x,y,obj_Menu);
}
上述的代码检测是否按下了Tab键,如果有则在指定的地方创建对象obj_Menu。
好了,这一小节就是开了个头,简单的介绍了一下,键盘上的各个键位的表达方式,在之后的几节中,我们会看到关于检测按键的函数。顺带画了个封面23333。
目录