上一期,我们学习了在 Scratch 中声音效果和背景音乐的添加和使用,并创作了一个关于玉兔二号月球车的小作品。
今天我们学习一下随机算法及其在 Scratch 中的使用,同时会介绍一下 Scratch 中计时器的用法。最后创作一个使用了随机和计时器的小游戏,好啦,开始吧~
随机(Random)是一个在数学和统计学上很重要的概念,在计算机科学中也有大量的使用场景。
什么意思呢?我们都玩过骰子:
骰子 | Pixabay
而且我们也都知道,一颗骰子掷出去,结果是多少点,我们是无法事先确定的,正如一枚硬币扔出去,落地后是正面还是反面,我们预先也无法确定。所以,简单的说,随机表示了一种不确定性。
在各种游戏中,有大量使用随机的情景,现实中,我们打扑克牌,抓的每张牌都是随机的,电脑游戏中,随机的情况就更多了。
Scratch 中也引入了随机相关的内容,让我们看两个例子:
运算模块中的随机数生成器
在 Scratch 中的运算代码组中,有一个代码块 “在 x 和 y 之间取随机数 pick random x to y”,把这个模块拖到代码区,每次点击都会出现一个新的数,范围由 x 和 y 确定,新的数是随机产生的,范围越大,重复的可能性就越小。
再来看一个例子:
运动模块中的随机位置
在运动模块中,有一个代码块 “移到 随机位置 go to random position”,它的作用是每次运行时,都将角色移动到一个舞台中随机的位置上。
根据我们以前学习的坐标系,我们不难分析出,随机位置的本质也就是随机数 —— x 坐标和 y 坐标值都是随机的,并且范围在舞台横轴和纵轴的范围之内。
了解了随机的概念后,我们来简单的聊一下计时器(Timer)。
计时器是一种测量时间间隔的特殊类型时钟
什么是计时器?每天叫我们起床的闹钟就是一种计时器,比赛时用的秒表也是计时器,家用电器定时关闭也是计时器。
计时器的作用就是测量一个时间的间隔,在 Scratch 中也有计时器相关的代码块:
计时器的使用
计时器位于 “侦测 Sensing” 代码块组中,一个是 “计时器归零 reset timer”,另一个是 “计时器 timer” 本身。
我们在脚本区编写了一个图示的代码,点击开始,小猫就开始不断的读秒数。看箭头示意,很清晰的代码,娃爸就不再啰嗦了。
好啦,学习了随机和计时后,我们来做今天的作品吧!
今天我们做一个大家都玩过的游戏:打地鼠,不过变了一下形式,我们来 “打蝙蝠”,当然,打什么是我们自己来确定的,什么都可以啦。
根据我们以往的游戏经验来分析,这个游戏的规则是这样的:
不难发现,这个游戏的关键在于两处:一是随机,二是计时。
正是我们今天学习的内容,分析清楚了,我们来实现吧!
舞台和角色我们就不多说了,经 Vicky 提示,蝙蝠不会在白天出现,我们选择了一个夜景:
舞台背景和角色
游戏开始时,我们把蝙蝠隐藏起来,在一个 10 次的循环中,每次把蝙蝠移到随机的位置再显示出来:
随机位置的实现
这样我们就实现了随机的位置,然后我们让蝙蝠在 3 秒内自动消失:
计时器的实现
这样我们就实现了计时功能。
当然游戏的核心是在蝙蝠消失前打中它,我们修改了一下条件。最后靠切换造型的方式,让蝙蝠挥动起翅膀。最终的脚本是这样的,注意改动的两个红色方框区:
最终的脚本
这样,我们的 “打蝙蝠” 游戏就完成啦~
今天我们还知道了 4 个单词的含义: