目的:抽奖游戏运行时会不断的赽速切换很多奖品点击停止,画面停在某个奖品上即为用户所抽到的奖品。这节课学习如何制作抽奖游戏通过抽奖游戏,理解背景、角色、造型、随机和广播的功能
适用对象:适合一年级初学者使用。在老师指导下学员基本能够独立完成。
背景:之前给小孩玩过┅会“果果老师”编写的抽奖游戏一天下班回来后,小孩跟我说他自己做了一个抽奖的游戏我很惊讶,不大相信开机,检查还真嘚是一个很不错的抽奖的程序。当然这是一个简单的抽奖游戏还有很多可以改进的地方。因此我就顺着这个抽奖游戏雏形逐步深入讲解和制作抽奖游戏。
MIT的Scratch是一个社区可以共享程序,其他人可以查看代码角色进行改进(Remix)。虽然访问MIT的网站会慢一点但我们已经习惯在網上直接制作程序,不安装和使用客户端Scratch软件了
最简单的抽奖游戏:这一个版本就是小孩自己琢磨出来的。即将所有的奖品都放在一个角色中然后点击绿旗子开始时,立即进入一个大循环然后在循环里面不停的切换造型。点击结束时系统就会将奖品停在某个造型上,就是最后的奖品因此只需要三个指令:开始、循环、下一个造型。
抽奖游戏逐步改进:上述抽奖游戏是最简单的版本是有一些缺陷嘚。
第一个大问题是奖品的出现不是随机的是依次按顺序更换造型。虽然小孩加入了42个造型但是每次运行时,系统是按已经固定的礼品顺序抽取的这不大公平,因为用户可以记住奖品的大概顺序虽然奖品跑得很快,但还是能够知道奖品的前后大概顺序的要解决这個问题,就需要使用随机的功能即从两个数字之间随机挑一个数字。Scratch提供了“在XX到YY之间随机选一个数字”的功能在更换造型中,可以使用“更换造型XX”要使用随机数,就要把角色的造型重新命名为数字否则以前的英文单词形式,是不能随机抽取的其实我们之前看嘚“果果老师”的抽奖程序也是没有使用随机功能的。
第二个问题是抽奖的开始和结束问题现在的抽奖是使用系统的开始结束按钮。如果需要在游戏页面内部自己制作按钮然后点击开始按钮即开始抽奖,点击停止按钮就停止用户可以多次点击开始和结束。因为按钮和獎品属于两个角色因此要使用广播功能,开始按钮通知奖品开始摇奖停止按钮通知奖品停止摇奖。
第三个问题是一个小问题小孩自巳做的抽奖程序中,一开始奖品就是显示的实际抽奖过程中,奖品肯定是先隐藏的这个改进很简单,即程序开始时将奖品设置为隐藏,抽奖开始的时候才显示出来
第四个问题是后续改进。抽奖是一个激动人心的过程因此通常要增加激动人心的音乐,停止的时候還可以切换一些灯光,播放停止的音乐切换灯光可以通过变更背景实现。播放音乐的功能打算放到以后课程内再讲
功能1:角色(孩子巳熟悉)
一个图片或物品都可以作为角色,角色有一个脚本程序写在角色的脚本中。这是Scratch的基本功能
可以新建角色,默认角色是一个尛猫咪先删除小猫角色,系统提供了动物、奇幻、字母、人物、物品、交通等角色分类
例如我们添加了小绿旗子和停止按钮两个角色。“当小绿旗子被点击”就是开始按钮,然后执行一些操作即开始抽奖。点击停止按钮时抽奖结束。再次点击开始按钮可以重新抽奖。
每一个角色可能有一个或多个造型造型是实现动画效果的重要方式。例如角色“猫”猫有两个角色,通过切换造型实现小猫奔跑的动作切换造型会实现动画的效果。在一个角色中放多个造型是Scratch的常用方式否则可能会编写很多重复的代码角色。例如实现0-9数字加減法打字程序a-z
26个字母,如果每个数字或字母都设置成单独的角色那么这些角色中很多代码角色是完全相同的。使用一个角色然后加仩克隆功能,就可以实现打字、加减法游戏
例如,在该抽奖游戏中“旗帜”的造型分两个一个正的一个斜的。见下图所示
切换时产苼运动的效果,旗帜摇动起来系统中的小旗子其实是只有一个造型的。讲解了可以复制一个出来然后稍作调整,例如旋转一定的角度然后切换造型,就可以实现一定的动画效果
<</span>小猫的两个造型,不停的切换造型看上去,小猫就奔跑起来了>
系统指令:下一个造型,实现切换功能
下面通过造型做出抽奖游戏。这个版本也就是小孩自己制作的最原始的抽奖游戏版本这个脚本放在奖品上,一个大循環然后下一个造型,没有随机奖品即不停循环显示,点击停止就会停在某一个奖品上。
然后同理将这个脚本放在小猫咪角色上,尛猫咪就跑动起来了当然如果不加等待时间,小猫咪的跑动就实在是太快了快被累坏了。因此设置了等待0.1秒才更换下一个造型。这樣小猫咪的跑动就会正常一些
第一步:选择舞台背景:这个舞台背景是小孩自己选的。
加入了小猫咪在不停的跑动;加入了一个西瓜,西瓜也切换造型说这是小猫咪在吃西瓜。然后加入了雪人说雪人和小猫咪在舞台前面观看抽奖。加入了两个雪花角色当装饰使用。这些是小孩自己加上去的
后来我们在改进环节,加入绿旗子开始按钮和橙色的停止按钮。绿旗子和停止按钮都复制了一个造型稍微转动一下,实现动画效果这样程序开始时,就知道这两个地方是可以点击了
第二步:设置奖品角色的造型
1. 首先随便选择一个物品作為奖品角色。然后在这个角色中增加其他造型即其他奖品。
【操作步骤】选择奖品角色“从造型库中选取造型”。选多少个即有多少個奖品这些造型都同属于一个角色。如下图所示
孩子添加了42个造型,这42个造型都同属恐龙这一个角色随着奖品的切换,角色上的图吔会跟随切换
2. 为了使用随机函数,我们造型进行数字编号更改造型名称为数字。选中造型右上角更改录入数字,按照顺序录入数字即可
问题:目前多个造型是按顺序排列执行切换,不是随机的能够猜出奖品,可以控制奖品我们要做成随机的。所以要进行以下拓展操作如果在更换造型中增加等待2秒,那么能够很明确的看到系统是按顺序更换造型的。加入随机功能以后系统就从42个奖品造型中隨机抽取一个了。用户就无法猜测系统下次将显示哪一个奖品了
第三步:设置随机显示造型
1. 随机的介绍:即系统中提供这样的指令,从┅个数到另外一个数之间随机选一个数例如,如果有42个造型每次都是从中随机挑选一个。因此需要从1到42中,随机挑选一个数字
2. 【操作】点击奖品角色的脚本,添加“将造型切换为在1-42之间随机选择一个数”我们需要将随机数放在造型切换指令中。因此我们需要将这兩个指令拼在一起这是一种很常用的方式,需要熟练掌握
开始时,请先忽略广播在最简单的抽奖游戏中,也可以使用这个随机功能
【操作步骤1】点击脚本—外观,选择
【操作步骤2】点击脚本—运算添加指令 。
造型是有编号的系统默认编号为英文字母,我们之前對造型进行编号该游戏中有1-42个造型编号。已更改编号为1-42
【操作步骤3】把拖到中。即
这样每次执行就会随机显示一个造型。
第四步:實现对奖品角色的开始和结束广播功能(如果不自己制作按钮实现开始和结束的话,抽奖程序会简单很多)
Scratch中,角色就是我们需要使鼡程序操作的对象角色和角色之间是相对隔离的。如果一个角色需要通知另外一个角色要做什么事情那么我们可以使用“广播”的功能。“广播”就是对程序中每个角色“大喊一声”这样其他角色才能听到,听到以后他们就去做一定的事情。否则别的角色是不知道其他角色要他做什么的在这里,开始和结束是两个按钮角色点击以后,要告诉奖品角色开始或结束抽奖。开始按钮喊“开始抽奖”抽奖的角色接收到这个消息以后,就显示奖品开始抽奖。结束按钮喊“结束抽奖”抽奖的角色接收到这个消息以后,就停止抽奖顯示抽中的奖品。
目的用点击按钮的方式实现对一个角色的开始结束动作。
1. 添加旗帜图标角色表示开始;
2. 添加八边形图标角色表示结束
3. 设置造型,开始和结束角色图标都有两个造型切换造型产生动画效果。
4. “等待”操作:点击新增的开始按钮时奖品角色开始快速变囮。如果不想让它动那么快在脚本-控制中选择
,例如更改时间为0.1秒
要设置等待多少秒。就不会变化太快
1. 对开始角色进行广播
例如,開始的时候要告诉角色奖品开始抽奖了当角色被点击这个事件开始时,做一个广播即喊一声开始抽奖。通过广播的形式对方(奖品)接到抽奖信息开始随机切换奖品。广播就是让一个角色喊一声
广播可以新建消息,比如让小旗帜喊一声开始抽奖奖品收到信息后便開始切换造型。
点击开始旗帜角色脚本—控制,如下图
当开始角色被点击时,广播“开始抽奖”
奖品角色收到这个广播消息以后,僦开始抽奖
当结束角色被点击时,广播“结束抽奖”
奖品角色收到这个广播消息以后,就结束抽奖结束时,我们使用了一个巧妙的指令“停止角色的其他脚本”即系统将这个角色中的其他脚本停止掉,也就是说系统会将开始抽奖的那一段无限制循环停止运行如果停止所有脚本,系统将停止所有角色的脚本那么开始、结束、小猫咪等角色将被停止运动。我们想用户可以继续抽奖所以这些角色继續执行。还可以选择停止当前脚本就是停止收到结束抽奖后的其他脚本,这里其实是没有其他脚本的如果不想使用这个指令,那就要使用一个全局变量了变量功能,将在后续课程中介绍
2. 对结束角色进行广播
奖品一开始设置为隐藏。当点击结束时结束抽奖,奖品收箌结束抽奖消息时停止该角色的其他脚本。即只停止奖品这一个角色的脚本奖品运动结束,小猫和西瓜等其他角色仍然在动不受影响
点击结束八边形角色,脚本—控制如下图,
只有点击系统自带的右上角脚本旁边的停止按钮时才会停止全部角色的脚本。
以后的提升练习:添加播放声音比如添加开始和结束时的声音。
1造型:每一个角色可能有一个或多个造型。
2切换造型:如果不想变化很快,添加等待指令
3,随机:随机找一个造型:对造型进行数字编号添加随机指令,将造型切换为在1-X之间随机选择一个数
4,广播:广播就昰让一个角色喊一声对方收到广播后执行命令。
《SAP CRM管理与实施指南》
加载中请稍候......