Scratch第十二讲:克隆的妙处

网友投稿 2018-09-09 14:31

前言

上一讲我们讲了如何用Scratch来做重力抛物线,今天我们继续把它做成一个好玩的小游戏,通过让青蛙跳起来吃掉空中飞的虫子。看看青蛙跳几次能吃完所有的虫子。

首先看看CC哥做的程序效果

青蛙吃飞虫小游戏

看完之后,我们就发现今天程序的关键点,就是如何创建这么多小飞虫呢?(CC哥比较懒,懒得去找飞虫的素材了,索性就用素材库里的小蝴蝶代替吧)

那么飞虫怎么创建呢?难道有几只飞虫就要创建几个角色吗?显然不用,那样的话编程会变得很复杂。Scratch提供了很强大的克隆功能,而且,克隆出来的蝴蝶都可以执行单独的脚本。

下面,CC哥就把程序进一步做讲解,看看在编程中会用到哪些技巧。


1、克隆的使用技巧

先创建一个蝴蝶的角色,然后在脚本中添加克隆语句,假设我们希望有八只蝴蝶,那么这段代码就是把蝴蝶克隆八次。(隐藏命令是将蝴蝶的本体角色隐藏起来,这样空中飞舞的都是克隆体。)

https://cdn.china-scratch.com/timg/180911/1431505619-0.jpg

然后我们执行一下看看,发现屏幕上什么也没有,原来本体被隐藏命令隐藏了,所以克隆出来的蝴蝶也都隐藏了。我们把隐藏命令去掉再执行一遍代码看看。

https://cdn.china-scratch.com/timg/180911/1431501a0-1.jpg

奇怪,蝴蝶倒是显示出来了,怎么只有一个呀?我克隆的8个蝴蝶哪去了?不要急,其实你克隆的蝴蝶都在屏幕的一个位置上,全部重叠在一起了。你用鼠标选中蝴蝶角色拖动一下就发现,下面还有蝴蝶。

2、克隆体脚本的应用

既然蝴蝶都克隆出来了,我们就希望针对这些克隆的蝴蝶来单独写代码,让这8只蝴蝶长得不一样,有大有小,颜色也不同,而且还要飞来飞去不容易被青蛙吃掉,这样才生动,才会好玩。

如何实现呢?这里就要用到一条关键命令:

https://cdn.china-scratch.com/timg/180911/143150F60-2.jpg

这条命令是一个事件命令,当克隆体被启动时,执行下列代码。那让我们看看CC哥怎么写这段代码的。

https://cdn.china-scratch.com/timg/180911/143150FI-3.jpg

3、克隆体脚本分解

第一部分:

1:这段代码的第一句就先把克隆的蝴蝶分布到了不同的位置。(随机数的应用)

2:第二句和第三句用于随机设定蝴蝶的大小和颜色。(还是随机数的应用)

3:8只蝴蝶不能都朝一个方向飞呀,所以飞行的方向也要随机设定。(又是随机数)

注:这几句程序都是在设定每只克隆蝴蝶的初始状态,全部设置完毕后,就可以显示出来啦。

第二部分:

注:设置好之后,就可以让蝴蝶开始运动了,这个之前都学过了,用循环命令就行。但是在循环中有一个判断,就是蝴蝶飞行的过程中是否碰到青蛙,如果碰到就要被吃掉,如果没碰到就继续飞行。

1:没有碰到青蛙的脚本:

移动步数,加上之前学过的碰到边缘就反弹。

2:碰到青蛙的脚本:

将蝴蝶数量减去1,然后判断是否是最后一只,如果是就通知游戏结束(通过广播命令发布消息)。如果不是,就删除本克隆体后继续执行程序。

4、广播命令和接收广播命令

广播命令和接收广播命令一般是配套使用,主要用于不同角色之间的信息传递,比如游戏的终止一般会用到广播命令,当一个角色触发某种条件后,就可以在其脚本中通过广播命令发布消息,通知所有的角色游戏结束了。而其他角色收到消息后就可以执行相应的脚本。

https://cdn.china-scratch.com/timg/180911/1431504430-4.jpg

这里CC哥加了个game over的角色,当收到游戏结束的广播消息时,就执行显示命令。

好了,总结一下,今天重点讲得是克隆,以及克隆体的脚本。大家可以试试,这个命令在做游戏时很强大的,好好想想,是不是在玩的很多类似的游戏中是不是都会出现这种应用,比如天上飞的敌机,游戏中随机跑来跑去的小人,小怪物。这个游戏大家可以再创意一下,按照你自己的想法去设计。


--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com