夏天来了,语文老师说:“更无柳絮因风起,惟有葵花向日倾。
地理老师说:“北半球白昼逐渐变长,气温逐渐升高。”
英语老师说:“Summer for thee, grant I may be。”
江城武汉说:“我要搞垃圾分类了。”
垃圾分类并不是什么新鲜词,查阅资料得知,北京在1996年就开始提垃圾分类,上海也不甘落后,1999年也开始了。
对于像废玻璃、废纸张、废金属、废塑料、废纺织物、废弃电子产品是可回收垃圾,这种提炼统计的说法已经很熟悉了。
作为一名武汉的家庭主妇,我更关心即将到来的7月,家里需要准备几个垃圾桶?
日常买菜买水果用的塑料袋(这个真是多啊)、头发、大骨头之类的生活垃圾应该怎样分类?
查过资料,生活垃圾分类遵循“两桶一袋”原则:
其实在日常的居家生活中,大部分家庭已经做到了这一点,厨房的垃圾桶放厨余垃圾,客厅的垃圾桶放其他垃圾,下楼扔垃圾时,注意分别投放就行了。
对于可回收垃圾,作为一名家庭主妇,我一直发扬穷逼风格勤俭持家的传统美德,快递盒、空食用油桶、空奶粉桶、饮料瓶之类的可回收垃圾,都是积攒起来扛到废品站去卖了。
下面小呱整理了一些生活中容易分错类的生活垃圾,做成了一个小游戏,边玩边学垃圾分类,在垃圾分类实施以前,争取将这些垃圾的分类做到烂熟于心,如果被罚款了就不好了,咱用那钱来买小龙虾吃,它不香吗?
之前用Scratch做过一个垃圾分类的游戏,读者反映了一些问题,这次对这个游戏做了一些改进。
游戏开始后,垃圾会随机出现,点击下面对应的垃圾箱,如果垃圾投放正确,垃圾箱打开,垃圾进入垃圾箱,垃圾箱提示“投放正确!”,如果点击了错误的垃圾箱,垃圾箱会左右摇动一下,提示“投放错误!”,生命数会减少1,当生命数为0时,游戏会结束!
先来看一下游戏效果吧!
在这个游戏中,我大量运用了“广播”这块积木,在一个scratch作品中,背景和角色往往能够通过各自的脚本,独立的完成自己所要做的事情,可是背景和角色间,或是角色和角色间在面对只有相互合作才能完成的事情时,我们就需要通过【广播】来实现了,背景或任何一个角色,都可以通过【广播消息】积木块向其他角色或是背景发送消息。
下面来看一下具体的脚本。
1.变量和列表
我们定义了5个变量和2个列表。
垃圾编号:这个变量表示当前显示的垃圾的造型编号;
扔对垃圾数量:用来记录正确投放垃圾的数量;
生命数:记录玩家的生命点数,初始化有5点生命数,点错一次垃圾 桶,减去1点生命数;
a:这个变量用于创建列表,它是隐藏变量;
b:用来记录垃圾在列表中的位置,它是隐藏变量;
还定义了两个列表:
临时列表:这个列表用于生成21种垃圾的顺序列表;
垃圾分类:这个列表用于将垃圾顺序随机打乱,这样在每一局游戏中,垃圾的排列顺序都是不一样的。
2.背景
我们选择默认的白色背景,为这个背景增加了1个声音,倒计时“3、2、1”的声音。
这个背景有一段脚本。
当绿旗帜被点击,广播“567”,播放倒计时声音,等待2秒,调节音量。
3.角色
删除默认的“小猫”角色。
这个游戏中共有8个角色,分别是倒计时、垃圾、4个垃圾桶、游戏成功、游戏失败,下面依次来介绍。
第1个角色:倒计时
这个角色是游戏的开始,点击绿旗后,界面显示3、2、1倒计时,是为给初始化垃圾列表提供缓冲时间,它有3个造型:
当点击绿色旗帜时,显示角色,切换为3造型,分别等待0.5秒,依次切换2、1造型,然后隐藏角色,广播“显示垃圾”。
第2个角色:垃圾
这个角色有21种垃圾造型,分别为21种不同的垃圾。
当点击绿色旗帜时,隐藏角色,初始化角色位置,将角色设置为不可拖动。
然后数据初始化工作,当点击“绿色小旗”时,将扔对垃圾数设为0,生命数设为5,变量“a”设为1。
删除“临时列表 ”的全部项目,重复执行21次(因为有21种不同的垃圾),每次都将a添加到“临时列表”中,再将“a”增加1,通过循环,我们就将垃圾的24种造型顺序插入到“临时列表”中。
接下来删除“垃圾分类”中的全部项目。然后进入循环,直到“临时列表”的项目数为0才会跳出循环。在这个循环体中,首先从1到“临时列表”的项目数之间取一个随机数,并将其赋值给变量a,然后将“临时列表”的第“a”项的值加入到“垃圾分类”列表中,并且将“临时列表”的第“a”项删除。通过这3条语句,可以从“临时列表”中随机选择一条记录,将其插入到“垃圾分类”列表中,然后从“临时列表”中删除这项记录。经过24次重复,“临时列表”中的数据都迁移到了“垃圾分类”列表中,只是顺序打乱了。
之后,设置变量b的值为1,并顺序从“垃圾分类”列表中取出垃圾的造型显示出来。
数据初始化工作完成后,要在垃圾桶上方,随机且不重复地显示垃圾,当接收到广播消息“显示垃圾”时,克隆自己,当作为克隆体启动时,根据垃圾编号切换造型,初始化垃圾位置,将角色设为不可拖动。
此时玩家会点击对应的垃圾箱,比如当前显示的是可回收垃圾,点击可回收垃圾箱,可回收垃圾箱会广播消息“是可回收垃圾”,角色垃圾在接收到广播“是可回收垃圾”时,在1秒内滑行到可回收垃圾箱的坐标处,广播消息“进入可回收垃圾桶”,脚本如下:
当可收加垃圾桶接收到广播消息“进入可回收垃圾桶”,会进行切换造型等操作,并广播消息“投放正确”,当垃圾角色接收到“投放正确”广播,删除此克隆体。将变量b、扔对垃圾数量都增加1,显示垃圾造型的第b个造型,即顺序取出“垃圾分类”列表中下一个的垃圾造型。
厨余垃圾、有害垃圾、其他垃圾的处理逻辑同理:
同时当绿色旗帜被点击时,判断扔对垃圾数量是否等于21,等于21时,垃圾分类全部正确,广播“游戏成功”,判断生命数是否等于0,等于0时,广播“游戏结束”。
第3个角色:垃圾桶
以可回收垃圾桶为例,垃圾桶都有两个造型,打开和关闭,当点击绿色旗帜时,换成关闭造型。
当点击角色时,根据造型编号判断垃圾是否为可回收垃圾,如果是可回收垃圾,换成打开造型,广播消息“是可回收垃圾”,否则,否则垃圾桶左右晃动一下,说“投放错误!”1秒,生命数增加-1。
当接收到“可回收垃圾桶”广播,说“投放正确”1秒,换成关闭造型,广播“投放正确!”
厨余垃圾、有害垃圾、其他垃圾处理逻辑参照可回收垃圾。
第4个角色:游戏成功
当点击绿色旗帜,隐藏角色,当接收到“游戏成功”广播,显示角色,并停止全部脚本。
第5个角色:游戏失败
点击绿色旗帜,隐藏角色,当接收到“游戏成功”广播,显示角色,并停止全部脚本。