Scratch儿童编程是啥?附:入门案例详解
作为一个“误入歧途然后将错就错”的伪理工男来说,计算机编程是被大学专业逼着开始学的,接着读研、毕业参加工作,由于工作原因(数据处理分析)不得不使用编程工具,毕竟几句简洁的计算机指令就能让电脑没日没夜地干活,这种提高效率的工作方式,我们不用别人也会用。所以,不管喜不喜欢,中不中意,甜七爸这种普通人只能被大势所趋的洪流裹挟着前进……
可是,不知从何时开始,身边年轻家长们的聊天内容,除了为孩子买学区房选学校、带孩子学钢琴、上英语培训班、学画画、学舞蹈、学围棋、练跆拳道等等,有时还能听到带孩子上儿童编程培训班之类的话题。
天哪!编程这么枯燥的玩意儿,就算是上了大学,很多人都没兴趣学(思维方式偏感性的女生更甚),更何况六、七岁的孩子?!他们这个年龄,连学算术都吃力,连母语阅读都不怎么顺溜,怎么能理解抽象枯燥的计算机语言?!。
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)游戏角色分析和编程思路
一般编辑程序代码前都要先分析程序运行框架,形成编辑代码的思路,以流程图的形式描述程序运行逻辑。不过,考虑到游戏设计面向的对象是孩子,甜七爸尝试把流程图做得更加直观有趣,借用现在流行用思维导图来实现游戏设计分析,让孩子一起参与,如下图:
图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(石头)的脚本代码编辑如下:
图7 角色1运行脚本及注释
角色2(Elsa)的脚本代码编辑如下:
角色1运行脚本及注释
角色3(Game over!)的脚本代码编辑如下:
角色3运行脚本及注释
角色4(冰雪宫殿及Anna)的脚本代码编辑如下:
角色4的运行脚本及注释
完成全部代码编辑后,就可以点击程序运行窗口(见图3左上部分)右上方的小绿旗开始运行游戏了,当然也可以点击终止程序。
希望各位宝爸宝妈们能够Enjoy it!
学习过程中想交流,请添加文章末尾的微信号(添加时说明来意),或后台留言(回复时间会比较滞后)。
最后,还是要感谢麻省理工的大牛们为孩子们开发了这么Cool的编程学习工具,让中年大叔也可以跟着玩一把!
参考资料:
[1] 张飞,不一样的Scratch编程课。“Alex老师的大脑洞”公众号,2018-01-29.
[2] 理工男憨爸,写了20年程序后,我推荐儿童变成应该这样学。“憨爸在美国”公众号,2018-08-08.
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com