此函数使您能够将屏幕区域的“触摸”映射到键盘事件。这意味着,一旦您将某个区域分配给某个虚拟键,该区域上的所有触摸都将触发与您映射到该区域的键相对应的键盘事件。您也可以将您定义的每个虚拟键分配给一个变量,然后可以在进一步的虚拟键函数中使用该变量来显示、隐藏和删除它们。这些钥匙是以每个房间为基础分配的,并将在更换房间时由GameMaker自动删除。
虚拟键的实际位置基于屏幕位置而不是房间位置,因此X/Y值在屏幕上是绝对的。这意味着您无需担心视图或相对房间坐标的使用,并且可以简单地在对象的创建事件中定义按键(您只需为每个房间定义一次虚拟按键),然后在绘制GUI事件中绘制您的按键精灵,将GUI层的大小调整为与屏幕相同。
virtual_key_add(x, y, w, h, keycode);
参数 | 类型 | 描述 |
---|---|---|
x | Real | 虚拟按键在屏幕上的X坐标(左侧) |
y | Real | 虚拟按键在屏幕上的Y坐标(顶边) |
w | Real | 虚拟键的宽度 |
h | Real | 虚拟键的高度 |
keycode | Virtual Key Constant (vk_*) | 触摸此区域应触发哪个键盘键事件 |
global.Left = virtual_key_add(32, 32, 64, 64, vk_left);
上面的代码创建了一个64x64像素的正方形虚拟键,位于屏幕上的(32,32)处,当被触摸时,它将触发 vk_left 事件,并将该虚拟键的索引分配给一个全局变量。