9

我正在研究 Godot 引擎和 GDScript,我在互联网上搜索了有关键盘事件的信息,但我不明白。Godot中是否有类似的东西:on_key_down("keycode")

4

5 回答 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 回答