为什么用 Scratch 做科学实验

科学课上老师讲重力、讲电路、讲天气变化,孩子听得似懂非懂。如果让孩子自己用积木"搭"出一个重力模拟,让小球真的按规律往下掉、撞到地面弹起来,他对重力的理解会比看十遍课本都深刻。

这就是仿真模拟(Simulation)的力量:把抽象的物理规律变成能动手调的参数,孩子改一个数字,立刻看到结果变化,这种反馈循环是最好的学习方式。

写代码不是为了当程序员,而是为了换一种方式理解世界。
本文核心知识点
  • 重力模拟用变量给小球持续加速。
  • 电路模拟用条件判断开关状态。
  • 天气模拟用克隆和循环生成雨滴。
  • 碰撞反弹碰到边界反转速度方向。
Scratch 科学实验配图:蓝色渐变背景上一只卡通猫俯视下落的彩色小球,旁边是带闪电的雨云、冒泡烧杯、灯泡电池电路、放大镜和原子模型
重力、电路、天气:用积木把科学课变成可玩的小实验。

重力模拟:让小球自己往下掉

物理课说:自由落体时,速度每秒增加大约 9.8。在 Scratch 里我们不用真的 9.8,用一个"重力加速度"变量,比如 0.5,视觉上就够了。

给小球角色建两个变量:vy(当前向下速度)和 重力(加速度值)。然后做一个永远循环:

  • 把 vy 增加 重力
  • 把小球的 y 坐标减少 vy(Scratch 坐标系向上为正,所以下落要减)

效果:小球一开始下落很慢,越掉越快,和真实重力一模一样。孩子改一下 重力 的值,就能看到月球上(重力小)和木星上(重力大)小球下落的区别。

电路模拟:开关控制灯泡亮灭

电路课讲:开关闭合,电路通,灯泡亮;开关断开,电路断,灯泡灭。用 Scratch 模拟这个过程非常直观。

做三个角色:电池、开关、灯泡。建一个变量 开关是否闭合(0 或 1)。点击开关时切换这个变量。灯泡角色永远判断:如果 开关是否闭合 = 1,就显示亮造型;否则显示灭造型。

进阶玩法:再加一个电阻角色,让灯泡的亮度随电阻大小变化——电阻越大,灯泡越暗。这样孩子就直观理解了欧姆定律。

天气模拟:云聚成雨的小动画

做一朵云,点击云时从云底不断克隆出雨滴。每个雨滴角色一开始藏在云下面,然后每帧往下移动一点,碰到舞台底部就删除自己。

核心积木逻辑:

  • 云角色:当被点击时,重复 20 次,克隆自己
  • 雨滴角色:当作为克隆体启动时,显示,重复执行 y 坐标减少 5,如果碰到边缘就删除此克隆体

这样就是一场淅淅沥沥的小雨。想模拟大雨?把克隆数量从 20 改成 100。想模拟雪?把雨滴造型换成白色小圆点,下落速度调慢一点。孩子在调整参数的过程中,自然理解了"降水强度"这个概念。

碰撞与反弹:给小球加上地面

前面重力模拟里,小球会一直掉出舞台。我们加一条规则:如果小球碰到地面,就把 vy 变成负数(向上弹),再乘一个 0.8(能量损失,每次弹得低一点)。

重复执行:
  改变 vy by 重力
  改变 y by -vy
  如果 碰到地面颜色:
    把 vy 设为 vy * -0.8

效果:小球掉下来弹起、再落下、再弹起,每次比上次低一点,最后停在地面上——和真实世界完全一致。孩子改 0.8 这个系数,就能看到不同地面(水泥地弹得高、泥地弹得低)的区别。

本节用到的核心积木
  • 变量存速度和重力加速度。
  • 条件判断碰到地面时反转速度。
  • 克隆生成雨滴和小球副本。
  • 广播通知所有雨滴开始下落。