Scratch全国少儿编程竞赛获奖作品《我的蚂蚁森林》解析上篇

本文介绍的作品是全国青少年创意编程与智能设计大赛创意编程比赛一等奖获得者蒋加许同学的最新参赛作品。

作品说明

作品名称是我的蚂蚁森林。主题自然是关于环保,种植森林。作品灵感来源于每天帮爸爸收蚂蚁森林的能量,以及出游时的所见所闻,如沙漠,绿洲,树林等。这次的作品增加了名字询问及使用的环节,能使整个作品更加顺畅。技术难点在于克隆体的模块,控制克隆体的颜色变化以及在不同场景的不同脚本。

正文

上一次我们一起总结学习了Scratch中判断角色点击的三种方法,加固了对鼠标侦测相关语句的理解。这篇文章,果冻老师和大家一起继续学习参赛的作品,这次是小学4-6年级组一等奖获得者蒋加许同学的最新作品《我的蚂蚁森林》,一看到这个题目我们就可以猜出它是一个与环保有关的作品,大家都知道在手机的支付宝app中有一个非常火的小游戏就叫做蚂蚁森林,我们可以在游戏中每天给虚拟的小树浇水,随着日积月累小树会慢慢的长大,最终它会成长变为一颗参天大树,而这时支付宝公司的叔叔阿姨就会在中国西部的荒漠地区替我们种下一颗真正的树。蒋加许同学将这个小游戏搬到了Scratch中并且添加上了背景故事以及帮助小动物回家的过程,让我们对于污染环境带来的危害和环保从每个人作起的意义有了更深的理解。

下面,我们就一起看一看这个游戏的代码是如何实现的吧。

点击绿旗

点击Scratch软件中的绿旗之后,游戏的代码就开始运行了,直接响应当绿旗被点击这个事件语句的角色有两个:

首先在舞台区会显示出游戏的名字,这很简单,名字就是一张图片,所以只需要改变游戏的背景就行了。

名称为Stripes的背景就是游戏的名字,3秒之后,背景会切换成卧室的场景。

这时候,角色小明就会在他的家中欢迎我们。

之后,小明会广播choose,让我们选择自己在游戏中的头像。

choose

这里,蒋加许同学非常厉害哦,他使用一个角色实现了显示两个头像造型的效果,你知道是怎么做出来的吗?可能聪明的同学已经猜到了,对!就是使用克隆,通过克隆我们可以创造出一个角色的兄弟姐妹,这些克隆体虽然都来自于相同的本体,但是它们的长相却可以是千差万别的哦。

角色12有两个造型:

我们只需要将角色的本体显示为造型1,克隆体显示为造型2就可以了。

重复执行语句上面的五行代码就实现了角色分身的效果,这一招是不是很棒啊!

而重复执行语句的里面是处理鼠标悬停与鼠标点击角色的代码,当鼠标指针碰到角色的时候,头像就会变大,如果再按下鼠标按键的话,还会改变x变量的值,这个变量的作用就是记录我们选择的头像的编号。接着会广播good继续下面的剧情。

这部分的重复执行代码仅仅会作用于其中的一个头像,所以我们还需要复制代码并粘贴在当作为克隆体启动时的下方,也就是另一个头像的代码中。

改变x变量的相关语句为另一个头像的值,这样两个头像就设置好了。

good

当我们随意点击一个头像之后,就会发送good广播,接收这个广播的角色只有一个,那就是小明。

小明会询问并朗读出游戏者的名字:

询问语句会在游戏中弹出一个文本框,我们输入名字之后,会将名字的文字内容保存在回答这个语句中,然后在代码中又将回答中保存的内容放在了“名字”这个变量中,这样,我们在文本框中输入的文字就保存在“名字”的变量中,后面的朗读语句和字符串拼接语句就可以使用这个变量了。那这里为什么非要使用变量呢,直接用回答语句不可以吗?果冻老师试了试,使用回答语句的效果是一样的,像这样:

