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

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

作品说明

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

正文

在上一篇文章中,小明面对窗外满目疮痍,黄沙漫天的景象,决心和游戏者一起帮助爸爸种树,让荒漠恢复往日的绿色,再次变成一片森林。于是接下来我们就要和小明一起完成这个艰巨而光荣的任务。

当小明决定种树之后,立即会广播种树这个命令。

种树

接收种树广播的角色一共有五个,分别是小明、树苗(Tree1)、水壶、水龙头和背景:

首先,第一个响应的是背景,它的代码只有一行,将游戏切换到沙漠的场景中,因为我们要在沙漠中种树呀。

而树苗、水壶、水龙头都各就各位,并且做好了变量与造型的初始化。

我们看到,在这三个角色的代码中一共初始化了两个变量的值,分别是长大的树和水壶中的水,长大的树这个变量用于记录已经长大并且不用再浇水的树数量,而水壶中的水这个变量用来记录水壶中水量的数值,当水量为0时需要点击水龙头给水壶加水。同时,代码中设置将这两个变量显示在舞台区,这样我们可以时刻观察变量的状态,决定是否停止浇水或者继续加水。

小明呢,他会通过文字结合声音的方式介绍游戏的操作方式,首先要保证水壶中有水,所以需要点击水龙头给水壶加水,接着点击树苗,水壶就会去浇水。

这里一共有四段声音,它们都是提前录制好的,并且声音和文字同步的播放与显示,在游戏正式开始前提供这种提示是非常有必要的,它让游戏者清楚的知道该如何操作,就像《记忆碎片》中那一行闪烁的文字,而带有人物角色的游戏我们就可以让角色把提示的信息“说”出来,如同这个游戏一样,这样游戏会显得更加的“人性化”,游戏者就能知道每一步应该如何操作。

最后,小明广播开始种树!,给树苗浇水的任务就正式开始了。

开始种树!

种树的过程可以拆分为两个部分,一个部分是点击水龙头给水壶加水,另一个部分呢就是点击树苗给它浇水。那果冻老师就和大家一起分别看看这两部分的代码是如何实现的。

第一部分,给水壶加水,参与的角色有两个,当然就是水龙头和水壶了:

在浇水前要把水壶灌满,于是我们先点击水龙头:

水龙头这个角色一共有五个造型,其中造型2到造型5顺序播放一遍就实现了灌水的效果:

所以在代码中每隔0.5秒将造型切换一次,同时播放录制好的水滴下落声音,并且将水壶中的水这个变量从0变为10,这样水壶就被灌满了。

水龙头灌水之前还会广播shui,告诉水壶我开始放水了,水壶当然会响应它,无论在哪里都会乖乖的跑到水龙头的下面去接水。

第二部分,点击小树苗给它浇水,首先,我们只有一个树苗角色,一棵树怎么成为森林呢?于是,要请出克隆大法,使用克隆多变出两颗树来,这样三木就成森了。

这里呢三棵树都是克隆出来的,而本体通过隐藏语句从舞台中删除掉了,这样做的好处就是点击树苗的逻辑代码我们可以统一的写在作为克隆体启动时的下面。

看过果冻老师文章的同学相信对于上面的代码非常熟悉,使用到了上一篇文章中介绍的如何判断角色被点击三个方法中其中的侦测语句法。还有,在《垃圾分类》中我们学习过的自制积木,它可以将多个具有相同逻辑的代码提炼出来写成一个,然后在不同的地方调用,因为给三棵树浇完水后判断它们是否已经长大的逻辑是一样的,所以就将这段代码拿出来写成一个自制积木,并给它起名为“水”,然后在主代码中直接调用“水”就OK了,这样写代码会更加简洁并且易于维护。

在Python代码式编程中,这种写法叫做函数或者方法,这是最基本也是最常用的编码技术,不用老师多说是一定要掌握的。

点击不同的树苗会发送不同的广播,点击左边的树苗广播“浇树苗1”,点击中间的树苗广播“浇树苗2”,点击右边的树苗广播“浇树苗3”,当水壶接收到这些广播后,会移动到树苗相对应的位置并做出浇水的动作。

水壶收到三个浇树苗广播的代码逻辑是类似的,果冻老师就以“浇树苗1”为例:

代码中的“水”这个广播呢,实现了水壶浇水的动态效果,水壶的造型一共有六个:

