最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Scratch实例7|打字练习程序

Scratch 少儿编程 5121浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

我们已经一起完成了几个小游戏,编程作品除了可以带来娱乐,还可以寓教于乐。今天我们将完成一个键盘练习程序,帮助刚刚接触电脑的朋友快速熟悉键盘,熟悉字母在键盘上的布局。

Scratch实例7|打字练习程序

 

00 软件分析

需求说明:

完成一个键盘打击练习的程序,屏幕上随机出现26个字母,敲击键盘,相应的字母消失。击中字母得一分,字母自行消失前如果未被击中,不得分。控制打字练习的时长,比如练习十分钟后程序自行结束。最好程序开始时难度偏低,随着时间增加,难度也逐渐增加。

 

需求分析:

  1. 需要至少一个角色,字母;
  2. 角色具有26个造型,分别是A~Z;
  3. 角色随机出现在舞台上方,即,y=180,x在-220~220之间任意值
  4. 角色从舞台上方,垂直匀速往下方移动,即,y从180变成-180
  5. 角色移动到舞台下方时,角色消失
  6. 角色向下移动过程中,监听键盘上敲击的字母键,与舞台上的角色造型一致时,角色消失
  7. 每击中一个字母,得分加1
  8. 程序倒计时10分钟,10分钟后自动终止
  9. 程序前5分钟,难度低;3分钟,难度中等;最后2分钟,难度高级

 

上面的实现方式,类似于以前我们的作品《小白兔捡蘑菇》(←点击查看),通过使用“克隆”技术,只需要一个角色就能实现26个不同字母所需的功能。当然,大家要知道的是,除了上面的实现方式之外,还可以创建26个角色,每个角色对应一个字母,即一个角色只有一个造型,另外,可以想象的出来,每个角色几乎具有完全相同的代码逻辑,这种方式没有思考上的困难,只是实现上显得粗笨。

但是,条条大路通罗马,只要能实现原始需求,使用什么方法编码其实并不十分重要。如果你觉得克隆太难理解,就试试第二个方法吧。

 

01 添加角色

Scratch角色库中已经有了几种样式的英文字母,简单起见,我们演示时就选用第一种,当然,你可以试试其他样式的字母。

  • 添加角色

Scratch实例7|打字练习程序

  • 给字母角色添加造型

Scratch实例7|打字练习程序

如上操作,直到添加完所有的26个字母。

  • 删除多余的小猫角色

Scratch实例7|打字练习程序

02 调整角色的大小

调整角色大小的方法有两种:1、使用外观积木,2、在角色编辑区修改属性。

因为还没开始编码,所以我们使用方法2暂时调整。

Scratch实例7|打字练习程序

03 更换舞台背景

按照各自的喜好,将默认的舞台背景替换成合适的背景图。

我就选个炫酷的宇宙背景吧~我选好了,你随意

Scratch实例7|打字练习程序

04 字母的编码

先确保是在对角色(而不是背景)进行编码:选中字母角色,点击切换到【代码】卡片。

  • 创建克隆体

程序启动后设置角色大小、隐藏角色本体、每个n秒创建一个字母角色的克隆体。

Scratch实例7|打字练习程序

  • 字母从舞台顶部落下

当作为克隆体启动时,从舞台顶部出现匀速往底部落下。

Scratch实例7|打字练习程序

  • 在舞台底部消失

克隆体到达舞台底部时,消失。看下面的代码局部放大图:

Scratch实例7|打字练习程序

  • 敲击键盘A,则字母A消失

克隆体监听键盘字母键,如果和当前造型一致,则克隆体消失。

Scratch实例7|打字练习程序

代码局部放大

Scratch实例7|打字练习程序

  • 打字成功赢得分数

创建【得分】变量,程序开始时,初始化为0;击中字母时,得分加1。

Scratch实例7|打字练习程序

  • 添加剩下的字母

按照上面字母a的逻辑,添加剩下的字母。注意下图中的两处,需要根据造型编号id进行修改:

Scratch实例7|打字练习程序

  • 试运行

因为我暂时只添加ABC三个字母的逻辑,所以,我修改“更换积木造型”的逻辑,让造型只在ABC三个字母之间切换,如下。以便于验证:

 [换成 (在 1  3 之间取随机数) 造型] 

Scratch实例7|打字练习程序

程序运行正常。

05 字母的编码(第2版)

上面的字母编码已经可以正确运行,但就如你实际操作的那样,一共有26个字母,就会有26段相似的逻辑,这样重复的编码太缺乏美感了~~

我在一开始构思编码设计的时候,就想着要好好利用“侦测积木”中的  <> ,可它的参数只能是a~z之类键盘上的标识,但我们又没有办法从造型中得到a~z,而是只能到到造型的id和造型的名字,所以这个方式不能直接使用,于是就有了上面的编码方式。

可是经过再次思考,我发现,也许可以修改造型的名字,以便更加便捷的使用造型。

  • 修改造型名字

切换到角色的【造型】选项卡,选中一个字母造型,在右侧修改造型名称,使得它和自己所代表的字母一直,如A字母的造型名就是a或者A。

以此类推,修改26给字母

Scratch实例7|打字练习程序

  • 修改克隆体监听键盘的逻辑

下面是修改前后对比的代码。你会发现,代码简洁了很多

Scratch实例7|打字练习程序

06 难度分级

新建三个变量:出现频率、难度、倒计时。

出现频率的初始值是2,含义是2秒,即间隔2秒出现一个新的字母。在程序运行5分钟后( < (计时器) > 300 > ),出现频率被修改成1.5;在程序运行8分钟后( (计时器) > 480 > ),出现频率被修改成1。

难度的初始值是低,含义是当前当前练习处在低难度的状态,它只是显示用的,没有参与计算或逻辑处理。

倒计时的初始值是600,含义是600秒,即10分钟,也就是程序只运行10分钟。我没有真的给这个变量设置初始值,而是在无限循环体内,不停的给它赋新值,简单点处理可以这样 ( 600 - (计时器) ),我不希望看到秒的小数位,所以在外面加上“运算”积木“四舍五入” (四舍五入 ( 600 - (计时器) ) ,用以去掉小数位。

Scratch实例7|打字练习程序

另外,注意变量前面选择框的勾选,控制你希望哪些变量显示在舞台上。

Scratch实例7|打字练习程序

07 完工!运行程序

至此,我们完成了“需求说明”中的全部内容。

点击舞台左上角的小旗子运行程序,看看效果吧。

Scratch实例7|打字练习程序

附加练习

  • 游戏开始时,增加玩法说明和开始倒计时。(可参考《小白兔捡萝卜,第2版》第03部分)

  • 增加反向扣分/罚分规则,比如:字母落地扣1分、点击了屏幕上不存在的字母按键扣1分,等等

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