标签归档:带孩子玩Scratch编程

带孩子玩SCRATCH编程:学龄前趣味程序(20)

(20) 骆驼板消消乐

本系列的最后一个程序,是一个消消乐游戏。游戏中会出现 8 只骆驼板僵尸,他们被点击后,会显示骆驼板背面的图案。玩家要连着点出 2 张一样的图案,才能消除一对僵尸。

由于是最后一个程序,代码量也是最长的,足足有 44 块积木。建议低龄的小朋友可以作为终极挑战,分 2 天编完。

素材收集:骆驼板僵尸 Egypt Camel Zombie 从 

https://plantsvszombies.fandom.com 下载 PNG 素材。

本集只用到1个角色,就是碗 Bowl,其他僵尸都是碗的克隆体。我们插入 Scratch 内置的 Bowl 角色之后,进入造型活页卡。

上传 Zombie_egypt_camel.png,作为碗的第 2 个造型。

然后,复制骆驼板僵尸的造型,复制出第 3、4、5、6 个造型。并用画笔修改出不同图案,如上图所示。

舞台背景

使用 Scratch 内置的 Farm 背景。把唯一的角色切换至碗的造型(造型1),并放到画面左下角狗窝门口。

前半部分代码搭建

首先新建 2个变量 lastone、thisone

然后编辑碗的代码:

其中,recording1 为自行录制的吃脑子(游戏失败)的声效。

单独运行上述程序,会在画面上出现 8 只骆驼板僵尸,组成最多3排,不断向右行进。只要有一只僵尸走到舞台边缘,就会播放吃脑子的声音,然后结束游戏。

后半部分代码搭建

休息一天(或一会儿)之后,我们继续编辑碗的代码,在前半部分的基础上,继续添加以下代码:

后半部分代码负责实现翻开骆驼板的图案,以及消除相同的图案。

讲解

Ethan 同学发现了,这是我们第一个用到“如果<  >那么…否则…”积木的程序。这类积木叫做条件分支语句,当条件成立时,运行“那么”里边的代码,条件不成立的话,运行“否则”里边的代码 。

要理解这个程序,对小朋友来说并不容易。由于本系列定位为动手练习,这里只提示一些关键思路,而不去掰开揉碎地讲每一句话的含义。

为了给每个克隆体赋予一种内藏图案,我们在生成克隆体时,让它们的大小有所差别。路障图案骆驼板的大小是 103,铁桶是 104,叉子是 105,禁止标是 106。由于大小差别很小,在显示为骆驼板造型时,人们看不出来它们的差异。当克隆体被鼠标点击后,根据克隆体大小的数值,切换对应的图案。

至于先后两次分别点的是哪种图案,我们用 lastone、thisone 这两个变量来保存造型名称。

程序的其他细节,涉及到等待连续两次点击、骆驼板翻回等的处理逻辑,低年级小朋友不太容易看明白,可以留在以后慢慢理解。

=========

相信动手编过这 20 个趣味小程序,小朋友应该对编程有了一些很具体的概念,对每一种积木有什么作用也能略知一二,甚至可以自己瞎编乱造几个 Scratch 程序了。你们肯定有很多更有意思的想法,那就试着去实现吧!

带孩子玩Scratch编程:学龄前趣味程序(6)

上一篇

(6) 煮酒论英雄

程序目标描述

这一集仍然取材自《三国演义》,曹操这时已挟汉献帝迁都许昌,实力如日中天。刘备则连小小的沛县都失守了,无耐在曹操控制的朝廷中为官。一天晚上,曹操设宴款待刘备,席间,曹操问刘备觉得天下谁可以算是英雄。刘备每答一人,曹操就否定一人。最后,曹操指着刘备和自己说,天下英雄,只有你和我啊。这个程序,就是要演示刘曹之间的这段对话。

素材准备

曹操、刘备的形象,仍然来源于杨青禾版的儿童绘本《三国演义(晚安经典)》。

cao2.png

liu.png

舞台背景,我们选择了 Scratch 自带的 “Woods And Bench”。石桌上的食物和曹操的酒,我们选了 Fruit Salad 和 Glass Water 滥竽充数。

尽管我们添加了4个角色(曹操、刘备、水果沙拉、水杯),但在这个程序中,只有曹操的角色有程序代码。

场景布置

像开头的图片一样布置场景,让刘备、曹操分别坐在石桌两侧,摆好水果沙拉和水杯。

然后,在代码积木箱中,在“变量”分类里,找到按钮“建立一个列表”。

在弹出窗口中,输入新的列表名:“heroes”,这样,创建了一个记载英雄候选人名字的列表 heroes。创建后,把该列表拖到舞台右侧不挡人物的地方。

然后再用同样的方式,再新建一个列表 remarks。

请家长协助,录入两个列表中的文字:

要添加列表的元素,可以点击列表下方的 “+”号。拖动等号可以改变列表框的尺寸。

输入文字后,在“变量”积木箱里,把 “(remarks)” 积木前方的勾点掉,这样,remarks 列表就隐藏了。

搭建代码

首先添加扩展 Amazon Web Services 的 “文字朗读”。方法为在最左侧“分类栏”底下找到“添加扩展”按钮,然后找到“文字朗读”模块并点击它。

然后,在曹操的代码空间中,创建一个自制积木,方法是在“自制积木”分组中,点击“制作新的积木”。

在弹出的窗口中,将“积木名称”改为“曰”,然后点击“添加输入项-数字或文本”添加一个输入项“number or text”,如上图所示。

之后,编辑积木定义及曹操的代码:

在自制积木“”的定义里,变量 (number or text)可直接拖动到“说(…)”和“朗读(…)”的传入参数中。

([heroes/remarks] 的第(  )项) 积木在“变量”分组中,列表变量之后。

询问(…)并等待”、“回答”积木在“侦测”分组中。

运行

点击绿旗子,输入候选人编号,听听刘曹的对话吧。

你也可以篡改一些英雄候选人的名字和曹操对他们的评价,胡乱写些幼稚的话,让计算机正经地读出来,对小朋友来说可以玩得乐不思蜀。

讲解

列表,是编程中常见的一种数据结构,它通常是用来存储一组程序中会用到的文字或数据。此处省略300字。。blablabla。。

自制积木,可以定义一段子程序,在主程序中凡是插入了自制积木的地方,都会在运行到那里时,自动跳转到相应的子程序中执行,自制积木子程序执行完,再回到主程序接着执行后边的语句。此处又省略300字。。blablabla。。

这个 17 块积木的程序没有什么动画效果,但更像是以前 BASIC 入门里字符串、数组、过程、输入输出的综合应用示例,也很有意义哦。

带孩子玩Scratch编程:学龄前趣味程序(2)

上一篇

(2) 土豆大逃亡

程序目标描述

这次我们反过来,让僵尸站在原地,坚果从屏幕中随机出现,并快速向右侧移动;如果不幸撞上僵尸,则要被僵尸用杆子锤打成一滩土豆泥;没碰到僵尸则顺利过关。

素材准备

为了实现锤击植物的动画,我从 PvZ 游戏的 Reanim 文件夹中,挑选了一些有多帧动作(形态)的 PNG 图片,包括以下 6 幅图:

撑杆跳僵尸 3 连动作:

坚果(好):

坚果(坏):

土豆泥:

网友可以自行从游戏拷贝中找到上述素材,或挑选其他有连续动作(变化)的卡通素材。

搭建场景

打开 Scratch,我们先把 Wallnut_body 和 PoleZombie 两个角色的正常造型素材上传,方法与例程(1)一样。

然后,依次打开撑杆跳僵尸和坚果的“造型”活页卡,进入造型编辑界面。在左侧的造型列表下方,找到“上传造型”按钮,依次上传撑杆跳僵尸的动作2、3;再切换到坚果角色,依次上传坏坚果、土豆泥的 PNG 素材。

注意,利用造型编辑窗口的中心标志,平移调整每个造型的摆放位置,以防在动画中出现角色位置抖动。

舞台背景,我们选择了 Scratch 内置的树林场景。

编辑好角色后,回到“代码”活页卡。

代码搭建

点击僵尸角色,进入僵尸的代码空间:

 

作用于僵尸的程序只有4块积木,简直一蹴而就。

再点击坚果角色,切换到坚果的代码空间:

共13块积木,难度其实没有上一个程序大,可以让孩子尝试更独立地挑战。

本次例程中没有加入音效,这是考虑尽可能缩短程序的总长度,不至让孩子产生畏难情绪。实际操作中,家长可以在运行成功后,鼓励孩子仿照第一个程序,在2处“下一个造型”语句后添加一些音效,增加趣味性。

运行

讲解

在挑战成功这个程序后,家长可以重点讲解“重复执行”和“如果<xx>那么”积木块的作用,让孩子知道,这种“大块”里包裹的段落,叫做“循环体子程序”、“条件分支子程序”。循环和条件分支,是最重要的逻辑结构,可以抛出来这个概念让小朋友以后慢慢体会。

带孩子玩Scratch编程:学龄前趣味程序(1)

去年写过几篇关于数学和编程启蒙的“系列”,可是拿自己家孩子做试验,效果并不理想。究其原因,主要是知识介绍得太多,例程复杂枯燥,缺少吸引小朋友注意力的要素,失败也就在所难免。

今年痛定思痛,决定还是要“以人为本”,把内容转向让小孩子兴奋的题材,又严格控制例程的长度和复杂性,让5岁左右的孩子能够在5-10分钟之内完成搭建,见到运行效果。从这几天儿子的反应来看,果然引起了他浓厚的兴趣。

另一方面变化是,由于孩子妈妈规定了看电脑屏幕不得超过 30分钟,这条“粗暴”要求意外地起到了规范我们“课堂结构”的作用。让我更加注重分配好操作时间,一般是提前给孩子描述出今天程序的运行效果,然后在上机的第一个 10分钟,引导他挑选(甚至主要是从网上搜索下载)他喜欢的主角和背景图片素材,这样能激发他对于最终效果的期待;第二个 10分钟,监督他按照事先打印或手绘好的例程单子,在 scratch 中完成程序搭建;第三个 10分钟给他尽情运行,以及做些小破坏找乐子;关上电脑之后,再对照例程单子,讲解几个语句的作用和含义。这样一堂 40分钟的课程,即满足了妈妈的“龟腚”,又让他觉得饶有趣味,简直具备了商业化授课的形制。

下面,就把这几天带孩子做过的例程贴出来,供感兴趣的网友参考。

(0) Scratch 入门

Scratch 官方地址:https://scratch.mit.edu/

Scratch 是 MIT 大学开发的一款儿童趣味编程界面,主要面向 8-16 岁的青少年。Scratch 程序完全采用“拼积木”的方式搭建,图形界面简单友好,功能却十分丰富,甚至有强大的传感器和机器人(LEGO)接口,是理想的科技启蒙“玩具”。

目前,Scratch 的运行平台有网页版、PC 版、Mac 版、Android 版等多种选择,作者还是倾向于推荐 PC 版。因为很多时候我们还是会面临键入数字、自己编辑素材等情况,传统的笔记本电脑在这方面比平板电脑反而更简便。PC版的缺点是需要小孩子掌握鼠标或触摸板的精细操作,不过经实践,这对于5岁的孩子来说并不是什么难事。

PC版下载的链接在官网页面下方,目前最新为 3.0 版:
https://scratch.mit.edu/download

PC 3.0版界面如下图:

为了后边叙述清楚,上图把界面的几个部分进行了标注:

界面切换活页卡:主要是在代码界面、造型编辑界面、声音制作界面之间切换。
程序运行窗口:程序的运行效果将在那里显示,窗口上方有绿旗子按钮和红色中止符按钮,相当于“启动”和“中止”命令。
角色浏览和属性窗口:程序中出现的所有对象,也就是卡通“角色”,在这个浏览窗口中,可以进行选择、修改属性、删除、添加。
舞台背景一览:简单地理解,可以看成切换程序的背景图像;其实舞台中还可以添加与具体角色无关的通用音频、通用代码。

