最新消息:

少儿编程Scratch第六讲:抽奖游戏之造型、随机和广播

Scratch 少儿编程 18372浏览 1评论
少儿编程Scratch01

友情提示:视频教程观看时请手动设置清晰度。

目的

目的:抽奖游戏运行时会不断的快速切换很多奖品,点击停止,画面停在某个奖品上,即为用户所抽到的奖品。这节课学习如何制作抽奖游戏。通过抽奖游戏,理解背景、角色、造型、随机和广播的功能。

 

1

适用对象:适合一年级初学者使用。在老师指导下,学员基本能够独立完成。

背景:之前给小孩玩过一会“果果老师”编写的抽奖游戏。一天下班回来后,小孩跟我说他自己做了一个抽奖的游戏。我很惊讶,不大相信。开机,检查,还真的是一个很不错的抽奖的程序。当然这是一个简单的抽奖游戏,还有很多可以改进的地方。因此我就顺着这个抽奖游戏雏形,逐步深入讲解和制作抽奖游戏。

 

本游戏共享在:https://Scratch.mit.edu/projects/200876858/

MITScratch是一个社区,可以共享程序,其他人可以查看代码,进行改进(Remix)。虽然访问MIT的网站会慢一点,但我们已经习惯在网上直接制作程序,不安装和使用客户端Scratch软件了。

微信订阅号:ABO_CRM

 

少儿编程-Scratch

·     少儿编程Scratch第五讲:练习一坐标和移动

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

 

实现方式

最简单的抽奖游戏:这一个版本就是小孩自己琢磨出来的。即将所有的奖品都放在一个角色中,然后点击绿旗子开始时,立即进入一个大循环,然后在循环里面不停的切换造型。点击结束时,系统就会将奖品停在某个造型上,就是最后的奖品。因此只需要三个指令:开始、循环、下一个造型。

 

抽奖游戏逐步改进:上述抽奖游戏是最简单的版本,是有一些缺陷的。

第一个大问题是奖品的出现不是随机的,是依次按顺序更换造型。虽然小孩加入了42个造型,但是每次运行时,系统是按已经固定的礼品顺序抽取的。这不大公平,因为用户可以记住奖品的大概顺序。虽然奖品跑得很快,但还是能够知道奖品的前后大概顺序的。要解决这个问题,就需要使用随机的功能。即从两个数字之间随机挑一个数字。Scratch提供了“在XXYY之间随机选一个数字”的功能。在更换造型中,可以使用“更换造型XX”。要使用随机数,就要把角色的造型重新命名为数字,否则以前的英文单词形式,是不能随机抽取的。其实我们之前看的“果果老师”的抽奖程序也是没有使用随机功能的。

 

第二个问题是抽奖的开始和结束问题。现在的抽奖是使用系统的开始结束按钮。如果需要在游戏页面内部自己制作按钮,然后点击开始按钮即开始抽奖,点击停止按钮就停止。用户可以多次点击开始和结束。因为按钮和奖品属于两个角色,因此要使用广播功能,开始按钮通知奖品开始摇奖,停止按钮通知奖品停止摇奖。

 

第三个问题是一个小问题。小孩自己做的抽奖程序中,一开始奖品就是显示的。实际抽奖过程中,奖品肯定是先隐藏的。这个改进很简单,即程序开始时,将奖品设置为隐藏,抽奖开始的时候才显示出来。

 

第四个问题是后续改进。抽奖是一个激动人心的过程,因此通常要增加激动人心的音乐,停止的时候,还可以切换一些灯光,播放停止的音乐。切换灯光可以通过变更背景实现。播放音乐的功能打算放到以后课程内再讲。

 

功能1:角色(孩子已熟悉)

一个图片或物品都可以作为角色,角色有一个脚本,程序写在角色的脚本中。这是Scratch的基本功能。

可以新建角色,默认角色是一个小猫咪。先删除小猫角色,系统提供了动物、奇幻、字母、人物、物品、交通等角色分类。

例如我们添加了小绿旗子和停止按钮两个角色。“当小绿旗子被点击”,就是开始按钮,然后执行一些操作,即开始抽奖。点击停止按钮时,抽奖结束。再次点击开始按钮,可以重新抽奖。

 

功能2:造型

