友情提示:视频教程观看时请手动设置清晰度。
各位爸爸妈妈,本周我们正式进入《好听的故事》主题,第一个主题故事是《拔萝卜》,在熟悉了故事内容后,我们的小朋友开始围绕萝卜展开讨论,他们知道红萝卜、白萝卜和胡萝卜。他们想知道有没有绿萝卜?蓝萝卜?黑萝卜?萝卜是怎么长大的?萝卜除了吃还可以用来干什么?这些问题都是我们下周要讨论和实验的。所以请你们在周末两天带小朋友去一次菜场,好好认识一下各种各样的萝卜,再带一个最喜欢最特别的萝卜来幼儿园,参与下周的故事延伸活动哦!
谢谢合作,收到请回复
—— 幼儿园的短信
00 软件分析
需求说明:
编写一个游戏程序,从屏幕上方随机位置落下胡萝卜,小兔子在屏幕下方左右移动捡萝卜。当兔子碰到胡萝卜时,表示它捡到了一个萝卜,玩家的分值加1;没捡到,不加分。通过键盘上的方向键控制兔子左右移动。
需求分析:
-
需要两个角色,兔子和萝卜;
-
萝卜随机出现在舞台上方,即,y=180,x在-120~120之间任意值
-
萝卜从舞台上方,垂直匀速往下方移动,即,y从180变成-180
-
兔子在舞台下方,即,y恒定不变
-
方向键控制兔子左右移动
-
萝卜碰到兔子时,萝卜消失,变量“分值”+1。思考:为什么这里不说“兔子碰到萝卜时,萝卜消失”?
-
萝卜碰到舞台底部时,萝卜消失,分值不变
01 添加角色
Scratch角色库中并没有我们这次编程所需要的兔子和乌龟,所以,在本次编程中,我们使用电脑本地的角色造型文件创建角色。
我在网上找了些素材,放在云盘中供大家下载使用,使用方法如下:
假设你已经把造型文件下载好了。我们来演示添加兔子角色,并且把多余的默认小猫角色删除掉。
使用同样的方法添加胡萝卜角色。
02 调整角色的大小
将角色调整到合适的大小。
03 更换舞台背景
按照你自己的喜好,将默认的舞台背景替换成合适的背景图。
04 兔子的程序
兔子在整个程序中做了哪些事情?
根据需求分析可以知道,在这个程序中,兔子只是在“重复等待”着“键盘的点击,并据此左右移动”。
自问自答
那么,为什么没有“兔子碰到萝卜时,萝卜消失”的逻辑呢?
因为,如果按照这样的思路去做,当兔子碰到萝卜时,需要发送广播通知萝卜隐藏,这样做当然是可行的,但是,编码就变得相对复杂了。如果换一个思路,“萝卜碰到兔子时,萝卜消失”,那么逻辑和对应编码都在萝卜角色中,不再需要广播,编码也变得简单了。
所以,兔子的逻辑和编码比较简单。积木如下,不再解释。
05 萝卜的程序
胡萝卜在整个程序中做了哪些事情?
按照需求分析,得出:
- 萝卜随机出现在舞台顶部–> 向下移动–> 碰到底部消失
- 萝卜随机出现在舞台顶部–> 向下移动–> 碰到兔子消失–>加1分
- 消失–>后萝卜随机出现在舞台顶部
这些的流程画成图如下:
另外,需求没有明确同一时间是否允许舞台上出现多个萝卜,所以,我们这个程序按照同一时间舞台上只有一个萝卜来处理。
下面开始编码……
● 萝卜随机出现在舞台顶部
如果不理解为什么是正负120、180,请查阅之前的文章,关于舞台坐标系的内容。
● 向下移动
● 碰到舞台底部消失,并再次“随机出现在舞台顶部”
● 碰到兔子消失,并再次“随机出现在舞台顶部”
● 通过变量,保存分数
至此,编码就完成了。
试运行游戏,点击舞台右上角的绿色小旗,通过键盘上的方向键控制兔子,捡到萝卜时分值会增加。点击红点,停止程序。
06 优化萝卜的重复积木
虽然程序运行正常,可是观察当前萝卜的积木,你会发现很多重复的代码,“随机出现在舞台顶部”的积木出现了3次。
我们可以使用“自定义积木”优化这些重复的代码。
所以,最终萝卜的完整积木代码如下
07 完工!运行程序
至此,我们完成了“需求说明”中的全部内容。
点击舞台右上角的小旗子运行程序,看看效果吧。
-
给游戏增加音效。通常游戏中会有声音,比如兔子捡到萝卜的时候。
-
如果同一时间允许多个萝卜从天而降,出现在舞台上,代码应该怎样修改