It is recommended that you familiarise yourself with the general way in which input works in Defold, how to receive input and in which order input is received in your script files. Learn more about the input system in the Input Overview manual.
Key triggers allow you to bind single key keyboard input to game actions. Each key is mapped separately into a corresponding action. Key triggers are used to tie specific buttons to specific functions, like character movement with the arrow or WASD keys. If you need to read arbitrary keyboard input, use text triggers (see below).
function on_input(self, action_id, action)
if action_id == hash("left") then
if action.pressed then
-- start moving left
elseif action.released then
-- stop moving left
end
end
end
Text triggers are used to read arbitrary text input. There are two types of text triggers; text and marked text.
The text
captures normal text input. It sets the text
field of the action table to a string containing the typed character. The action is only fired at the press of the button, no release
or repeated
action is sent.
function on_input(self, action_id, action)
if action_id == hash("text") then
-- Concatenate the typed character to the "user" node...
local node = gui.get_node("user")
local name = gui.get_text(node)
name = name .. action.text
gui.set_text(node, name)
end
end
The marked-text
is used primarily for asian keyboards where multiple keypresses can map to single inputs. For example, with the iOS “Japanese-Kana” keyboard, the user can type combinations and the top of the keyboard will display avaliable symbols or sequences of symbols that can be entered.
text
to the currently entered sequence of symbols (the “marked text”).text
type trigger action is sent (provided that one is set up in the input binding list). The separate action sets the action field text
to the final sequence of symbols.Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB