Scratch儿童编程是啥?附:入门案例详解

admin 发表于 2019-04-14 10:23

作为一个“误入歧途然后将错就错”的伪理工男来说,计算机编程是被大学专业逼着开始学的,接着读研、毕业参加工作,由于工作原因(数据处理分析)不得不使用编程工具,毕竟几句简洁的计算机指令就能让电脑没日没夜地干活,这种提高效率的工作方式,我们不用别人也会用。所以,不管喜不喜欢,中不中意,甜七爸这种普通人只能被大势所趋的洪流裹挟着前进……

可是,不知从何时开始,身边年轻家长们的聊天内容,除了为孩子买学区房选学校、带孩子学钢琴、上英语培训班、学画画、学舞蹈、学围棋、练跆拳道等等,有时还能听到带孩子上儿童编程培训班之类的话题。

天哪!编程这么枯燥的玩意儿,就算是上了大学,很多人都没兴趣学(思维方式偏感性的女生更甚),更何况六、七岁的孩子?!他们这个年龄,连学算术都吃力,连母语阅读都不怎么顺溜,怎么能理解抽象枯燥的计算机语言?!。

Nothing is impossible!

后来,甜七爸翻看关于儿童编程的文章[1-2]游戏Scratch这两个关键词进入我的视线范围,让孩子从游戏中体验编程思维应该是个比较酷的方式,重点是这个Scratch,正好是专门为孩子们(5-14岁)开发的编程工具。

甜七爸上网搜资料学习了几个晚上,模仿网上的例子做了几个比较粗糙的小作品,算是尝个鲜。各位请先看结果:

作品一:主角甜七假装在US Route66的连拍动画

作品二:冒牌爱莎找安娜闯关游戏

体验之后……

甜七的感受是:哈哈哈哈……好玩!边玩边傻笑!

甜七爸感受是:这工具不错!简单有趣入门快,想象空间大!如果脑洞够大,可以做很多有趣的作品。在我们那个年代,能用C语言、C++语言,VB语言编制一个可视化运行程序的一般都是牛人了,非计算机专业的多数人还没熬到入门就放弃了。从学习编程这个角度来说,现在的孩子算是幸运的,可以体验从游戏开始,经历充满乐趣循序渐进的编程学习过程。

附:入门案例详解

(一)编程工具简介

为了方便宝爸宝妈们一起来体验Scratch这个有趣的编程工具,甜七爸对此工具做简要介绍:

Scratch是麻省理工学院为孩子们开发的一个免费编程工具,有网页版(网址:http://scratch.mit.edu)、单机版和移动端APP(ScratchJr)。

图1 截图自Scratch官方网页主页

图2 Scratch3.0网页版工作界面


网页版需要登录Scratch官方网页,注册账户,学习观摩来自全球网友创作的案例,开始创建自己的项目。从主页上我们可以轻易了解到:Scratch可用于创建故事、游戏和动画,然后分享给全世界的网友们。

可能是国外网站的原因,浏览和刷新速度比较慢,所以甜七爸在网上找了单机版Scratch2.0,工作窗口如下图,甜七爸在工作界面的各个窗口添加了简单注释,来说明各个窗口的主要功能分工。

图3 Scratch3.0单机版工作界面及注释

(二)案例详解

甜七爸的第一个作品是一个动画,功能很简单,仅有一个角色,几行代码就可以实现(图片上已有注释,甜七爸不准备以此作为案例进行详细解说,有疑问可以后台提问)。不过,制作该案例前,得事先准备几张孩子的连拍照片,然后在Costumes(造型)窗口逐个修图。

图4 Costumes(造型)编辑窗口


图5 作品一脚本代码

第二个作品相对复杂,涉及多个角色,类似我们小时候在游戏机上玩的“超级玛丽”极简版。甜七爸准备以此作品为案例来详细介绍Scratch程序代码编辑过程:

1)情景乱编

关注甜七爸的朋友们应该都知道甜七给自己选的英文名叫Elsa,这是她小时候迷迪士尼动画《Frozen》(冰雪奇缘)的结果。至今,甜七卧室的床单被套、身上的T恤、脚上的拖鞋、还有泳衣、泳圈、滑轮、玩具等物品都跟《Frozen》主题有关。

所以,甜七爸为孩子设计了一个Elsa(甜七)找Anna的闯关游戏,要找到在冰雪宫殿的Anna,Elsa需要连续成功越过障碍物(石头)5次,否则游戏失败,Elsa被石头撞飞。这样搞怪的情景应该是孩子喜欢的,结果证明甜七爸还是了解孩子的,甜七喜欢得不得了

2)游戏角色分析和编程思路

一般编辑程序代码前都要先分析程序运行框架,形成编辑代码的思路,以流程图的形式描述程序运行逻辑。不过,考虑到游戏设计面向的对象是孩子,甜七爸尝试把流程图做得更加直观有趣,借用现在流行用思维导图来实现游戏设计分析,让孩子一起参与,如下图:

greyimg

图6 游戏设计思维导图(各角色的场景由甜七绘制)


除背景图片(见图3工作界面左下部分背景加载窗口)外,该游戏情景涉及4个角色,分别是:

角色1:障碍物(石头),出现在背景左侧,向右侧方向运动;

角色2:穿着斗篷和滑轮的甜七(扮演Elsa),出现在背景右侧,可向上跳跃避开迎面而来的石头;

角色1(石头)和角色2(Elsa)之间的关系有两种情况:第一种情况:两者碰撞,角色2(Elsa)被撞飞,并发出惨叫,这时激发角色3(Game over!)出现,游戏失败,程序终止运行;第二种情况,角色2(Elsa)成功避开角色1(石头)5次,激发角色4的出现,游戏成功,角色2(Elsa)与角色4(冰雪宫殿及Anna)相遇,完美结局。

因此,角色3(Game over!)和角色4(冰雪宫殿及Anna)的设置如下:

角色3:游戏失败提示(Game over!),在被激发前,处于隐身状态,被激发后,显示在前台;

角色4:冰雪宫殿及Anna,在被激发前,处于隐身状态,被激发后,显示在前台;

在协调4个角色的互动过程中,还需要另外3个要素,包括:

1)为了记录角色2(Elsa)成功避开角色1(石头)的次数,或角色1(石头)触碰背景右侧边缘的次数,我们需要一个计数变量,甜七爸将他取名为count;

2)为了激发角色3(Game over!)出现,我们需要在角色1(石头)和角色2(Elsa)碰撞时发出信号,即message1,以便角色3(Game over!)接收;

3)为了激发角色4(冰雪宫殿及Anna)出现,我们还需要在计数变量count达到5的时候发出信号,即message2,以便角色4(冰雪宫殿及Anna)接收。

3)程序实现

完成上述分析后,就可以在角色窗口(工作界面左下部分,见图3注释)分别添加4个角色了。

其中,角色1是系统自带的,可以在角色窗口点击添加,从角色库中寻找,当然也可以在造型窗口(见图4)中自行绘制;角色2是甜七爸在造型窗口导入甜七照片,稍加编辑而成,如果愿意花更多时间,美工基础好的朋友还可以制作更为精美的作品;角色3是在造型窗口中自行编辑的;角色4取自网络图片,导入角色窗口即可。

接着,就可以开始在脚本编辑窗口开始编辑代码了。

先在角色窗口选中其中一个角色(如角色1),然后在脚本编辑窗口编辑与角色1对应的代码。针对4个角色,逐个完成代码编辑。

角色1(石头)的脚本代码编辑如下:

greyimg

图7 角色1运行脚本及注释

角色2(Elsa)的脚本代码编辑如下:

greyimg

角色1运行脚本及注释

角色3(Game over!)的脚本代码编辑如下:

greyimg

角色3运行脚本及注释

角色4(冰雪宫殿及Anna)的脚本代码编辑如下:

greyimg

角色4的运行脚本及注释

完成全部代码编辑后,就可以点击程序运行窗口(见图3左上部分)右上方的小绿旗greyimg开始运行游戏了,当然也可以点击greyimg终止程序。

希望各位宝爸宝妈们能够Enjoy it!

学习过程中想交流,请添加文章末尾的微信号(添加时说明来意),或后台留言(回复时间会比较滞后)。

最后,还是要感谢麻省理工的大牛们为孩子们开发了这么Cool的编程学习工具,让中年大叔也可以跟着玩一把!


后记,小编朋友研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

感兴趣的朋友可以扫描二维码,关注一下,或微信搜索“大耳猴少儿编程”

greyimg