1. 用身体认识XY
面向屏幕指出右为X正、下为Y正,与上一阶段3D的向上方向不同。先预测同时按右和下时的移动方向。
阶段 3 / UNIT 14 / 2 OF 6
屏幕上的小鹰怎样听懂方向,又不穿过菜地?
认识CharacterBody2D、速度向量和碰撞形状。
建议120分钟 · 可拆2次60分钟小鹰能移动、停止,并被菜地挡住。
先完成上一阶段作品。准备电脑、鼠标、Godot 4.6.1标准版与纸笔。没带电脑的伙伴可以先做预测和纸面设计,再轮换亲手操作。
下载起步工程下载参考完成工程两个包保留同一套可读的学习脚手架,lesson.gd中的LEVEL控制已启用的能力。打开对应脚本、解释并修改本课函数,再启用新进度;只改等级数字不算完成。没有新功能的设计、试玩与导出课,用作品修改和记录体现进展。
解压到不同文件夹,导入project.godot,打开main.tscn运行。手机用于阅读课程,Godot工程需在电脑打开。每包README包含本课任务;优先继续自己的工程,起步包用于补课与恢复。
面向屏幕指出右为X正、下为Y正,与上一阶段3D的向上方向不同。先预测同时按右和下时的移动方向。
main.tscn里的Player是CharacterBody2D,Visual负责外观,CollisionShape2D负责边界;Garden是StaticBody2D。打开调试菜单的可见碰撞形状,比较外观和边界。
打开player.gd,找到_physics_process。Input.get_vector读取四个内置动作,乘speed得到每秒像素速度,再交给move_and_slide。不要把velocity再乘delta;引擎方法已处理物理步长。
把lesson.gd的LEVEL从1改为2,运行用方向键移动。把speed由220改为150,再试310;每次先预测。起步工程保留完整脚手架,重点是理解和改写player.gd,不是只切换等级。
从正面、斜角和边缘接近菜地;同时按两个方向,再松开。角色不能穿越菜地和围墙,松开后应停住。记录一个不符合预期的地方。
位置:player.gd:_physics_process。下面来自参考工程,依赖工程内已有节点与变量;不要把同名函数重复粘贴。先指出输入、条件与变化,再比较自己的版本。
func _physics_process(_delta: float) -> void:
velocity = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down") * speed if enabled else Vector2.ZERO
move_and_slide()基础:小鹰能移动、停止,并被菜地挡住。
挑战:改变角色碰撞半径,比较窄路能否通过。
留下:记录两种速度与斜向移动表现。
我原先预测____;我实际观察____;我只改变了____;再次验证的结果是____。
确认不是直接改position移动,且双方都有启用的碰撞形状。
使用get_vector限制向量长度,不把两个方向速度简单相加。
可以把本课问题“屏幕上的小鹰怎样听懂方向,又不穿过菜地?”交给AI,请它用例子解释或提出测试情况。给出实际节点名和错误原文,每次只采纳一项修改并运行验证。不要把整份工程、家庭信息或账号口令交给AI。
每个孩子贡献当天真正用过的三个英文词,例如 move · speed · wall。先共同回忆一段真实经历,再借助AI写成短故事,大家核对、听读、表演或配图。另留15—20分钟,允许先用中文表达。
本课重点:认识CharacterBody2D、速度向量和碰撞形状。以“小鹰能移动、停止,并被菜地挡住。”判断是否可以继续。7—15岁混龄约15人时,可结成2—3人伙伴组,大小伙伴轮换操作者与观察者,大孩子通过解释帮助伙伴成长;每个人都要留下自己的操作或判断证据。
先确认基础,再进入挑战。首次接触的孩子可以口述、画图和修改一个参数;熟练者解释规则、设计反例并协助调试。不以输入英文的速度分高低。若基础未完成,下次继续,不压缩休息赶进度。
| 分钟 | 学习节奏 |
|---|---|
| 0—10 | 观察作品、说预测 |
| 10—25 | 土星老师拆解一个关键概念 |
| 25—50 | 第一次动手与验证 |
| 50—60 | 离屏休息,可在此结束第一次学习 |
| 60—80 | 完成基础任务,轮换操作 |
| 80—90 | 离屏休息 |
| 90—110 | 边界测试与伙伴反馈 |
| 110—120 | 保存证据、解释与复盘 |
课间走出创生空间即可进入凡朴农场。在约定的活动范围内,可以休息、自由探索草坪菜地,或由土星老师即兴组织观察与小游戏。英语回顾和农场活动另行安排,不挤占必要的动手时间。