案例名称:孙悟空七十二变
学习目标:
- 掌握角色导入、角色造型的导入,以及多个造型之前的切换
-
理解“在···和···之间取随机数”指令可以产生这个区间的随机数,并掌握如何使用随机数指令
-
了解并学会使用事件模块下面的消息指令“广播·····”指令来发送一个消息给其它所有的角色,同时掌握如何使用“当接收到····”指令判断是否接收到特定的 消息,然后执行相应的指令模块
-
熟练掌握循环模块下的“重复执行”指令,实现指令的重复执行。
-
PS:具体的单个指令模块详解可以查看《Scratch3.0入门教学》专栏
场景介绍:
说起西游记,小朋友们肯定不会陌生,西游记的主角孙悟空,身怀绝技本领高清。大家都知道他的一项技能:七十二般变化,可以使自己或者别人甚至其它东西变成各种各样他想让他们变成的东西,可男可女、可大可小、可老可少、可长可短甚至可有可无。我们Scratch软件其实就可以实现某个角色的七十二变,让我们一起来试一试吧。
案例分析:
程序启动的时候,舞台中会出现两个按钮(开始和停止),当我们鼠标点击开始按钮之后,我们的舞台中央会出现书悟空,然后会不停的变换造型和大小、他是如何变换的呢?党我们鼠标点击停止按钮之后,孙悟空会理科停止变变化,保持最后的造型和大小。小朋友们是不是觉得很有趣呢,那么就让我们一起动手来试试吧。
-
角色分析:开始按钮、停止按钮、孙悟空
-
背景分析:好看的背景即可(小朋友们自行选择)
流程分析:
开始按钮和停止按钮流程相对简单,而孙悟空角色相对会复杂一点,他将会有3个程序模块分别是:程序启动、接收到开始消息和接收到停止消息。具体流程如下:
- 开始按钮:角色被点击时→广播开始消息
- 停止按钮:角色被点击时→广播停止消息
- 孙悟空1:程序启动→隐藏
- 孙悟空2:接收到开始→显示→七十二变【切换造型(随机)→改变大小(随机)→播放一个声音→说一句话(变变变)→时间间隔】
- 孙悟空3:接收到停止→停止
- PS:流程分析里面的【】代表循环结构
用到的指令模块
外观模块:
- :显示角色在规定时间内的说话内容
- :角色的隐藏和显示,控制角色是否在舞台上出现
- :切换指定的造型改变角色的外观,点击下拉三角可以选择角色所拥有的不同造型
声音模块:
- :播放指定的声效,来模拟孙悟空变换时的听觉效果,播放完之后在执行后续的指令
事件模块:
- :当小绿旗被点击时表示程序启动,该执行后面的指令了
- :当指定的角色被点击之后,运行后面的指令
- :广播发送一个特定的消息给所有的角色,然后继续运行后面的指令,而不用等待指令是否触发
- :当接收到一个定的广播消息之后,执行后面的指令
控制模块:
- :时间戳,等待指定的时间后执行后面的指令
- :一直重复直行模块里面的指令
- 停止指定的脚本内容,下拉三角可以选择的脚本有:全部脚本、这个脚本和角色的其它脚本
运算模块:
- :产生一个指定区间的随机数
角色和背景设置
角色设置:
- 删除默认的角色“角色1”猫咪,鼠标点中猫咪,右上角会出现一个垃圾桶的图标,点击就删除如下图小猫咪右上角图标
- 我们这个案例中分别有3个不同的角色:开始按钮、结束按钮、孙悟空。新增角色的方法:在角色区域右下方选择一个角色,然后选择第一个上传角色按钮,选择相应的角色文件,如下图所示。
- 三个角色对应的图标如下:
- 导入完成如下图所示:
- 为实现孙悟空的七十二变,所以我们需要给孙悟空导入多个不同的造型。操作方法:点击角色的造型标签,左下角选择一个角色造型,选择上传造型,如下图所示:
- 然后逐一添加事先准备好的孙悟空的造型,共设计9个造型,如下图所示:
- 造型添加好了之后我们还需要给孙悟空添加一个声音音效,这样他在变化的时候也会让我们有一个听觉效果。操作方法:点击角色的声音标签,点击左下角从声音库中选择一个音效,如下图所示:
- 这里我们选择的音效是Whiz音效
背景设置
- 默认的是空白的舞台背景,我们可以删除也可以不删除小朋友可以自行决定
- 然后我们从背景库中选择一个合适的背景,我这边选择的背景是(Slopes)
- 显示效果如下图所示
程序指令编写
开始按钮
- 第一句当开始角色被点击时,就意味着开始执行按钮被按下了,就要执行后续的程序
- 第2句就广播“开始表演”消息给所有的角色,然后继续运行后续的脚本模块,而并不用等待脚本触发,当然在本案例中开始角色发完消息之后后面并没有其它的程序指令。
停止按钮
- 第一句当开始角色被点击时,就意味着开始执行按钮被按下了,就要执行后续的程序
- 第2句就广播“停止始表演”消息给所有的角色,然后继续运行后续的脚本模块,而并不用等待脚本触发,当然在本案例中开始角色发完消息之后后面并没有其它的程序指令。
孙悟空1
- 第一句点击小绿旗,也就是程序启动,就要执行后续的程序指令
- 第二句,隐藏,程序启动的时候孙悟空是不出现的,只有开始和停止两个按钮,所以通过隐藏角色来控制
孙悟空2
- 当接收到开始表演的广播消息之后,首先应该显示孙悟空角色,如上图12所示;
- 然后就一直进行七十二变换也就是3重复循环,重复直行循环内的程序指令也就是4-8;
- 由于我们孙悟空角色有一个造型,我们后面又上传了9个造型,所以孙悟空就有10个造型,我们为了实现七十二变,也就是通过在1-10个造型中进行随机的切换如上图4所示;
- 孙悟空变换之时,不仅仅是造型发生改变,同样的大小也在不同的变换,我们这里是将角色的造型设定在60-80之间随机产生,如上图5所示;
- 紧接着我们在变换的同时,也希望能够伴随着一定的音效产生,这样对我们这个案例显的更丰富饱满如上图6所示;
- 同样在变换的同时,孙悟空会说一句话“我变 我变 我变变变”,如上图7所示;
- 最后,为了便于观看,我们在孙悟空不同的造型变换的过程中插入了时间戳,1秒的时间间隔,如上图8所示。
孙悟空3
- 接收到停止表演的广播消息:停止所有角色的脚本,结束我们的案例;如上图所示。
拓展练习
- 通过该案例的学习和实现,小朋友们觉得我们这个还有哪些可以改进的地方呢
- 针对本案例,我们是不是可以加入一些背景音乐以及碰撞音效或者弹跳音效
- 通过本次的学习,我们是否可以利用以上的方法设计类似于趣味抽奖的游戏
- 利用产生一定区间范围的随机数切换不同的人名来实现随机抽奖效果
- 通过继续研究改进,我们是否可以实现一等奖、二等奖、三等奖按钮,实现更多奖项的抽取效果呢
案例演示
【Scratch案例演示】孙悟空七十二变