每一个角色可能有一个或多个造型。造型是实现动画效果的重要方式。例如角色“猫”。猫有两个角色,通过切换造型实现小猫奔跑的动作,切换造型会实现动画的效果。在一个角色中放多个造型是Scratch的常用方式,否则可能会编写很多重复的代码。例如实现0-9数字加减法,打字程序a-z 26个字母,如果每个数字或字母都设置成单独的角色,那么这些角色中很多代码是完全相同的。使用一个角色,然后加上克隆功能,就可以实现打字、加减法游戏。

 

例如,在该抽奖游戏中“旗帜”的造型分两个,一个正的一个斜的。见下图所示,

2

 

切换时产生运动的效果,旗帜摇动起来。系统中的小旗子其实是只有一个造型的。讲解了可以复制一个出来,然后稍作调整,例如旋转一定的角度。然后切换造型,就可以实现一定的动画效果。

 

3

<小猫的两个造型,不停的切换造型,看上去,小猫就奔跑起来了。>

 

系统指令:下一个造型,实现切换功能。

 

4

下面通过造型做出抽奖游戏。这个版本也就是小孩自己制作的最原始的抽奖游戏版本。这个脚本放在奖品上,一个大循环,然后下一个造型,没有随机。奖品即不停循环显示,点击停止,就会停在某一个奖品上。

然后同理,将这个脚本放在小猫咪角色上,小猫咪就跑动起来了。当然如果不加等待时间,小猫咪的跑动就实在是太快了,快被累坏了。因此设置了等待0.1秒,才更换下一个造型。这样小猫咪的跑动就会正常一些。

 

 

制作步骤

第一步:选择舞台背景:这个舞台背景是小孩自己选的。

 

5

 

 

加入了小猫咪,在不停的跑动;加入了一个西瓜,西瓜也切换造型。说这是小猫咪在吃西瓜。然后加入了雪人,说雪人和小猫咪在舞台前面观看抽奖。加入了两个雪花角色,当装饰使用。这些是小孩自己加上去的。

 

后来我们在改进环节,加入绿旗子开始按钮,和橙色的停止按钮。绿旗子和停止按钮都复制了一个造型,稍微转动一下,实现动画效果。这样程序开始时,就知道这两个地方是可以点击了。

 

第二步:设置奖品角色的造型

1.   首先随便选择一个物品作为奖品角色。然后在这个角色中增加其他造型,即其他奖品。

【操作步骤】选择奖品角色,“从造型库中选取造型”。选多少个即有多少个奖品。这些造型都同属于一个角色。如下图所示,

 

6

孩子添加了42个造型,这42个造型都同属恐龙这一个角色,随着奖品的切换,角色上的图也会跟随切换。

 

7

2.     为了使用随机函数,我们造型进行数字编号,更改造型名称为数字。选中造型,右上角更改录入数字,按照顺序录入数字即可。

8

 

问题:目前多个造型是按顺序排列执行切换,不是随机的。能够猜出奖品,可以控制奖品。我们要做成随机的。所以要进行以下拓展操作。如果在更换造型中增加等待2秒,那么能够很明确的看到,系统是按顺序更换造型的。加入随机功能以后,系统就从42个奖品造型中随机抽取一个了。用户就无法猜测系统下次将显示哪一个奖品了。

 

第三步:设置随机显示造型

1. 随机的介绍:即系统中提供这样的指令,从一个数到另外一个数之间随机选一个数。例如,如果有42个造型,每次都是从中随机挑选一个。因此,需要从142中,随机挑选一个数字。

2. 【操作】点击奖品角色的脚本,添加“将造型切换为在1-42之间随机选择一个数”。我们需要将随机数放在造型切换指令中。因此我们需要将这两个指令拼在一起。这是一种很常用的方式,需要熟练掌握。

9

开始时,请先忽略广播。在最简单的抽奖游戏中,也可以使用这个随机功能。

【操作步骤1】点击脚本—外观,选择10

 

【操作步骤2】点击脚本—运算,添加指令 11

 

造型是有编号的,系统默认编号为英文字母,我们之前对造型进行编号,该游戏中有1-42个造型编号。已更改编号为1-42

 

【操作步骤3】把12拖到13中。即

QQ图片20180821104729

 

