Menu
CoddyTech

未处理的输入

本课属于 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。

challenge icon

挑战

简单

按下按键来打开或关闭英雄的灯。

  1. 在 _unhandled_input(event) 中,为 event.is_action_pressed("action") 添加一个 if。
  2. 在其中,将 $Lamp.visible 设为与当前值相反的值。

按下 Play,再按 E:灯会亮起,再按一次就会关闭。然后点击 Check。

亲手试试

extends Node2D

func _unhandled_input(event):
	pass
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输入与移动中的所有课

自己练习: Godot 在线编辑器