Я изучаю Godot Engine и GDScript, искал в Интернете события клавиатуры, но не понял. Есть ли в Годо что-нибудь вроде: on_key_down("keycode")
?
События Godot Keyboard
Ответы (3)
Вы можете использовать InputEvent для проверки определенных ключей.
Ознакомьтесь с документацией: http://docs.godotengine.org/en/stable/learning/features/inputs/inputevent.html.
Godot версии 3.0 и выше имеют новые функции ввода-опроса, которые можно использовать в любом месте ваших скриптов:
Input.is_action_pressed(action)
- проверяет, нажимается ли действиеInput.is_action_just_pressed(action)
- проверяет, было ли только что нажато действиеInput.is_action_just_released(action)
- проверяет, было ли действие только что выпущено
Официальной опции OnKeyUp нет, но вы можете использовать функцию _input(event)
для получения ввода при нажатии / отпускании действия:
func _input(event):
if event.is_action_pressed("my_action"):
# Your code here
elif event.is_action_released("my_action):
# Your code here
Действия задаются в настройках проекта> Входная карта.
Конечно, вы не всегда хотите использовать _input
, а скорее получаете входные данные в фиксированных обновлениях. Вы можете использовать Input.is_key_pressed()
, но нет is_key_released()
. В этом случае вы можете сделать это:
var was_pressed = 0
func _fixed_process(delta):
if !Input.is_key_pressed() && was_pressed = 1:
# Your key is NOT pressed but WAS pressed 1 frame before
# Code to be executed
# The rest is just checking whether your key is just pressed
if Input.is_key_pressed():
was_pressed = 1
elif !Input.is_key_pressed():
was_pressed = 0
Вот что я использовал. Не стесняйтесь сообщить мне, есть ли лучший способ сделать OnKeyUp
в Годо.