这样,每次执行就会随机显示一个造型。

 

第四步:实现对奖品角色的开始和结束广播功能。(如果不自己制作按钮实现开始和结束的话,抽奖程序会简单很多。)

Scratch中,角色就是我们需要使用程序操作的对象。角色和角色之间是相对隔离的。如果一个角色需要通知另外一个角色要做什么事情,那么我们可以使用“广播”的功能。“广播”就是对程序中每个角色“大喊一声”,这样其他角色才能听到,听到以后,他们就去做一定的事情。否则别的角色是不知道其他角色要他做什么的。在这里,开始和结束是两个按钮角色,点击以后,要告诉奖品角色,开始或结束抽奖。开始按钮喊“开始抽奖”,抽奖的角色接收到这个消息以后,就显示奖品,开始抽奖。结束按钮喊“结束抽奖”,抽奖的角色接收到这个消息以后,就停止抽奖,显示抽中的奖品。

 

目的,用点击按钮的方式实现对一个角色的开始结束动作。

1. 添加旗帜图标角色15表示开始;

2. 添加八边形图标角色16表示结束。

3. 设置造型,开始和结束角色图标都有两个造型,切换造型产生动画效果。

 

4. “等待”操作:点击新增的开始按钮时,奖品角色开始快速变化。如果不想让它动那么快,在脚本-控制中选择17

,例如更改时间为0.1秒。

  

要设置等待多少秒。就不会变化太快。

 

功能3:广播

1. 对开始角色进行广播

例如,开始的时候要告诉角色奖品开始抽奖了,当角色被点击这个事件开始时,做一个广播,即喊一声开始抽奖。通过广播的形式,对方(奖品)接到抽奖信息开始随机切换奖品。广播就是让一个角色喊一声。

广播可以新建消息,比如让小旗帜喊一声开始抽奖,奖品收到信息后便开始切换造型。

点击开始旗帜角色18,脚本—控制,如下图,

19

 

当开始角色被点击时,广播“开始抽奖”。

奖品角色收到这个广播消息以后,就开始抽奖。

20

 

当结束角色被点击时,广播“结束抽奖”。

奖品角色收到这个广播消息以后,就结束抽奖。结束时,我们使用了一个巧妙的指令“停止角色的其他脚本”,即系统将这个角色中的其他脚本停止掉,也就是说系统会将开始抽奖的那一段无限制循环停止运行。如果停止所有脚本,系统将停止所有角色的脚本,那么开始、结束、小猫咪等角色将被停止运动。我们想用户可以继续抽奖,所以这些角色继续执行。还可以选择停止当前脚本,就是停止收到结束抽奖后的其他脚本,这里其实是没有其他脚本的。如果不想使用这个指令,那就要使用一个全局变量了。变量功能,将在后续课程中介绍。

 

2. 对结束角色进行广播

奖品一开始设置为隐藏。当点击结束21时,结束抽奖,奖品收到结束抽奖消息时,停止该角色的其他脚本。即只停止奖品这一个角色的脚本。奖品运动结束,小猫和西瓜等其他角色仍然在动不受影响。

点击结束八边形角色,脚本—控制,如下图,

22

 

只有点击系统自带的右上角脚本旁边的停止按钮时,才会停止全部角色的脚本。

 

以后的提升练习:添加播放声音,比如添加开始和结束时的声音。

 

本章重点:

1,造型:每一个角色可能有一个或多个造型。

2,切换造型:如果不想变化很快,添加等待指令。

3,随机:随机找一个造型:对造型进行数字编号,添加随机指令,将造型切换为在1-X之间随机选择一个数。

4,广播:广播就是让一个角色喊一声,对方收到广播后执行命令。

 

少儿编程-Scratch

·     少儿编程Scratch第五讲:练习一坐标和移动

·     少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘(2018.01)

·     少儿编程Scratch第三讲:宇宙大战.枪战游戏(2018.01)

·       少儿编程Scratch第二讲:奇妙的接球小游戏(2018.01)

·       Scratch第一讲:Scratch完美的初体验(2018.01)

转自公众号:
艾博特

您必须 登录 才能发表评论!

网友最新评论 (1)

  1. :mrgreen:
    wycmobile5年前 (2018-12-11)