← 第二阶段学习单元凡朴 · 土星老师的创作工坊

第二阶段 · 1/6 · UNIT 07

按一下,事情发生了:输入与动作

按键怎样把我们的意思告诉小院?

第一次打开脚本,建立“输入动作—一段指令—画面变化”的联系。

建议120分钟 · 可拆两次60分钟

今天要做成什么

按一次切换一次灯,能指出输入动作名称和Lamp节点。

准备:Godot 4.6.1标准版、电脑与鼠标、纸笔和三颗种子或小积木。混龄结伴;没有电脑的孩子先参与预测、规则设计,再轮换实际操作。

下载起步工程下载参考完成工程

解压到不同文件夹,导入project.godot,打开main.tscn并运行。起步包保留上一单元能力,本课新行为还没有接好。单元07预置小院节点,先聚焦首次编码。可以将所学移回自己的农场,节点名称与路径需相应核对。

当前练习使用固定相机;收集是按键或按钮驱动的显示变化,开门是模型移动。可编辑工程需在电脑Godot中打开,手机页面用于阅读任务。

先预测,再动手

1. 先用身体演一遍

一人举起写着L的卡片,一人收到卡片后举起纸灯;再来一次放下纸灯。讲清一次按下对应一次切换,不是一直举着就不停切换。先运行参考工程,点击游戏画面后按L观察。

2. 找到脚本住在哪里

导入起步工程,打开main.tscn。选中Farm,点击附加脚本图标打开已有的farm.gd。extends Node3D说明脚本服务于这个三维节点;以#开头的是注释。先认识代码所在的位置,不要求背语法。

3. 给按键一个动作名称

打开项目设置中的Input Map,找到已备好的toggle_lamp动作与物理L键。理解L是按键,toggle_lamp是我们给行为取的名字;试着改绑为T,运行验证,再恢复L。动作名必须与代码里的字符串完全相同。

4. 写下第一条回应

在起步脚本末尾加入下面的核心片段。func是给一段指令取名;Godot会在收到未被界面处理的输入时调用_unhandled_input。冒号后换行并缩进;$Lamp指向场景树中Farm下面的Lamp。今天把event作为工具认识即可。

5. 预测、运行、解释

保存脚本后运行,短按L、再次按L、长按L,观察区别。not把亮与灭互换。不要在_process里每帧切换灯。说明event.is_echo用于忽略键盘长按产生的重复事件。

6. 留一个自己的变化

只修改灯光颜色或能量中的一项,保留可以重新运行的版本。不会输入英文的伙伴可从核心片段复制,重点是指出“什么触发、谁变化、如何变化”。

这一课读懂这一小段

单元07起步工程的farm.gd末尾;保留已有_ready函数。此片段是可运行的最小版本,参考工程另加了屏幕文字提示。

func _unhandled_input(event: InputEvent) -> void:
	if event.is_echo():
		return
	if event.is_action_pressed("toggle_lamp"):
		$Lamp.visible = not $Lamp.visible

只改本课所需的部分。参考工程包含前面已经完成的功能,不要求一次重写整份脚本。遇到错误先读最上面一条,核对行号、名称与缩进。

做到这里,就值得分享

基础任务:按一次切换一次灯,能指出输入动作名称和Lamp节点。

可选挑战:给同一个动作增加另一枚按键,验证两枚按键都能控制同一盏灯。

留下证据:记录第一次脚本运行截图,并用自己的话说明not的作用。

我预测____;实际发生____;我修改____;现在我能解释____。

卡住时检查这里

脚本出现红色提示

先检查英文冒号、引号和缩进;同一层级对齐。按最上面的错误逐个处理,不同时改五处。

按L没有回应

点击运行窗口使其获得焦点,核对Input Map动作名与Lamp节点拼写,确认脚本挂在Farm。

灯光变化不明显

观察左侧灯罩与地面亮斑;可调Lamp的Light Energy。顶部文字也会反馈状态。

AI与英语,一起帮助理解

可以请AI解释某一行、提出两种测试情况,或比较预测与实际。先给出节点名称和错误原文,再核对建议;每次只改一处并亲自验证,不让AI替代整份作品的理解。

每个孩子从当天真实经历贡献3个英文单词,例如input · press · light。共同回忆一个小事件,请AI协助组织短故事,再核对、读演或配图。另留15—20分钟,允许先用中文说明,不强塞所有词。

土星老师的备课提示

首次写代码只保留一个输入分支。让大孩子解释再让伙伴亲自修改;不以打字速度衡量理解。今天的函数与判断先当脚手架,后面会专门拆开。

建议时间安排
0—10分钟观察、演一演,先说预测
10—25分钟土星老师分段引入一个概念
25—50分钟第一轮操作,每次改一处
50—60分钟离屏休息;可在此拆成两次学习
60—80分钟完成基础任务,伙伴互助
80—90分钟离屏休息
90—110分钟试边界、换人试玩与修改
110—120分钟保存工程、解释变化与下一步

若基础任务未完成,下一次接着做;减少挑战,不挤掉休息。可在农场做简短离屏活动。保持每个孩子亲自操作的机会,大孩子通过解释与协助成长。课前打开起步与参考工程,确认键盘、窗口焦点和文件保存位置。

给家长:今天可以怎样聊

请孩子演示一次成功和一次未满足条件的情况,再问“你怎么知道它会这样?”关注解释、尝试和修改过程;允许借助提示和伙伴协助,不把打字速度当成学习能力。

接口参考

Godot输入 · Godot信号 · GDScript语言参考