我正在研究 Godot 引擎和 GDScript,我在互联网上搜索了有关键盘事件的信息,但我不明白。Godot中是否有类似的东西:on_key_down("keycode")
?
问问题
10880 次
5 回答
12
Godot 3.0 及更高版本具有新的输入轮询函数,可以在脚本中的任何位置使用:
Input.is_action_pressed(action)
- 检查动作是否被按下Input.is_action_just_pressed(action)
- 检查是否刚刚按下操作Input.is_action_just_released(action)
- 检查动作是否刚刚被释放
于 2018-04-21T18:19:34.483 回答
11
您可以使用 InputEvent 来检查特定的键。
查看文档: http ://docs.godotengine.org/en/stable/learning/features/inputs/inputevent.html
于 2017-09-05T07:53:51.653 回答
4
没有官方的 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
在 Godot 中有更好的方法,请随时通知我。
于 2017-12-11T04:03:51.187 回答
0
如果您正在考虑使用 Input 或 _Input(event),请务必进入项目设置并绑定键。
于 2021-10-04T18:04:57.320 回答
0
按工具栏中的项目设置,进入输入地图,然后您可以命名一个动作并为其添加任何键、鼠标或操纵杆。在代码中使用:
if Input.is_action_just_pressed('Your action name'):
print('Pressed!')
于 2022-01-04T13:29:39.267 回答