虚拟按键和虚拟键盘

在为触摸屏设备开发游戏时,从用户那里获取键盘输入通常很重要。使用GameMaker时,可以通过以下两种方式之一完成:

你使用什么在很大程度上取决于游戏和你需要什么,但总的来说,当你想让屏幕上的按钮用于玩家控制或菜单时,你会使用虚拟键盘,而当你需要玩家输入时,比如获取名字或设置值,你会使用虚拟键盘。

为了让游戏在带有触摸屏的移动设备上正常运行,您可能需要分配屏幕区域,以便在用户触摸某些内容时做出响应。这是通过为内部映射的标准键盘按键分配 “虚拟按键”,然后使用它们生成的键盘事件来控制您的应用程序来完成的。值得注意的是,这些 “虚拟按键” 映射到屏幕位置而不是房间位置,因此 x/ y 值是基于显示屏大小的绝对值。这意味着您无需担心视图或相对房间坐标的使用,只需在对象的 Create Event 中定义按键(每个房间只需要定义一次虚拟密钥),然后在Draw GUI 事件中绘制关键精灵,将 GUI 层调整为与屏幕相同。

注意这些函数在 Windows、Ubuntu (Linux) 或 macOS 上不起作用,它们使用触摸屏的目标平台尽管会以 “触摸” 的形式收到鼠标点击。

注意HTML5和GX.games目标支持这些函数。

可用的虚拟按键函数有:

 

如果您需要在触摸屏设备上的游戏中输入文本或数字,则可以使用提供的虚拟键盘函数来使用设备操作系统键盘。这些函数将调用或隐藏操作系统键盘并接受来自它的输入,但是它将触发常规键盘事件,而是使用用户输入更新keyboard_string变量(这是因为虚拟键盘可以输入整个单词,而不仅仅是单个字符)。

打开或关闭虚拟键盘将生成系统异步事件,其中async_loadDS映射将填充以下键/值对:

可用的虚拟键盘函数包括:

注意 这些函数仅适用于 Xbox(GDK)Android( 包括 AndroidTV) 和 iOS( 包括 tvOS) 目标平台。