其实回答语句的本质就是一个变量,照上面截图一样使用没有任何问题。但是老师还是不建议这样做,为什么呢?因为变量我们可以给它起名字啊,比如就叫“名字”,而回答语句永远都显示“回答”两个字,可能我们写代码写着写着自己都忘了回答语句中保存的是什么内容了,而变量就不会发生这种情况,因为我们一看到“名字”这两个字就清楚的知道它存的是什么,同时也能够让其他同学更方便的阅读你写的代码。让代码清晰易懂也是编程高手必备的技能哦!

有细心的同学可能注意到了,代码中出现了两条陌生的语句,语句前面还有一个像喇叭一样的图标:

它们其实是Scratch中的扩展功能–文字朗读。Scratch软件不但提供了像运动、外观、事件等等这些基本功能模块让我们使用,而且还增加了许多好玩有用的扩展功能,这些功能可以通过点击软件左下角的这个图标进行添加:

点击这个图标后,页面上就会显示出各种各样有趣的扩展功能:

有音乐、画笔、视频侦测等等模块,还可以与各种可编程的硬件或机器人连接,拓展出更加丰富有趣的玩法。我们看到,第四个模块就是我们这次编程需要的文字朗读,用鼠标点击它,在软件的操控区就会多出一个图标:

红框标记出的就是文字朗读模块,它里面有三个语句,可以分别设置朗读的文字内容、朗读的音调和语言。那朗读语句与播放声音语句还有说语句的区别是什么呢?播放声音语句播放的是wav或者mp3格式的声音文件,它需要我们提前录制好,而朗读语句播放的是文字内容,我们想让它读什么就写什么,不用提前录制,是不是朗读语句相比起来更加强大呢!但是朗读语句只能读出文字,不能播放音乐,所以我们要给游戏添加背景音乐时,还是必须用播放声音语句的。

说语句呢,只能将文字内容显示在屏幕上,并没有声音,而朗读语句会读出文字的内容,但不会显示,所以朗读与说是一组互补的语句,它们通常也是放在一起使用的。

我们继续回到游戏中,当小明说完“这里是我的房间,故事即将开始……”这句话后,就会广播start all,小明和他的爸爸一问一答通过对话的方式介绍了游戏的故事背景。

start all

小明与爸爸对话部分的代码很长,但是也很简单,主要就是使用切换造型、滑行、播放声音、说和广播这几种语句再配合上背景的切换。

简单重复的代码果冻老师就不贴在这里了,相信大家照着源代码自己做一遍就知道是如何实现的。

在对话的过程中,背景中还有一个拖拉机从左开向右边的小动画,它是怎么实现的呢?不知道同学们是否还记得,在《记忆碎片》这篇文章中,游戏的开头有一个打字的动画,每打一个字角色就会多一张造型,代码中不断的切换造型就实现了动画的效果。这里的原理是一样的,我们将拖拉机从左到右开动的过程拆分为一张一张的动画帧(造型):

然后,代码中在很短的时间内不停的切换下一个造型,连起来就实现了拖拉机的动画效果。

从左到右我们一共将动画拆分为14个动画帧,所以代码中要重复执行14次。

最后,整个对话过程是这样的:

在对话的最后,小明提出要帮助爸爸种树,实现一座自己的蚂蚁森林,接下来游戏就进入了正式的操作环节,我们要和小明一起为小树苗浇水,让它们长大,变为森林,同时还要帮助失去了住所的小动物们回到它们的家园,让森林真正成为生命和谐共处的绿色世界。这些内容果冻老师就放到下篇文章中介绍吧,这篇文章中我们学习了克隆、变量和朗读模块的知识,尤其是克隆和变量,它们看起来挺简单的,但是要真正的融会贯通还是要下一番功夫的,这些知识在竞赛中也是提高分数的关键点,同学们一定要多多练习。好了,我们一起期待下一篇文章吧。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

第9届Python编程挑战赛初中组初赛真题剖析-2023年全国青少年信息素养大赛

2023-8-3 9:02:56

综合资讯

Scratch全国少儿编程竞赛获奖作品《我的蚂蚁森林》解析下篇

2023-8-4 8:36:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索