我们只需要将这些造型连起来显示一遍就是浇水的动画了。

最后,整个的浇水过程是这样的:

在“水”这个自制积木中,每完成一次浇水,树苗就会切换为下一个造型,它就会长大一截,当造型的编号等于7的时候,树苗就完全长成大树了,于是再将长大的树这个变量的值增加1。

当三颗树苗全都长成大树,也就是长大的树这个变量等于3时,浇水的任务就顺利完成了,原本荒芜的沙漠已经变成了一片绿色的森林。

太棒了!这浇水任务也太简单了,瞬间就搞定!

别高兴太早,游戏又立马进入下一个任务场景了,小明与爸爸对话完小动物们就会陆陆续续的来到森林中,我们要和小明一起帮助它们回到各自的家中。

来访

一共有五个小动物需要我们帮助,分别是兔子、刺猬、骆驼、蛇和狐狸,它们都会接收到来访的广播,以骆驼为例:

接收到来访的广播后,所有的小动物会一起出来,并且从舞台的最左边走到小明的面前。

如果我们再用鼠标点击各个小动物的话,它们还会通过一段文字加语音介绍自己,我们可以了解到它们的历史和生活习性:

随小动物们一起出现的还有一个NEXT按钮,点击它后游戏继续运行后面的剧情。

NEXT按钮会发出树后的广播,接收这个广播的角色只有小明一个人:

在上面的代码中又使用到了变量“名字”,同学们还记得这个变量吗?在上篇文章里,果冻老师介绍过变量与回答语句的区别,如果使用回答语句的话,到这儿可能存储的内容早已发生了变化,或者很有可能我们已经忘了语句里存放的内容是什么了,而使用变量的话就没有这些问题,因为一看到它很明显里面存的就是我们输入的名字。

小明请求我们帮助他点击所有的小动物并让它们回到自己的家中,游戏再次进入了互动操作的环节。

动物归家

接收动物归家广播的角色一共有五组十个,再加上一个小明。

每一组角色都包含一个小动物和一个目的地图案,小动物与目的地图案又通过一组广播实现了回家的过程,那代码是如何实现的呢?我们赶紧来看一下吧。

还是以小骆驼为例子,小骆驼接收到动物归家的广播后,就会一直不停的判断鼠标是否点击它了:

蒋加许同学在这里小秀了一下子,点击骆驼角色后,广播的内容并不是常见的汉字或者英文,而是一个小骆驼的符号“ ”,哈哈!是不是很有趣?小朋友的思维真是有意思,那这个符号是怎么敲出来的呢?果冻老师在这里不告诉你,而是把方法写在源代码的注释中,想知道的同学就问老师要源代码吧。

那接收这个骆驼小符号广播的角色是谁呢?就是骆驼的目的地图案,当我们用鼠标点击目的地后,小骆驼就知道它的家找到了。

点击目的地就是告诉小骆驼你的家在这里,于是会广播“ ☺”,小骆驼接收到这个广播后,就会走向它的家中。

通过“ ”和“ ☺”这一组广播,我们帮助小骆驼回到了它在森林的家中,其它动物回家的逻辑也是类似的,我们只需要仔细辨认出目的地图案所在的位置就可以了,很简单的逻辑,相信你已经搞懂了。

每当我们帮助一个小动物回到家里,回家的动物这个变量就会增加1,当所有的动物都回家后,这个变量的值就变成了5,这个时候,帮助小动物回家的任务我们就完成了。

最终,帮助小动物回家的整个过程是这样的:

总结

到这里,《我的蚂蚁森林》中的两个游戏任务都介绍完了,不知道同学们觉得这个游戏怎么样?蒋加许同学在他的作品中充分使用了变量、克隆、广播等知识,在每个任务的开始和结束的地方还利用扩展的朗读模块、说和播放声音语句给我们介绍了游戏的故事背景,这样可以使得游戏情节更加的饱满,作为一名小学生参加比赛,最主要考的不是选手的技术能力,而是他的创意与作品的完成度。通过这个作品,可以看到蒋加许同学在游戏的每一个细节都力求完美,并且他也做到了,小朋友们在开发自己的作品时也要努力和蒋加许同学一样做出完美而有意义的作品哦!

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

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

2023-8-4 8:33:12

综合资讯

Scratch全国少儿编程竞赛获奖作品《记忆碎片》解析上篇

2023-8-5 8:40:34

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