5课 在Scratch中使用蜂鸣器――守卫松饼

>>>点击此处打开范例

小猫由于工作努力,主人奖励了它一个松饼。它舍不得吃,准备作为第二天的早餐。可是,松饼的香味引来了馋嘴的老鼠。我们可以用Scratch设计一个程序,通过传感器板上的蜂鸣器发出警报,帮助小猫守卫松饼。


要完成这个任务,我们可以先设置舞台,选取角色,设置老鼠的运动路线;然后判断老鼠与松饼之间的距离,距离越近,警报声越高、越急;再设置小猫能够跟随鼠标指针守卫松饼,老鼠也能够侦测与小猫之间的距离,当小于一定值时,它会逃回到初始位置。

要完成这个任务,需要用到以下指令:

:通过设置参数可以改变蜂鸣器发出声音的频率。该指令默认参数值为“2500”,取值范围为(2020000)。

人耳可以听到的声音频率范围,一般是在20赫兹到20000赫兹之间。20赫兹以下的“次声波”与高于20000赫兹的“超声波”,我们人耳是听不到的。根据人耳可听见的声音频率范围,设置不同的参数值,可以改变蜂鸣器的频率。

:通过参数设置可以改变蜂鸣器发出声音的音量大小。该指令默认参数值为“10”,取值范围为(0100)。

请根据以下的程序图编写脚本,然后分别依据表格中的数据设置频率参数值,再运行程序后试听,最后选择合适的声音效果打“”。

(点击或者扫描二维码播放视频)



参 数 值

声 音 效 果

1

低音( ) 中音( ) 高音( )

2

低音( ) 中音( ) 高音( )

3

低音( ) 中音( ) 高音( )

4

低音( ) 中音( ) 高音( )

5

低音( ) 中音( ) 高音( )



第一步:设置舞台背景与角色

(点击或者扫描二维码播放视频)

  1. 单击“舞台列表区”中的 按钮,在打开的“背景库”对话框中找到并双击“room3”缩略图,将“room3” 背景图片添加到舞台上。

  2. 单击“角色列表区”中的 按钮,在打开的“角色库”对话框中找到并双击“Cat2”缩略图,将“Cat2” 角色添加到舞台上。

  3. 按以上方法,继续从角色库中将“Mouse1”、“Muffin” 添加到舞台上;调整这三个角色大小,将它们摆放到舞台合适的位置。

  4. 选中Muffin”角色,从“声音选项卡”的“声音库”中添加“chomp”声音。

  5. 将角色列表区无用的角色删除;将舞台上无关的传感器数值隐藏起来

舞台背景

角 色


第二步:编写老鼠角色脚本

(点击或者扫描二维码播放视频)

老鼠角色脚本共有两段代码,可以在“角色列表区”中选中“Mouse1”角色,分别按以下步骤编写这两段代码:

  1. 代码使老鼠能够面向松饼(Muffin)方向移动。首先指定“Mouse1”的起始坐标,其中X值为(-210210)之间的随机数,y值为(-180);然后重复移动,每次都是面向松饼(Muffin)方向,移动10步、等待0.2秒。

第二段代码用于侦测老鼠与小猫之间的距离。使用重复执行指令进行侦测判断,如果与小猫(Cat2)之间的距离小于150,那么老鼠(Mouse1)返回起始的随机位置。

  1. 在以上代码中,Mouse1起始坐标的x值是一个随机数,你认为这样的指令有什么好处?你想让它每次从哪个位置随机出现?

___________________________________________________________

  1. 如果想让Mouse1的运动更加流畅,可以怎样修改参数?

___________________________________________________________

(点击或者扫描二维码播放视频)


第三步:编写小猫角色脚本

(点击或者扫描二维码播放视频)

小猫角色脚本比较简单,只要让小猫面向老鼠方向,同时跟随鼠标指针移动就行。具体可以按以下步骤编写代码:

首先在“角色列表区”中选中“Cat2”角色,然后在开始旗下面使用重复执行指令,让小猫不断地面向老鼠(Mouse1),同时移动到当前鼠标指针所在的位置。

如果不使用 ,而是使用 ,效果会如何?你喜欢哪种方式,为什么?

________________________________________________________

________________________________________________________

(点击或者扫描二维码播放视频)


第四步:编写松饼角色脚本

(点击或者扫描二维码播放视频)

松饼(Muffin)的脚本有两段,可以在“角色列表区”中选中“Muffin”角色,分别按以下步骤编写这两段代码:

第一段脚本主要是侦测老鼠(Mouse1)与松饼(Muffin)之间的距离,并根据侦测所获得的数据做出判断:当与老鼠之间的距离小于100时,发出频率是1000、以0.5秒为间隔的报警声;当与老鼠之间的距离大于100时,发出频率是2000、以0.25秒为间隔的报警声;

第二段脚本用于判断老鼠有没有碰到松饼。首先显示松饼(Muffin)的第1个造型(muffin-a);然后判断,如果碰到老鼠(Mouse1),则关闭蜂鸣器、将造型切换为第2个造型(muffin-b播放声音“chomp,等声音播放完毕停止程序运行。

在以上介绍的基础上进一步完善程序比如增加舞台场景、添加其它角色,还可以再加上计分、计时、奖励系统等,使游戏变得更加好玩。




我们听到的音乐,每个音符都是有固定频率的,比如C调音符相对应的频率如下图所示:

C调音符

1

2

3

4

5

6

7

频率

262

293

329

349

392

440

494

C调音符

1

2

3

4

5

6

7

频率

523

586

658

697

783

879

987

C调音符








频率

1045

1171

1316

1393

1563

1755

1971

请你使用Scratch编写一段自动演奏《两只老虎》的音乐程序,或者编写一个能够用键盘弹奏的钢琴程序。与以前编写的类似程序不同的是,现在演奏音乐的,是传感器板上的蜂鸣器。


我编写了_______________________________的程序,保存在“好好搭搭”网站上的名称是_________________________;将作品共享了以后,有_________人给我点赞;综合别人给我提的建议,我认为还可以在以下方面进行改进:________________________

_______________________________________________________________________

_______________________________________________________________________

_______________________________________________________________________