虚拟按键及虚拟键盘


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

你使用哪种方式在很大程度上取决于游戏和你需要的内容,但一般情况下,当你想拥有用于玩家控制或菜单的屏幕按钮时,你将使用虚拟键,而当你需要玩家输入时则使用虚拟键盘 ,比如获取名字或设置一个值。以下部分概述了与每个输入选项相关的用途和函数。

为了使你的游戏能够在具有触摸屏的移动设备上正常工作,你可能需要能够分配屏幕区域以在用户触摸时响应某些事物。这是通过为内部映射的标准键盘键分配 “虚拟键”,然后使用它们生成的键盘事件来控制应用程序来完成的。值得注意的是,这些 “虚拟键” 被映射到 屏幕 位置而不是房间位置,因此 x / y 值是绝对的,基于显示尺寸。 这意味着你无需担心视图的使用或相对房间坐标,并且可以简单地绘制你的按键精灵并在物体的 绘制 GUI 事件 中定义虚拟键。

注意: 这些函数不适用于 Windows、Ubuntu(Linux),也不适用于使用触摸屏的目标平台 MacOS,尽管它们会将鼠标点击称为 “触摸”。

可用的虚拟键函数是:


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

打开或关闭虚拟键盘将生成 系统异步事件,其中async_load 数据结构(DS)映射将填充以下键 / 值对:

  • "event_type" - 收到的系统事件的类型,它将是虚拟键盘的 “虚拟键盘状态”。

  • "screen_height" - 虚拟键盘的高度(以像素为单位)。如果键盘不可见,则该值为 0。

  • "keyboard_status" - 键盘的当前状态,作为以下字符串之一返回:

    • "hiding"(正在执行隐藏动作)
    • “hidden”(隐藏)
    • "showing"(正在执行显示动作)
    • "visible"(可见)

可用的虚拟键盘函数是:

  1. keyboard_virtual_show
  2. keyboard_virtual_hide
  3. keyboard_virtual_status
  4. keyboard_virtual_height
注意:这些函数仅适用于 Android(包括 Amazon Fire、FireTV 和 AndroidTV),iOS 和 UWP 目标平台。