Scratch更适合小学生。、C、Python是高级编程语言,其语法和人类自然语言比较接近,需要经过编译器或解释器才能转换为机器语言。还有一些更加易于学习的可视化语言,比如Scratch就是一种可视化语言,它们是在高级语言的基础上,经过包装或定制后,才成为更加容易学习和理解的编程语言的。
你可能会问,为什么不直接学习C、C++、Python这样的高级语言,而要学习Scratch这样的可视化语言呢?这主要是因为Scratch对于青少年来说更加容易理解和上手。Scratch包含了讲故事、做动画、设计游戏等功能元素,而这些元素都特别能够激发孩子的学习兴趣。等到他们通过Scratch逐渐熟悉和掌握了编程语言的一些基本原理,再去进一步学习Python或C++等高级语言,就会容易很多。
因此,学习编程需要一个从易到难的过程,而Scratch真的是一种更不错的入门语言,对于孩子来说更是最佳的选择。
目前孩子学习Scratch 使用最多的是这本《Scratch 3.0少儿游戏趣味编程》
《Scratch 3.0少儿游戏趣味编程》特色:
“做中学”的方法和理念。学习任何具有实践价值的知识和技能,最好的方式就是“做中学”,也就是通过实际操作和练习来熟悉和掌握必备的知识。本书精选了15个游戏案例,读者通过按部就班的实际操作,就可以掌握Scratch编程技能,并且编写出趣味盎然的游戏。注重基础知识的介绍和铺垫。在初次学习程序设计时,很多初学者经常遇到的“拦路虎”,要么是大量的基础概念和术语,要么是对编程模块不熟悉。本书考虑到这两方面的问题,专门安排了一章介绍Scratch的基本概念和程序设计的一些基本概念,并在附录部分给出了Scratch 3.0中常用的积木的简介,为初学者扫清障碍。游戏选取注意代表性和趣味性,区分不同的难度层次。本书选取的15款游戏,分为初级难度(8个)、中级难度(4个)和高级难度(3)个。一方面,这些游戏很有代表性(或者说是典型性),它们很可能是读者玩过或者非常熟悉的游戏(尤其是3个具有高级难度的游戏)。读者用Scratch 3.0编写出自己曾经玩过的游戏,将会获得很大的成就感,从而激发出强烈的学习兴趣。其次,这些游戏本身很有趣味性,读者可以根据不同的难度需求,跟着本书逐步编写实现,并且在试玩的过程中,可以不断调整参数或进行扩展,熟悉编程技术和发挥创意。根据读者的意见,本书基于Scratch 3.0的版本,对游戏进行了更新和增加。根据读者对《Scratch 2.0少儿游戏趣味编程》给出的反馈,大家在游戏的选取上也做了精心的调整。用3款更具有趣味性和新颖性的小游戏做了替换,并且新增了一款较为高级并且具有一定趣味性和代表性的游戏——“泡泡龙”。使用“小贴士”和特殊的板块,详细讲解游戏中用到的知识和技巧,强调一些需要读者注意的地方,或者是解释程序设计中的算法难点。分享一下本书第三章部分内容,看一看孩子是否喜欢这样的阅读风格。
第3章 初级游戏编程之一对程序设计初学者尤其是青少年来说,用Scratch 3.0编写趣味游戏是一种很好的学习方法。一方面,Scratch 3.0可视化的编程方式简单易学,可以比较方便、快速地实现程序逻辑;另一方面,Scratch 3.0的项目编辑器融合了角色、造型、背景、绘图、图像、声音、坐标、动画等多种功能,这使得Scratch 3.0非常适合用来编写妙趣横生的游戏。在阅读本书后面的各章的时候,相信你会非常深刻地体会到这一点。
本书从第3章到第8章,都将集中介绍一些既有趣味性又有典型性的游戏的开发,从而帮助读者掌握Scratch 3.0编程的技巧。在本章中,大家通过实际动手来开发4款比较简单的游戏——“大家来找茬”“迷宫探险”“打地鼠”和“翻翻乐”。
3.1 大家来找茬
“大家来找茬”这款游戏又叫“找不同”。在这个游戏中,玩家要从两张只有细微差异的图片中找出不同的地方。
这款游戏共有9个角色,1个角色是需要查找不同的两张图片,还有5个角色是两张图片中有差异的地方,另外3个角色表示开始界面、开始按钮和玩法介绍。
这个游戏的原理很简单。玩家要在左侧图片中,把和右侧图片不同的地方用具有两个造型的角色表示出来,如果玩家用鼠标点中了有差异的地方,相应的角色就会切换为带有红色画圈的造型,表示玩家查找正确。
大家先来看看这个游戏要用到的变量。
1.变量
这个游戏只有1个变量,它负责记录找到了几个不同的计数器,这是个隐藏变量。
小贴士
注意,“计数器”变量前面的复选框是没有选中的,表示这个变量是隐藏的,即该变量的监视器,不会在舞台上显示出来。
2.角色和编程步骤
把默认的“小猫”角色删除,然后添加自己的角色。
第1个角色:开始界面
大家添加的第一个角色是“开始界面”,它有1个造型。
第1步
当点击绿色旗帜时,将角色移至最前面。这时候开始界面遮盖住了“开始按钮”,所以还得后移1层,才可以暴露出“开始按钮”角色。最后,显示“开始界面”角色。
第2步
当接收到“开始游戏”消息时,隐藏“开始界面”角色。需要注意的是,在点击 “开始按钮”角色时,会广播消息“开始游戏”,大家稍后会看到这一点。
第2个角色:“开始按钮”
这个角色的造型如下。
它也有两段脚本。
第1步
当点击绿色旗帜时,将角色移至最前面。显示角色。
第2步
当点击角色时,隐藏角色,并广播消息“开始游戏”。
第3个角色:“玩法介绍”
这个角色的造型如下。
为了更容易理解如何玩游戏,大家还制作了一段录音,对玩法做出了说明。
其脚本如下所示。
当接收到“开始游戏”消息时,将角色移至最前面。然后显示角色和播放声音“录音1”,以便让玩家能够了解如何玩游戏。之后,隐藏角色。
第4个角色:用来找不同的图片
其造型如下所示。
从声音库中为该角色选择了一个声音“clapping”,当玩家选中所有不同之处时,播放该声音以表示祝贺玩家。
其脚本如下所示。
当接收到 “开始游戏”消息时,该角色移动到舞台中央。后移图层50层,目的是让它在所有角色之下,以免覆盖其他角色,这样后面介绍的“不同1”等角色才能显示在这张图片之前。将变量“计数器”设置为0。在这个变量<5时,一直等待。当“计数器”等于5时,会播放声音“clapping”,并宣布找到所有不同的获胜消息。
小贴士
这个积木表示等待条件成立时,再执行下面的积木。
与之类似的是积木,它表示重复执行其中的积木,直到条件成立时,再执行其后面的积木。
第5个角色:不同1
它有两个造型,正常形态的造型叫作“1-a”,用红圈圈出来的形态的造型叫作“1-b”。
它有一个声音,是从声音库中选择的“boing”,当选中该角色后,会播放该声音。
第1步
当点击绿色旗帜时,将造型切换为“1-a”,也就是没有红圈的造型。
第2步
当点击角色时,将造型切换为“1-b”,也就是带有红圈的、表示选中了不同之处的造型。然后将变量“计数器”加1。 播放声音“boing”,表示成功地找到了一处不同。
第6个角色:不同2
其造型如下。
它也有声音“boing”。
“不同2”角色的脚本和“不同1”角色的脚本基本一致,这里不再赘述,直接把脚本给出来。
第7个角色:不同3
其造型如下。
声音如下。
这个角色的脚本和 “不同1” 角色的脚本基本一致,这里不再赘述,直接把脚本给出来。
第8个角色:不同4
其造型如下。
声音如下。
这个角色的脚本和 “不同1” 角色的脚本基本一致,这里不再赘述,直接把脚本给出来。
第9个角色:不同5
其造型如下。
声音如下。
这个角色的脚本和 “不同1” 角色的脚本基本一致,这里不再赘述,直接把脚本给出来。
好了,这个游戏很简单,到这里就完成了。其中,最重要的核心内容,也就是对各个不同的角色的脚本编程,这也是所有Scratch 3.0游戏的一个特点。快来运行你的游戏,找找不同吧!
读者也可以自己动手,按照这个游戏程序的编写过程,尝试增加新的不同图片,邀请好朋友一起来玩。
3.2 迷宫探险
在“迷宫探险”游戏中,小企鹅要拿到4把藏在迷宫4个角落的钥匙,才能获得胜利。
1.变量
在这个游戏中,大家定义了3个变量:
x:小企鹅的x坐标,这是个隐藏变量。
y:小企鹅的y坐标,这是个隐藏变量。
钥匙数量:表示找到了几把钥匙,这是个隐藏变量。
2.背景
大家以迷宫地图作为背景,背景库中没有相应的图形,需要从本地来上传迷宫地图。
3.角色
这个游戏中共有5个角色,分别是4把钥匙和一个企鹅。下面依次介绍。
第1个角色:企鹅
大家选择角色库中的企鹅作为游戏的“主角”。
为这个角色添加4个声音,分别是声音库中的“lo gliss tabla”“fairydust”和“clapping”以及本地上传的“移动”的声音。当企鹅移动时播放“移动”声音,当企鹅撞墙时播放“lo gliss tabla”声音,当企鹅捡到钥匙时播放“fairydust”声音,当集齐4把钥匙时播放“clapping”声音。
这个角色有3段脚本。
第1步
当点击绿色旗帜时,通过方向键来移动角色。
首先,游戏一开始,将企鹅角色放置到迷宫中央。设置角色的大小,并将其移到最前面。作为初始化的一个步骤,还要将“钥匙数量”变量设置为0。
后续的代码放入到一个循环中,将重复执行。将角色的x坐标保存到变量x中,将角色的y坐标保存到变量y中。如果按下左移键,将x坐标增加-5,表示向左移动,然后播放声音“移动”,直到播放完毕。如果按下右移键,将x坐标增加5,表示向右移动,同时播放“移动”声音。如果按下上移键,将y坐标增加5,表示向上移动,同时播放“移动”声音。如果按下下移键,将y坐标增加-5,表示向下移动,同时播放“移动”声音。如果碰到迷宫墙壁的颜色,角色将回到移动前的位置,表示碰到墙壁了,无法移动,同时播放“lo gliss tabla”声音,表示撞墙的声音。
小贴士
请注意,企鹅移动时,播放声音用的积木是,而不是。这是因为,玩家可能会一直按住方向键,如果使用积木,那么第1个声音没有结束播放,第2个声音又开始播放,就变成了噪音。而使用积木,会等这个声音播放完后,才继续执行后边的脚本,就不会有噪音。另外,如果你觉得企鹅走得太慢,也可以从脚本中拿掉积木,那么企鹅马上就可以奔跑起来。
第2步
当点击绿色旗帜后,首先判断条件
是否成立。如果条件成立,就表示企鹅已经找到了全部4把钥匙;如果条件不成立,表示还没有找到全部钥匙,一直等待。如果条件成立,会停止角色的其他脚本。然后把企鹅移动到屏幕中央,将它逐渐放大,播放声音“clapping”,并宣布玩家已经找到了全部钥匙,表示玩家获胜。
第3步
当接收到“找到钥匙”消息时,播放声音“fairydust”。
第2个角色:钥匙1
这个角色只有如下一个造型,大家将其放置到屏幕的左下角。
这个角色只有一段脚本。当点击绿色旗帜时,显示角色。在碰到“企鹅”角色之前会一直等待。当碰到“企鹅”角色时,会广播消息“找到钥匙”,然后将变量“钥匙数量”增加1。隐藏“钥匙1”角色,表示企鹅拿到了钥匙。
第3~5个角色:钥匙2~钥匙4
大家复制3个钥匙1,将它们分别改名为“钥匙2”“钥匙3”和“钥匙4”,然后将这3个新的角色分别放在右下角、右上角和左上角。这3把钥匙的造型和脚本也都与角色“钥匙1”一样,这里就不再赘述。
小贴士
复制角色,选中目标角色的缩略图,点击鼠标右键,在出现的菜单中选择“复制”。
这样就会生成一个从造型到脚本都完全一样的角色,只是角色名称最后的数字有所不同。
这样,“迷宫探险”这个游戏就完成了。大家可以试着玩一玩,也可以自行添加更多钥匙和新的地图,甚至可以设置不同的关卡,从而增加这个游戏的趣味和难度。
3.3 打地鼠
“打地鼠”是一款比较经典的游戏。在游戏中,玩家通过操控锤子击打从地洞里冒出来的地鼠来得分。在本节中,大家用Scratch 3.0来编写它。
1.变量
大家定义了两个变量。
剩余时间:游戏还剩下多少时间,这个变量会显示在屏幕上。
得分:已经得到的分数,这个变量会显示在屏幕上。
2.背景
大家选择从本地上传的图片作为背景。
这个背景只有一段脚本,就是当接收到 “游戏开始”消息后,设置变量初始值,并开始游戏倒计时。将变量“得分”设置为0,随着玩家打中了地鼠,“得分”会增加。将变量“剩余时间”设置为30,表示一局游戏的时间为30秒。然后执行一个循环30次,在循环体中,每次等待1秒后,将变量“剩余时间”减1。当“剩余时间”为零后,广播 “游戏结束”消息,并停止全部脚本。
3.角色
先删除默认的“小猫”角色删除。
这个游戏中的角色比较多,共有13个,分别是9只地鼠、1把锤子,以及表示开始和结束的3个角色。
第1个角色:开始界面
大家选择从本地上传的图像作为开始界面。
这个角色有两段脚本。
第1步
当点击绿色旗帜时,显示角色。
第2步
当接收到 “游戏开始”消息时,隐藏角色。
第2个角色:开始按钮
其造型如下所示。
这个角色也有两段脚本。
第1步
当点击绿色旗帜时,移动角色位置,将角色移至最前面,并显示角色。
第2步
当点击角色时,隐藏角色,并广播“游戏开始”消息。
第3个角色:锤子
“锤子”角色有两个造型,分别表示“普通”造型和“攻击”造型。
这个角色有两段脚本。
第1步
当接收到 “游戏开始”消息时,显示角色,并将造型切换为“普通”造型。让锤子跟随鼠标移动。如果侦测到按下鼠标,将造型切换为“攻击”造型,表示要打地鼠。随后等待0.2秒,再将造型切换到“普通”造型。
第2步
当接收到消息“游戏结束”时,隐藏角色。
第4个角色:结束信息
这是游戏结束后要显示的信息,造型如下。
它有两段脚本。
第1步
当点击绿色旗帜时,隐藏角色。
第2步
当接收到“游戏结束”消息时,将角色移至最前面显示。
第5个角色:地鼠
对于地鼠角色,大家选择角色库中的“Squirrel”文件。
大家从声音库中选择“water drop”声音,表示锤子砸中地鼠时发出的声音。
这个角色有两段脚本。
第1步
当点击绿色旗帜时,将角色移动到第一个洞里,隐藏角色。
以下内容会重复进行。随机等待一段时间后,显示角色,表示地鼠钻出洞来。之后随机等待一段时间,隐藏角色,表示地鼠又躲回到洞中。