1. 玩乱小院再列清单
点亮灯、收两颗种子、尝试开门。请孩子列出重新开始时要恢复什么:计数、种子显示、灯、门的位置和门的状态。只改画面不改数字会怎样?
第二阶段 · 4/6 · UNIT 10
重新开始时,怎样把小院每一处都准备好?
为一组操作命名,用有限的for循环逐个恢复种子,并保持状态一致。
建议120分钟 · 可拆两次60分钟本课参考工程已预留“收集一颗”按钮,暂未连接;仍用C键收集。下一单元亲手把按钮接通。
让一次重来同时恢复画面与数据,解释循环每一轮处理的是谁。
准备:Godot 4.6.1标准版、电脑与鼠标、纸笔和三颗种子或小积木。混龄结伴;没有电脑的孩子先参与预测、规则设计,再轮换实际操作。
下载起步工程下载参考完成工程解压到不同文件夹,导入project.godot,打开main.tscn并运行。起步包保留上一单元能力,本课新行为还没有接好。单元07预置小院节点,先聚焦首次编码。可以将所学移回自己的农场,节点名称与路径需相应核对。
当前练习使用固定相机;收集是按键或按钮驱动的显示变化,开门是模型移动。可编辑工程需在电脑Godot中打开,手机页面用于阅读任务。
点亮灯、收两颗种子、尝试开门。请孩子列出重新开始时要恢复什么:计数、种子显示、灯、门的位置和门的状态。只改画面不改数字会怎样?
回看collect_seed、try_open_gate:定义函数是在准备一套动作,带括号调用才会执行。如果之前点灯只写在输入分支里,现在把$Lamp.visible = not $Lamp.visible移入新函数toggle_lamp(),输入分支改为调用toggle_lamp();参考起步工程已这样整理。再把重来的清单命名reset_yard,像给一段舞蹈取名。
先写$Seeds/Seed1.show()等三行,试一次。再替换成for seed in $Seeds.get_children():,缩进一行写seed.show()。seed是这一轮取到的节点名,可以换成item但要前后一致。
加入下面函数,在输入分支中让reset_yard动作(R)调用它。解释get_children只返回直接子节点;本工程Seeds的直接子节点全是可显示的三维种子,所以可以show。
复制一颗种子到Seeds下,再运行并收集、重来;循环会覆盖新种子,不必多写一行show。保留required_seeds为3时,多一颗种子不改变门槛。
在半途按R,完成后按R,再空院按R。所有状态都应回到同一起点。不要写无退出条件的while循环来“不断等按键”;Godot会持续处理输入事件。
farm.gd末尾追加函数;在_unhandled_input内新增reset_yard动作分支。这里恢复Gate到起步工程的Y=1.0;若自己改过初始位置,也同步调整。
func reset_yard() -> void:
seeds = 0
gate_open = false
$Lamp.visible = false
$Gate.position.y = 1.0
for seed in $Seeds.get_children():
seed.show()
$HUD/Panel/Rows/Status.text = "小院准备好了,种子:0/" + str(total_seeds)只改本课所需的部分。参考工程包含前面已经完成的功能,不要求一次重写整份脚本。遇到错误先读最上面一条,核对行号、名称与缩进。
基础任务:让一次重来同时恢复画面与数据,解释循环每一轮处理的是谁。
可选挑战:在不改重来函数的情况下,新增一颗种子并验证它也能恢复。
留下证据:重来前后截图;一份“数据/画面”双列核对清单。
我预测____;实际发生____;我修改____;现在我能解释____。
核对show是否在for内部缩进,循环是否确实遍历Seeds的子节点。
画面位置和gate_open都需要恢复。
检查是否用+=移动门或累加计数;重来应设定明确初始值。
可以请AI解释某一行、提出两种测试情况,或比较预测与实际。先给出节点名称和错误原文,再核对建议;每次只改一处并亲自验证,不让AI替代整份作品的理解。
每个孩子从当天真实经历贡献3个英文单词,例如function · repeat · reset。共同回忆一个小事件,请AI协助组织短故事,再核对、读演或配图。另留15—20分钟,允许先用中文说明,不强塞所有词。
函数和循环各给一次纸面演练,中间分开尝试。先讲孩子已见过的函数,再讲有限遍历;递归、while和复杂参数留到以后。
| 建议时间 | 安排 |
|---|---|
| 0—10分钟 | 观察、演一演,先说预测 |
| 10—25分钟 | 土星老师分段引入一个概念 |
| 25—50分钟 | 第一轮操作,每次改一处 |
| 50—60分钟 | 离屏休息;可在此拆成两次学习 |
| 60—80分钟 | 完成基础任务,伙伴互助 |
| 80—90分钟 | 离屏休息 |
| 90—110分钟 | 试边界、换人试玩与修改 |
| 110—120分钟 | 保存工程、解释变化与下一步 |
若基础任务未完成,下一次接着做;减少挑战,不挤掉休息。可在农场做简短离屏活动。保持每个孩子亲自操作的机会,大孩子通过解释与协助成长。课前打开起步与参考工程,确认键盘、窗口焦点和文件保存位置。
请孩子演示一次成功和一次未满足条件的情况,再问“你怎么知道它会这样?”关注解释、尝试和修改过程;允许借助提示和伙伴协助,不把打字速度当成学习能力。