免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

元宵节Scratch编程案例:接汤圆、猜灯谜与花灯巡游设计详解

元宵节Scratch编程案例:接汤圆、猜灯谜与花灯巡游设计详解 1. 元宵节和Scratch碰撞后的第一个问题做什么才不像大杂烩每次到传统节日我的Scratch交流群里都会冒出一批求节日作品的帖子。中秋要月亮嫦娥端午要粽子龙舟到了元宵节最常看到的是把一堆和元宵沾边的元素硬塞进一个程序里——汤圆、花灯、灯谜、烟花全堆在舞台上看起来热闹但玩起来完全不知道重点在哪。这个问题的根源在于Scratch作品和PPT不一样它不是用来展示元素的而是用来交互的。观众打开你作品的第一秒就要明白我该做什么如果开场三秒内没有任何可点击、可操作、可回应的东西那这个作品就失败了。我自己在给孩子们设计元宵节案例时会先画一张玩法优先的草图。什么是玩法优先就是在动手写积木之前先确定一件事这个案例的核心交互动作是什么。比如接汤圆核心动作是移动碗接东西猜灯谜核心动作是输入答案点亮花灯核心动作是点击目标。只要核心动作清晰哪怕角色是个方块、背景是纯色作品也能好玩。反过来如果一开始就纠结汤圆要画多圆灯笼的流苏要几条很容易陷入美术细节结果逻辑上一塌糊涂。今天这篇分享我整理了三个可以直接抄作业的元宵节Scratch案例全部免费分享思路和关键积木逻辑。三个案例分别覆盖了Scratch中最常用的三类知识点随机与变量、列表与条件判断、自定义积木与事件广播。它们不是花架子是实实在在上过课堂、被小学生验证过好玩的作品。先说明一点我不会贴出完整截图式的项目文件因为那些东西你拿走后不改一行代码你的学生或孩子学不到任何东西。我更愿意做的是把每个案例的积木设计思路拆开讲透——你理解了逻辑用Scratch积木搭出来只是时间问题。2. 案例一接汤圆小游戏——变量、随机数与碰撞检测的黄金组合这个案例是三个案例里最基础也最适合新手的。游戏规则不复杂舞台上不断从上方掉落汤圆玩家用鼠标或键盘控制一个碗左右移动接住汤圆得分漏掉汤圆扣生命值生命值为零游戏结束。2.1 舞台与角色的准备细节新建项目后建议按以下方式准备素材舞台背景可以用Scratch自带的spots风格背景或者自己画一个深蓝色的夜空背景。如果你想更有节日气氛可以在背景里画上几盏灯笼的轮廓——用椭圆工具画灯笼身体、线条画挂绳不用画得多精致模糊的剪影就够。汤圆角色用椭圆工具画一个白色圆形加两个小黑点当眼睛、一条弧线当嘴巴。注意造型中心要设在汤圆的正中间否则旋转时位置会偏移。碗角色用椭圆工具画一个半圆碗身加一个深色矩形碗底。同样造型中心放在碗口的中心位置。这里有个新手很容易忽略的点角色的造型中心。默认情况下Scratch角色的造型中心在图片的正中心但用画板画图时如果你从左上角开始画中心点可能会偏到角落。选碗时尤其明显——如果中心点不在碗口中心你移动鼠标时碗会歪着跑手感非常差。修方法很简单选中画板里的所有图形用左右居中上下居中按钮把图形对齐到画板中心。2.2 汤圆的随机掉落逻辑克隆体是主角汤圆的掉落不建议直接用多个角色副本而是用克隆体来实现。核心逻辑这样写在汤圆角色里先写当绿旗被点击的代码每隔1到3秒用在1和3之间取随机数克隆一次自己。在当作为克隆体启动时代码块里先让克隆体移动到舞台顶部的随机X坐标然后让它不断向下移动直到碰到边缘或碗。为什么用克隆体而不是复制多个角色因为克隆体能完美复用同一个角色的造型、变量和代码而且克隆体的数量可以在运行时动态控制。你用复制方式做的话得手动拖十几个汤圆角色到舞台上每个都要单独写代码改一个地方要改十几遍维护成本极高。汤圆的代码大致逻辑如下当绿旗被点击 重复执行 等待 在1和3之间取随机数 秒 克隆 [我自己]克隆体启动后当作为克隆体启动时 移动到 x: 在-220和220之间取随机数 y: 170 显示 重复执行直到 y坐标 -160 将y坐标增加 -3 如果 碰到 [碗] ? 那么 广播 [接到汤圆] 删除此克隆体 如果 y坐标 -160 那么 广播 [漏掉汤圆] 删除此克隆体2.3 碗的控制方式鼠标跟随和键盘控制这里我建议给玩家提供两种控制方式让不同熟练度的玩家都能玩鼠标跟随碗角色里写重复执行将x坐标设为鼠标的x坐标将y坐标设为-140。鼠标在哪碗就跟到哪。这个方式上手最快但高手会觉得太简单没挑战。键盘控制用左右键控制碗移动每次移动5步。这个方式需要一定的反应速度操作感更强。一个进阶技巧如果你想做低门槛、高上限的游戏可以在开场时让玩家选择控制方式——用询问并等待积木问请选择鼠标输入1或键盘输入2然后用条件判断切换到不同代码。注意键盘控制时要处理按下多次方向键的连续移动问题不要用重复执行直到要善用如果按键按下这个积木嵌套在重复执行里。2.4 计分与生命值变量是最直观的交互反馈接住汤圆加分、漏掉汤圆扣命这是变量应用的最好场景。建议新建两个变量得分和生命值。得分要在绿旗点击时初始化为0每次接到汤圆时增加1或5。生命值初始化为5每漏一个减少1。当生命值小于等于0时广播游戏结束停止所有脚本。这里有一个非常重要的细节变量的初始化和显示位置。很多新手会在当绿旗被点击里初始化变量但忘了勾选在舞台显示复选框结果玩家根本看不到自己的得分。请在舞台上右键点击变量显示块选择大字显示或正常显示并拖到合适位置右上角是计分板的老传统。2.5 接汤圆案例的避坑经验与改进方向我在课堂上跑这个案例时遇到过几个很有意思的问题写出来帮你避坑第一汤圆重叠问题。因为随机掉落间隔是1到3秒如果玩家运气好两个克隆体可能同时出现在同一X坐标附近视觉上像两个汤圆合并成一个但计分却算两次。加一个简单判断可以缓解创建克隆体前让汤圆先在舞台顶部的随机位置等待0.1秒再掉落或者限制随机X范围比如只在-200到200之间取整数值不要连续落在同一区间。第二接住判定过于苛刻。我用碰到碗做判定时发现汤圆下落速度设置为3时玩家用键盘操作碗的移动速度是5步/次经常出现汤圆明明碰到碗边但又弹出去了的情况。原因在于汤圆的判定是基于角色碰撞边缘的如果碗的边缘太薄碰到积木的检测不稳定。解决方式是把碗的碰撞区域画得大一些或者用距离小于某值代替碰到碗比如如果 距离 [碗] 30 或 碰到 [碗] ? 那么 广播 [接到汤圆] 删除此克隆体第三游戏结束的清理工作。游戏结束广播后舞台上可能还剩很多汤圆克隆体如果不清理它们会继续运动甚至穿过碗。正确的做法是在汤圆角色里写一段代码响应游戏结束广播将所有克隆体删除可以用当我收到[游戏结束]广播时删除此克隆体。如果你用停止所有脚本它会直接终止汤圆角色的所有脚本但克隆体的删除需要显式处理否则观众会看到场上还有汤圆在飘。扩展方向也很明确把汤圆换成其他元宵馅料黑芝麻、花生、豆沙做不同颜色每接10个汤圆出现一个金元宝加分项或者加入冰糖葫芦特殊道具随机出现接住后5秒内速度翻倍。这些都能让作品从能玩变成好玩。3. 案例二元宵灯谜猜猜猜——列表、询问与条件判断的实战演练如果说接汤圆偏动作类那猜灯谜就是标准的智力类Scratch作品。它的逻辑更简单但知识点密度高要用到列表存放题目和答案、询问积木、条件判断和变量计分。这也是我们编程课堂上练习循环判断组合拳最经典的项目。3.1 题目从哪来列表管理的两个思路灯谜本质上是题目答案的配对。Scratch用列表存题目和答案有两种思路思路一用两个列表一个存题目一个存答案用编号对应。实现方式删除[题目]的全部项目 删除[答案]的全部项目 将[什么动物蹦蹦跳跳耳朵长尾巴短]加入[题目] 将[兔子]加入[答案] 将[白白胖胖猜一食物]加入[题目] 将[汤圆]加入[答案]这种做法的好处是结构清晰容易理解和修改。坏处是题目和答案必须一一对应删改时要同步操作两个列表。思路二用一个列表每个项目存题目答案的格式用分割符分开。比如将[白白胖胖猜一食物汤圆]加入[题库]读取时用记号积木把左边和右边的文本分别提取出来。这种做法适合题量大的场景代码稍微绕一点但维护起来只有一个列表。考虑到是零基础教学我建议先做思路二原因很简单思路二只有一个列表在小学生学习列表索引这个概念时更容易理解第几项。等你熟悉之后再升级成思路一对维护更友好——因为例子中两个列表的第几项是对应的你可以在一个循环里同时读取两个列表的同一下标。3.2 猜灯谜的主流程设计不是简单的一问一答很多初次接触这个案例的同学写出来的代码是这样的询问 [问题] 并等待 如果 回答 答案 那么 说 [答对了] 否则 说 [答错了]这种代码单题确实行得通但放到多题连答场景就有问题了怎么出下一题怎么跳题怎么随机抽题怎么记录总共答对几题所有这些都是这个案例的价值所在。我的设计思路是用编号变量控制出题顺序用随机数打乱出题顺序用计分变量记录得分。3.3 具体步骤出题、答题、反馈、计分出题部分以列表方式存储题目和答案配合一个编号变量。在绿旗被点击时初始化列表数据并将编号设为1。玩家点击开始猜灯谜角色或直接按绿旗后进入主循环将[答对题数]设为[0] 重复执行直到 编号 [题目]的项目数 将[当前题目]设为 [题目]的第 (编号) 项 将[当前答案]设为 [答案]的第 (编号) 项 询问 [当前题目] 并等待 如果 回答 当前答案 那么 说 [回答正确你真是聪明的小灯笼] (2) 秒 将[答对题数]增加[1] 否则 说 [不对哦正确答案是当前答案] (2) 秒 将[编号]增加[1] 说 [全部答完你答对了 答对题数 题]这里有几个关键点值得展开第一询问并等待积木有个坑。玩家输入答案时Scratch会显示一个输入框但如果玩家直接点对勾而不输入内容回答会变成空字符串。空字符串不等于任何答案会判错。如果想更友好可以在判断前先检查如果回答是空则重新询问。不过这个属于高级玩法零基础阶段可以先不管。第二答案匹配的容错问题。玩家输兔子和兔兔算不算对Scratch的积木做的是精确匹配所以你要么严格出题要么在出题时把题目问得足够具体减少错误输入的概率。如果想做模糊匹配可以用如果 [当前答案] 包含 [回答] 或 [回答] 包含 [当前答案]。这个技巧能让判断更宽容但也会带来误判风险比如答子就算对看你的使用场景决定。第三随机抽题怎么实现常规的做法是出题前把编号随机打乱比如用将编号设为在1和题目列表项目数之间取随机数但这样可能连续出同一题。更好的做法是另建一个抽题顺序列表初始化时把1到N的编号加入列表然后随机取一个编号取过后从列表中删除保证每个题目只出现一次。这个随机抽题不放回的逻辑在Scratch里用列表操作也能做是训练逻辑思维的好素材。将[抽题顺序]的全部项目删除 重复执行 (题目列表的项目数) 次 将[编号]加入[抽题顺序] 重复执行直到 抽题顺序的项目数 0 设置[随机编号]为 (在 1 和 (抽题顺序的项目数) 之间取随机数) 设置[当前题目号]为 (抽题顺序的第 (随机编号) 项) 删除 抽题顺序 的第 (随机编号) 项 ...用当前题目号查题目和答案3.4 进阶玩法把灯谜变成翻牌游戏或抢答赛光有列表和询问的灯谜玩过一次后新鲜感会下降。我建议做两个升级方向方向一灯谜翻牌。准备12张灯笼牌用列表记录状态比如1表示未翻开0表示已翻开。玩家点击灯笼牌时如果状态是1则翻开显示题目如果是0则不可点。答对后灯笼牌变亮答错则翻回去。这个设计加入了记忆翻牌答题的双重机制可以用来做课堂竞赛。方向二抢答赛制。两个玩家共用一个键盘通过按嗅探键抢答比如按A键代表左边玩家抢答按L键代表右边玩家抢答。用按下按键事件或循环检测结合变量记录抢答的玩家编号答对加分答错扣分。为什么用抢答因为Scratch的询问并等待在多人场景下会阻塞你需要改成先抢答、再输入答案的设计。3.5 在这个案例中最值得教给学生的一个点这个案例我每次上课都特别强调一个概念程序里的数据存储结构决定了程序的上限。用多个角色堆故事、用一堆变量存问题、写几十个如果那么分支的程序是小作品而用列表统一管理数据、用循环批量处理、按索引取值的程序是能无限扩展的作品。学生在做这个灯谜项目时如果只满足于我加了五道题就跑通了过两周再加二十道题就会发现数据结构设计得不好加题就是灾难。我说这句话可能有点抽象但你亲自试一次就懂了——把题目放进列表前后维护成本的差距是十万八千里。4. 案例三元宵花灯巡游——自定义积木、事件广播与造型切换的综合运用前两个案例偏游戏这个案例偏动画互动。元宵节最浪漫的意象之一是花灯而Scratch角色可以做花灯巡游一排花灯在舞台上缓慢游动玩家点击某一盏灯时它会变亮、变色、讲一句祝福语或者播放一段音乐。这个案例虽然没有那么强的输赢感但在气氛烘托、交互体验和美术表现上做得好了观赏性极强。4.1 为什么要用自定义积木来组织这个案例花灯巡游这个项目里有大量重复逻辑每盏花灯都要做上浮下沉摆动、闪烁、被点击后响应。如果你复制十几个角色每个角色的代码一模一样只是换了造型那维护成本就高了。自定义积木制作新的积木可以解决这个问题定义一次通用的花灯动画积木所有花灯角色调用同一个积木。Scratch的自定义积木有两种类型命令型直接执行一系列动作和报告型返回一个值。在这个案例里我们主要用命令型。另外自定义积木可以带参数如果你是进阶用户可以定义一个花灯摆动速度参数这样每盏灯的摆动节奏可以不同视觉上更有层次。要提醒的是自定义积木默认是运行时不刷新屏幕的选项很多人会在这里卡一下。如果你在自定义积木里想让舞台立即更新显示要去掉勾选运行时不刷新屏幕如果你的自定义积木是纯计算逻辑比如算一个数字就可以勾选它来加速。区分这一点非常重要否则你会遇到灯半天不动的怪问题。4.2 一盏花灯的完整动作拆解以单独一盏花灯角色为例它的完整动作包括绿色指示器闪烁用造型切换模拟——花灯从暗造型切换到亮造型间隔0.2秒。上下浮动把y坐标在-5到5之间来回变化用将y坐标增加-1到1之间的随机数配合边界判断做出轻盈感。左右旋转轻微摇摆角度变化控制在-15度到15度之间太小看不出来太大像杂技。被点击时播放一段优雅的动画角色放大缩小、说祝福语、播放音效。把这三段逻辑分别做成三个自定义积木定义 [闪烁动画] 重复执行 下一个造型 等待 [0.2] 秒 定义 [浮动动画] 重复执行 如果 y坐标 20 那么 将y坐标增加 [1] 否则 将y坐标增加 [-1] 等待 [0.05] 秒 定义 [点击响应] 重复执行 如果 按下鼠标? 且 碰到 [鼠标指针] ? 那么 说 [元宵节快乐] (2) 秒 播放声音 [pop] 重复执行 [10] 次 将大小增加 [-2] 重复执行 [10] 次 将大小增加 [2]4.3 事件广播的真正价值让所有花灯响应同一个节日信号如果你只想做一盏灯那写分支就够了。但花灯巡游的亮点在于多灯联动你点击广场中央的主灯舞台上的所有花灯同时闪烁、变色、播放音效形成全城同庆的观感。这时候事件广播就派上用场了。主灯的点击响应代码里广播一个元宵节到啦的消息。所有花灯角色都编写当我收到[元宵节到啦]时闪烁10次或者切换到下一套节日模式造型。广播可以带参数吗Scratch自带的广播不能带参数但它可以广播多条消息来传递信息比如开始闪烁和停止闪烁。如果你想在广播时传递更多信息可以把参数存入全局变量再广播接收方去读取这个变量。这是一种常见的Scratch模式。事件广播还有一个用法它能让不同角色之间解耦。比如舞台上除了花灯还有一个月亮角色和祝福词角色。当广播元宵节到啦时月亮角色可以播放一段变亮缓慢移动动画祝福词角色显示团圆两个大字飘过舞台。设计良好的广播体系即使以后加20个角色也不用改动彼此的代码——每个角色只管我收到消息后怎么做自己的事。4.4 造型设计的经验同一个角色多套造型的力量花灯巡游最大的工作量在美术但有个性价比极高的方法一个角色只画一个含多套灯造型的角色通过造型切换实现未点亮点亮更亮三种状态。不要做三个角色这样你就能用下一个造型积木快速切换而且计分/碰撞检测都不受影响。打开画板工具先画一盏普通花灯比如六角宫灯用椭圆线段矩形组合。然后右键克隆这个造型改动一下颜色比如把黄色改成橙红作为点亮状态。再克隆一个把亮度调高用填充色更亮作为全亮状态。这样一套三个造型代码里下一个造型循环就能做出呼吸般的闪烁效果。如果想让花灯巡游更有动感可以给每个花灯角色设置不同的巡游路线。Scratch可以给角色设置在(-200, -100)和(200, 100)之间随机位置但如果你希望它们沿着一条弯曲路径游行可以用滑行积木串接多个控制点。比如主灯从舞台左边滑到中间停顿2秒再滑到右边中间通过广播触发其他角色的跟随动作。4.5 这个案例里我踩过的坑噪音、角色重叠和灯不走这个项目我实际在教学里跑过很多次有几个常见坑值得单独写一写。坑一音效循环导致程序卡顿。花灯巡游要播放背景音乐很多人习惯用重复执行 播放声音直到播放完毕结果发现角色操作响应变慢因为播放声音会占用大量CPU。建议用播放声音[背景音乐]并等待等待完后再从头播放或者用Scratch的声音标签页把背景音乐设为循环播放——比在代码里用循环更流畅。坑二花灯与花灯之间相互重叠。如果你让多个花灯角色都做上下浮动它们的浮动相位往往相同于是它们会齐刷刷一起上下像一支训练有素的军队。这种整齐划一反而失去了节日街头的热闹感。解决方法是在每个花灯角色里用将y坐标增加在-1和1之间取随机数来代替固定步长再配合等待在0.1和0.3之间取随机数秒扰乱节奏。每个角色的浮动节奏略有不同视觉上就活了。坑三广播消息积压在队列里。如果你在当作为克隆体启动里收到广播并执行长时间动画同时主灯又频繁广播克隆体可能根本来不及处理完上一条就收到下一条。解决思路广播前用等待间隔比如主灯点击后广播一次然后等待0.5秒再允许下一次广播避免消息风暴。5. 三个案例怎么选给家长、老师和自学者的一次性决策指南前面三个案例内容量和难度是逐步上升的。很多人看到三个案例都分享第一反应是那我全做。但以我的经验来看全做不是最优策略——选最合适的一个做精、做透比三个都浅尝辄止更有收获。下面给出我的筛选建议。5.1 按学习目标选案例学习目标推荐案例核心知识点预计完成时间第一次做Scratch作品接汤圆小游戏变量、随机数、克隆、碰撞检测2-3小时巩固列表和条件判断猜灯谜列表、询问回答、条件分支、循环2-4小时提升项目组织能力花灯巡游自定义积木、广播、造型切换3-5小时如果你是零基础家长带孩子入门我强烈建议从接汤圆开始。原因很朴素它有即时的视觉反馈汤圆掉下来、碗接到、分数变化孩子的成就感来得快不容易中途放弃。编程教育的最大敌人不是难而是无聊——给零基础的人做一个纯文本问答的灯谜对他来说就是打字练习毫无编程乐趣可言。如果你是老师计划在课堂里带一个元宵节主题的Scratch课程我建议做猜灯谜或花灯巡游。因为这两个案例天然适合先给框架、再让学生填充内容的课堂模式老师搭好列表和主循环学生负责往列表里添加自己的灯谜题目或者老师搭好广播体系学生完善自己的灯角色造型。这样每个学生的作品最终都是不一样的能激发创作欲。5.2 按教学场景选案例单次课45分钟推荐接汤圆但要做减法——只保留碗的移动汤圆掉落得分变量三个主干不要求做生命值、多个道具和多种馅料。先跑通核心玩法再慢慢加内容。两三次课的短期项目推荐猜灯谜第一课时搭好列表和出题逻辑第二课时加随机抽题和计分第三课时美化界面或加抢答功能。期项目推荐花灯巡游它适合多个课时持续迭代每个课时加一个新角色或一种新动画最后合成一台完整的元宵晚会。5.3 一个容易踩的规划坑过度设计在选案例阶段最大的坑不是选错案例而是在设计阶段就野心太大。有个学员曾经跟我说他想做一个元宵节大世界有汤圆工厂、灯谜塔、烟花秀、舞龙队……听到这个计划我第一反应就是劝他砍掉至少一半内容。Scratch项目不是越复杂越好它是越小越精越好。一个只有一朵烟花但控制得优雅的程序胜过十个功能堆砌但逻辑混乱的项目。我的实践原则是一个作品只讲一个核心知识点其他都是辅助。接汤圆的核心是变量和随机灯谜的核心是列表和条件花灯的核心是事件广播。加再多的花活核心不能乱。这样不仅代码清晰你在分享或教学时也更容易把知识点讲透。6. 三个案例背后的编程思维课变量、列表、广播的节日化拆解做完这三个案例认真复盘的话你会发现它们不只是在做元宵节主题而是在用编程思维重新组织一个节日场景。这一部分才是真正的隐藏知识点。6.1 变量让程序记住你玩了什么在接汤圆案例里得分和生命值是玩家状态的标记在猜灯谜案例里答对题数记录答题结果。这些变量背后的思维是程序需要状态。没有状态的程序做任何事都是一次性的——今天打开和明天打开没有区别。很多初学者在学完变量积木后经常会问为什么我的变量不加分这类问题。排查方法很简单先看变量是否初始化了绿旗点击时设成0再看加分指令所在的位置是否被触发了比如碰到碗的碰撞检测是否写在了克隆体代码里而不是本体代码里。我见过太多错误的克隆体加分没生效案例最终都是把加分代码写在了当绿旗被点击里而不是当作为克隆体启动时里——克隆体根本不会执行本体初始化的代码。这个排查思路本身比做游戏更有价值。6.2 列表程序可以有序地处理大量数据猜灯谜案例里的题目列表和答案列表以及花灯巡游里控制巡游路线的路径点列表都是在用数据驱动程序。这是Scratch教程容易忽略的一层很多时候Scratch学习者以为编程就是拖积木但其实真正重要的是定义数据结构。你留意观察用列表做出题系统和用一个大字符串中间用逗号分隔来存题目是完全不同的体验。前者结构清晰、方便增删后者虽然代码手写快但维护时容易出错。这些选择的背后的逻辑其实就是计算机科学里的数据结构选型。虽然Scratch不会跟你说数组对象这些概念但你已经通过拖积木建立了朴素的认知这对以后学真正的编程语言是极好的铺垫。6.3 广播程序各部分可以解耦地协同花灯巡游里主灯点击时广播元宵节快乐其他角色各自有回应。这个机制的思维是发起者和接收者不需要互相认识。主灯不需要知道花灯有几个、叫什么名字它只管广播任何角色只要接收广播就能响应。这个间接通信的思维在Scratch里看似简单但它其实是软件工程里观察者模式、事件驱动架构的启蒙。很多孩子学完Scratch广播再去学Python或JavaScript时理解事件监听消息队列会快很多——因为脑子里已经有了具象的广播-接收模型。6.4 节日主题项目的一个隐藏优势跨学科拓展这三个案例还不只是编程。它们天然包含数学分数的计算、随机数的概率感、计时与速率、语文灯谜的修辞与谜面创作、美术角色造型、背景构图、色彩搭配、音乐背景音效和节日音乐的选择。做元宵节主题项目其实是一个小型STEAM项目。比如说猜灯谜列表里的每一道谜题设计谜面时就得想修辞和逻辑接汤圆的随机掉落要理解在一定范围内取随机数带来的概率分布为什么0到100之间每个数概率都相等但数值很大和数值很小的感觉不一样花灯巡游里的摆动幅度涉及三角函数的直观感受虽然Scratch不需要你用正弦函数但你能直观看到平滑的摆动和跳变的闪烁之间的区别。这些内容如果单独做练习题孩子会觉得枯燥但揉在节日作品里一切都变自然了。7. 发布与分享环节零成本做一份能拿得出手的元宵节Scratch作品做完了案例下一步自然是分享。但分享不等于把.sb3文件发到微信群里让朋友下载后打开——这样做门槛太高很多人不知道如何用Scratch离线包打开更别说跨平台分享了。所以这一节专门聊聊如何零成本让你的作品传播出去。7.1 将作品打包成可执行文件3分钟做到Scratch 3有自带文件-保存到电脑的功能这是给编辑者用的。但如果你不想让别人看到你的代码或者对方电脑没有Scratch可以做两步第一步导出为视频。用Scratch 3的录制视频功能或者用系统自带的录屏Windows按WinG、Mac用QuickTime Player录下运行画面再剪掉多余部分。视频的好处是人人能看适合放社交媒体或发给家长群。缺点是无法交互适合展示动画型作品比如花灯巡游不适合展示游戏型作品比如接汤圆观众自己不能玩。第二步如果一定需要别人能玩的独立文件Scratch 3可以用打包器工具如turbowarp导出HTML、Windows exe或macOS应用。Turbowarp是个开源在线编译工具它能把Scratch项目打包成单个HTML文件——通过浏览器直接玩不需要安装Scratch。要注意的是Turbowarp默认会把项目编译成更快的运行方式绝大多数情况下效果稳定但个别复杂的项目依赖音效循环或某些特殊扩展可能会表现异常。发布前一定要自己测试一遍。7.2 发布到社区去哪儿、怎么写简介很多Scratch学习者不知道Scratch官网scratch.mit.edu有官方社区注册后可以上传作品任何人在线玩。中国境内访问Scratch官网有网络限制问题如果打不开可以用国内一些Scratch在线平台、编程猫社区、网易卡搭等——这些平台各有优势上传作品前注意查看平台的版权和年龄要求。上传作品时标题和简介很关键。我的经验是两个原则原则一标题里明确互动点。不要写元宵节作品这种泛泛的标题而是写接汤圆小游戏-你能接住多少分元宵灯谜大挑战-10道题等你答花灯巡游-点击每盏灯有惊喜。这样别人在信息流里一眼就能知道我能在这个作品里做什么。原则二简介里写清楚适合谁和怎么玩。举个示例这是一个元宵节主题的Scratch小游戏。用鼠标或键盘左右键控制碗接住从天上掉下来的汤圆每接住一个得5分。漏掉一个扣1条命一共5条命。看看你能坚持多久适合Scratch初学者学习变量和克隆体的用法。欢迎点赞留言我会更新更多节日主题案例。这样写的好处是老师/家长在搜索素材时一眼就能判断作品的适合度和用法省去下载后摸索的功夫。7.3 分享时的防坑提示一个很常见的坑是作品运行起来没问题但打包成HTML后音效不见了。原因一般是Scratch项目里用到的音频文件没有正确嵌入。Scratch官方在线编辑器是自动嵌入的但Turbowarp等工具需要你在项目文件里确认音频已经作为项目资产包含进去。打包前先在Turbowarp里预览一次如果没声音回到Scratch项目文件里重新导入音频。另一个坑是字体问题。如果你在作品里使用了特殊字体比如汉字书法体Scratch项目文件不会嵌入字体文件。别人打开时如果系统里没有该字体会显示为默认字体排版可能错乱。中秋快乐变成中秋快乐还是同一字体的话没问题但如果你的标题用的是美术字设计可以转换成图片形式用图片显示而非文本显示。8. 从做完一个案例到做出自己的元宵节系列我的四个复盘问题最后想和大家聊聊做项目这件事本身。我见过太多人做Scratch作品是教程说做什么就做什么做完一个案例发给老师或家长后再也不打开那个项目。这样的学习效果说实话很低。真正有效的学习方式是在做完项目之后进行复盘。我每次带学生完成一个项目都会要求他们回答这四个问题我自己在设计案例时也以这四个问题为验收标准。第一个问题作品里最核心的3个积木块是什么你能不能说清楚它们各自做什么、少了它们作品会变成什么样。答不出这个说明你对程序设计还停留在拖积木层面没有上升到理解逻辑层面。比如接汤圆里克隆和等待随机时间这两个积木如果拿掉游戏会瞬间失去动态性碰到碗如果拿掉计分就断了。你能不能说出来第二个问题如果我要把这个作品改成另一种节日需要改哪些地方这是检验数据结构设计是否合理的关键。如果改中秋节只需要换背景和角色造型改成春节只需要换祝福语那说明你把不变的程序逻辑和可变的主题内容分开了——这是非常成熟的编程思维。反之如果换个节日要把所有代码重写一遍那一定是因为逻辑和内容没有解耦下次设计时可以调整。第三个问题我有没有想过如果用户不按我想的去操作会怎样一个优秀的Scratch创作者会考虑异常输入如果玩家在灯谜里输入了空文本怎么办如果玩家同时碰到碗和生命值边界会怎样如果玩家连点两次按钮会不会卡死这些问题体现了用户思维和鲁棒性测试同样是软件工程师的核心素养。第四个问题我的作品有没有好玩到我自己愿意再玩一遍这一点最容易被忽略。很多学生做完一个作品自己只运行一遍验证没有bug就交差往后根本没动力打开玩。如果一个作品连作者都不愿意玩又怎么能指望别人玩呢所以我在带项目时会让学生先把自己的作品当别人的作品来玩三遍记录下玩的过程中哪里觉得没意思、哪里卡住了、哪里想做却做不了然后带着这些记录去迭代升级。我常说的那句话是你造的第一个版本永远是给你自己改成第二个版本用的垫脚石。这三个元宵节案例从接汤圆的动手感到灯谜的烧脑感再到花灯的氛围感每个案例都可以沿这个复盘路径深挖。做完一个你可以试着去改造它换题材中秋节、春节、生日派对、换玩法限时模式、多人在线、换角色卡通汤圆、真人头像、自绘角色。你会发现做例子只是起点改例子才能真正让知识长在自己身上。最后给一个特别实用的小建议把你做过的所有元宵节作品放到一个Scratch项目合集页里。用Scratch的工作室Studios功能把接汤圆、猜灯谜、花灯巡游都加进去。这样你的分享不是孤立的一个个文件而是一条元宵节主题系列的内容流。等明年元宵节再翻出来看你能非常直观地看到自己一年来的成长轨迹。这种复盘带来的成就感比任何外部的夸奖都有用。
返回列表