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

第二阶段 · 5/6 · UNIT 11

敲门与回应:信号

不用键盘,点一个按钮怎样叫动已有的动作?

把按钮pressed信号连接到已有函数,区分发出消息、连接与回应。

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

今天要做成什么

按钮与C键都能收集,每次只增加一颗,并能指出发出者、信号和接收函数。

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

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

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

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

先预测,再动手

1. 做一次传话游戏

一人按纸按钮说“我被按了”,一人按事先约定执行收种子。没有约定就没有回应;按钮不必知道种子藏在哪里。借此认识信号,而不是把信号当成只能用于网络的消息。

2. 找按钮和已有动作

打开起步工程中的HUD/Panel/Rows/Collect按钮。它已显示但尚未连接;按C仍能收集,点击按钮却没有动作。先确认collect_seed函数原本就能工作。

3. 只选一种连接办法

本课程工程用代码连接:在已有_ready函数里增加下面这一行,不另写第二个_ready。pressed后面是connect;传入collect_seed函数本身,没有括号。运行后点击“收集一颗”。

4. 在界面中理解同一件事

土星老师可以演示选中Button,在信号面板找到pressed并连接到接收函数。若改用此方法,先删除代码里的连接,避免两条不同回调重复执行。两种方法选一种完成即可。

5. 同一动作有两个入口

交替按C和点击按钮,计数应每次只加1。两种入口都调用collect_seed,所以边界保护也共用;无需再写另一份收集代码。

6. 断开再接上

先注释那一行连接,验证按钮停止回应但C仍可用;再恢复连接,确认两者都正常。保存一次实验记录;本单元不急着学习自定义信号。

这一课读懂这一小段

修改已有_ready函数;不要把它追加成第二个同名函数。参考工程采用代码连接,main.tscn里没有额外信号连接。

func _ready() -> void:
	$HUD/Panel/Rows/Status.text = "小院准备好了"
	$HUD/Panel/Rows/Collect.pressed.connect(collect_seed)

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

做到这里,就值得分享

基础任务:按钮与C键都能收集,每次只增加一颗,并能指出发出者、信号和接收函数。

可选挑战:以同样方法连接LampButton到toggle_lamp,为下一单元做准备。

留下证据:画出Button → pressed → collect_seed三格图,记录断开连接时发生什么。

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

卡住时检查这里

一运行就收走一颗

connect里误写成collect_seed()会尝试先执行;这里传的是不带括号的函数引用。

点击一次执行两次

检查是否既在编辑器连到一个回调,又在代码连到另一个收集回调;保留一种连接方式。

出现重复函数错误

不要再建一个_ready,把连接放进已经存在的函数。

AI与英语,一起帮助理解

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

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

土星老师的备课提示

信号可以先在场景和按钮上认清,再接触代码。大小伙伴轮流担任按钮、连接线和回应者,把概念演出来;自定义信号作为之后的扩展。

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

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

给家长:今天可以怎样聊

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

接口参考

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