最新消息:

Scratch实例5|小白兔捡萝卜

Scratch 少儿编程 3097浏览 0评论

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

Scratch实例5|小白兔捡萝卜

收到幼儿园老师的短信,感叹幼儿园生活真是有趣啊……于是想着顺便做一个关于萝卜的游戏给我家大宝玩儿。

Scratch实例5|小白兔捡萝卜 各位爸爸妈妈,本周我们正式进入《好听的故事》主题,第一个主题故事是《拔萝卜》,在熟悉了故事内容后,我们的小朋友开始围绕萝卜展开讨论,他们知道红萝卜、白萝卜和胡萝卜。他们想知道有没有绿萝卜?蓝萝卜?黑萝卜?萝卜是怎么长大的?萝卜除了吃还可以用来干什么?这些问题都是我们下周要讨论和实验的。所以请你们在周末两天带小朋友去一次菜场,好好认识一下各种各样的萝卜,再带一个最喜欢最特别的萝卜来幼儿园,参与下周的故事延伸活动哦!
谢谢合作,收到请回复

Scratch实例5|小白兔捡萝卜

—— 幼儿园的短信

 

00 软件分析

需求说明:

编写一个游戏程序,从屏幕上方随机位置落下胡萝卜,小兔子在屏幕下方左右移动捡萝卜。当兔子碰到胡萝卜时,表示它捡到了一个萝卜,玩家的分值加1;没捡到,不加分。通过键盘上的方向键控制兔子左右移动。

需求分析:

  1. 需要两个角色,兔子和萝卜;

  2. 萝卜随机出现在舞台上方,即,y=180,x在-120~120之间任意值

  3. 萝卜从舞台上方,垂直匀速往下方移动,即,y从180变成-180

  4. 兔子在舞台下方,即,y恒定不变

  5. 方向键控制兔子左右移动

  6. 萝卜碰到兔子时,萝卜消失,变量“分值”+1。思考:为什么这里不说“兔子碰到萝卜时,萝卜消失”?

  7. 萝卜碰到舞台底部时,萝卜消失,分值不变

01 添加角色

Scratch角色库中并没有我们这次编程所需要的兔子和乌龟,所以,在本次编程中,我们使用电脑本地的角色造型文件创建角色。

我在网上找了些素材,放在云盘中供大家下载使用,使用方法如下:

 

请在浏览器中输入如下网盘地址,在网盘中找到“sitting-rabbit.svg”和“carrot.svg”,并下载到你的电脑硬盘任意文件夹中。
  https://dwz.cn/POaaxyMU 

 

假设你已经把造型文件下载好了。我们来演示添加兔子角色,并且把多余的默认小猫角色删除掉。

Scratch实例5|小白兔捡萝卜

使用同样的方法添加胡萝卜角色。

02 调整角色的大小

将角色调整到合适的大小。

03 更换舞台背景

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

Scratch实例5|小白兔捡萝卜

04 兔子的程序

兔子在整个程序中做了哪些事情?

根据需求分析可以知道,在这个程序中,兔子只是在“重复等待”着“键盘的点击,并据此左右移动”。

 

自问自答

那么,为什么没有“兔子碰到萝卜时,萝卜消失”的逻辑呢?

因为,如果按照这样的思路去做,当兔子碰到萝卜时,需要发送广播通知萝卜隐藏,这样做当然是可行的,但是,编码就变得相对复杂了。如果换一个思路,“萝卜碰到兔子时,萝卜消失”,那么逻辑和对应编码都在萝卜角色中,不再需要广播,编码也变得简单了。

 

所以,兔子的逻辑和编码比较简单。积木如下,不再解释。

Scratch实例5|小白兔捡萝卜

05 萝卜的程序

胡萝卜在整个程序中做了哪些事情?

按照需求分析,得出:

  1. 萝卜随机出现在舞台顶部–> 向下移动–> 碰到底部消失
  2. 萝卜随机出现在舞台顶部–> 向下移动–> 碰到兔子消失–>加1分
  3. 消失–>后萝卜随机出现在舞台顶部

这些的流程画成图如下:

Scratch实例5|小白兔捡萝卜

 

另外,需求没有明确同一时间是否允许舞台上出现多个萝卜,所以,我们这个程序按照同一时间舞台上只有一个萝卜来处理。

 

下面开始编码……

● 萝卜随机出现在舞台顶部

Scratch实例5|小白兔捡萝卜

    如果不理解为什么是正负120、180,请查阅之前的文章,关于舞台坐标系的内容。

 

● 向下移动

Scratch实例5|小白兔捡萝卜

● 碰到舞台底部消失,并再次“随机出现在舞台顶部”

Scratch实例5|小白兔捡萝卜

● 碰到兔子消失,并再次“随机出现在舞台顶部”

Scratch实例5|小白兔捡萝卜

● 通过变量,保存分数

Scratch实例5|小白兔捡萝卜

 

至此,编码就完成了。

试运行游戏,点击舞台右上角的绿色小旗,通过键盘上的方向键控制兔子,捡到萝卜时分值会增加。点击红点,停止程序。

 

06 优化萝卜的重复积木

虽然程序运行正常,可是观察当前萝卜的积木,你会发现很多重复的代码,“随机出现在舞台顶部”的积木出现了3次。

Scratch实例5|小白兔捡萝卜

 

我们可以使用“自定义积木”优化这些重复的代码。

Scratch实例5|小白兔捡萝卜

所以,最终萝卜的完整积木代码如下

Scratch实例5|小白兔捡萝卜

 

07 完工!运行程序

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

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

 

 

 附加练习
  • 给游戏增加音效。通常游戏中会有声音,比如兔子捡到萝卜的时候。

  • 如果同一时间允许多个萝卜从天而降,出现在舞台上,代码应该怎样修改

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