代码界面是最常用的区域,有:
分类栏:将积木进行了分组,包括运动、外观、声音、事件、控制、侦测、运算、变量、自制积木等默认组,还能添加附加组,如常用的“画笔”、“语音”等。
积木箱:显示了可用的积木块,程序就是用这些积木拼接而成。
代码区:是主要的编码窗口——将积木从积木箱拖拽到代码区,并进行拼接、设置部分参数。注意每一个角色有自己的“代码空间”,在角色浏览器(或运行窗口)中点选切换正在编辑的角色,或者点选切换正在编辑的舞台,代码区的代码也会相应切换。在遇到这种情况时,需要跟孩子进行解释。每段代码都有作用的对象(角色或舞台),代码区的右上角会提示当前代码作用的对象。

上述内容便是正式开始前,对 Scratch 最基础的介绍。

(1) 土豆地雷炸僵尸

儿子最近非常迷恋经典游戏 Plants vs. Zombies,包括看的《科学漫画》,也都是植物大战僵尸题材。因此,想要把他吸引到编程上,最好的方法当然也是选取 PvZ 中的角色。

程序目标描述

我们这个程序,是让玩家把土豆地雷拖拽到屏幕上的一个位置,然后点击绿旗子,僵尸就会从屏幕右侧随机(竖向)出现,并快速向左移动;如果碰到了土豆地雷,则炸成黑色,并发出爆炸声;如果没碰到土豆地雷,则发出“吃脑子”的惨叫声。

素材准备

为了避免版权问题,这里不提供角色素材的下载,但是网友可以自行前往下列网站,下载喜欢的 PNG 素材到电脑中。

https://plantsvszombies.fandom.com/wiki/Main_Page

当然,也可以根据自己孩子的喜好,下载其他卡通素材。其实素材是不影响程序的逻辑的,但挑选喜欢的卡通人物,可以让孩子的快乐指数成倍增加。

注意下载的素材最好是带透明度的 PNG 文件,如果没有此类素材,可能需要在 Scratch 导入后,由家长帮助擦除素材的不透明背景。

搭建场景

辅导孩子把下载好的素材,添加为 Scratch 角色:

方法是:将鼠标移动到添加角色按钮上,再点击弹出的“上传角色”项,把土豆地雷(PotatoMineHD)、铁桶僵尸(Buckethead Zombie)的图片上传。

舞台背景我们选择了一个简单的波纹背景(在 Scratch 自带的图库中)。

代码搭建

点击“僵尸”角色,引导孩子搭建以下程序:

整个程序由 12块积木构成,包含了一些嵌套和数字键入、下拉选择,有一定挑战,孩子很难全部独立完成。但为了实现有意思的效果,值得付出这种复杂性的代价,家长可以在一旁进行操作指导。特别是引导孩子根据颜色,在对应的分组中,寻找准确的积木(之前可能忘记交待一个条件,孩子的识字量应在 800-1000左右,约相当于小学一二年级水平,或者有相应的英语基础,鉴于当前的早期教育理念,5-6岁小孩应当有相当部分可以满足)。

需要提示的一点是,“碰到 (PotatoMineHD)”积木,是由“碰到 (鼠标指针)”积木(在“侦测”组里)通过下拉箭头改变而来的。PotatoMineHD 是本例程中土豆地雷角色的名称(来自于素材文件的文件名),读者的素材可有其他名称。

类似的,“将[亮度]特效设定为(-100)”积木,是由“将[颜色]特效设定为(0)”积木改变而来的,它们在“外观”分组中 。

播放声音积木中的 Bonk、Alien Creak1,是选择的 Scratch 自带音效。读者可以自行录制——方法是单击积木上的下拉键头,然后点击“录制…”,和孩子一起配一些搞笑的音效。录制后,记得在代码界面中,再次通过下拉键头选择需要的 recording。

运行

截图略。家长还可以引导孩子每次改动程序的一个积木,或一个参数,看看会出现什么意想不到的错误效果。

讲解

作为第一个程序,其实不需要太多讲解,回忆小时候学 BASIC 时,大多数趣味程序也让人搞不明白是怎么回事。何况 Scratch 语句的自明性比 BASIC 又强了很多,孩子慢慢地就会在趣味中理解,每一个积木就是一条指令,有的指令负责控制运动,有的负责控制声音,有的是程序主要逻辑的控制,它们适当地连在一起,就组成了具有功能的程序。