未处理的输入
本课属于 Coddy Godot 学习旅程的“输入与移动”单元。第 6 课,共 28 课。
Godot 还可以告诉你按键的情况。每次按下和松开按键都是一个事件。Godot 会将每个事件发送给一个名为 _unhandled_input 的函数:
func _unhandled_input(event):
if event.is_action_pressed("action"):
print("Action!")这个函数每个事件运行一次,而不是每帧运行一次。事件是按下 action 键时,event.is_action_pressed("action") 的值为 true。松开按键时,值为 false。
not 会将 true 变成 false,反之亦然。这行代码可以切换节点的开关状态:
$Lamp.visible = not $Lamp.visible英雄的天线上有一盏隐藏的 Lamp。action 键是 E 和 Enter。
挑战
简单按下按键来打开或关闭英雄的灯。
- 在
_unhandled_input(event)中,为event.is_action_pressed("action")添加一个if。 - 在其中,将
$Lamp.visible设为与当前值相反的值。
按下 Play,再按 E:灯会亮起,再按一次就会关闭。然后点击 Check。
亲手试试
extends Node2D
func _unhandled_input(event):
pass
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输入与移动中的所有课
自己练习: Godot 在线编辑器