title: Defold键和文本输入
::: sidenote 建议您先熟悉Defold中输入的一般工作方式,如何接收输入以及输入在脚本文件中的接收顺序。有关输入系统的更多信息,请参阅输入系统概述手册。 :::
键触发器允许您将单个键的键盘输入绑定到游戏操作。每个键分别映射到相应的操作。键触发器用于将特定按钮绑定到特定功能,例如使用箭头键或WASD键进行角色移动。如果您需要读取任意键盘输入,请使用文本触发器(见下文)。
function on_input(self, action_id, action)
if action_id == hash("left") then
if action.pressed then
-- 开始向左移动
elseif action.released then
-- 停止向左移动
end
end
end
文本触发器用于读取任意文本输入。有两种类型的文本触发器:文本和标记文本。
text
捕获普通文本输入。它将操作表的text
字段设置为包含键入字符的字符串。该操作仅在按下按钮时触发,不会发送release
或repeated
操作。
function on_input(self, action_id, action)
if action_id == hash("text") then
-- 将键入的字符连接到"user"节点...
local node = gui.get_node("user")
local name = gui.get_text(node)
name = name .. action.text
gui.set_text(node, name)
end
end
marked-text
主要用于亚洲键盘,其中多次按键可以映射到单个输入。例如,使用iOS的"Japanese-Kana"键盘,用户可以键入组合,键盘顶部将显示可输入的符号或符号序列。
text
设置为当前输入的符号序列("标记文本")。text
类型触发器操作(前提是在输入绑定列表中设置了一个)。单独的操作将操作字段text
设置为最终的符号序列。