这是Scratch蓝桥杯真题解析第115讲。蓝桥杯选拔赛现已更名为STEMA,即STEM 能力测试,是蓝桥杯大赛组委会与美国普林斯顿多文化教育研究中心合作推出的考试项目。STEM能力测试致力于综合评价学生的 STEM 水平,对学生的科技素养、逻辑思维和编程能力等三方面进行客观科学的测试。
云朵降雨,本题是2022年11月27日举行的第14届蓝桥杯STEMA考试Scratch图形化编程真题第4题,是初级组最后一题。题目要求编程模拟雨滴降落效果,使用鼠标控制云朵左右移动,雨滴从云朵下方开始加速下落,当雨滴溅落到地上后消失。
先来看看题目的要求吧。
一.题目说明
编程实现:
云朵降雨。
具体要求:
1). 运行程序,角色、背景如图所示;
2). 当鼠标向左移动时,云朵水平向左移动,当鼠标向右移动时,云朵水平向右移动;3). 同时云朵下方开始持续降雨(雨滴以加速方式下落);4). 雨滴落到舞台下边缘后出现雨滴溅落造型0.2秒后消失;
5). 重复持续2)、3)、4)步骤。评判标准:
- 3分:满足”具体要求”中的1);
- 5分:满足”具体要求”中的2);
- 6分:满足”具体要求”中的3);
- 7分:满足”具体要求”中的4);
- 4分:满足”具体要求”中的5)。
二.效果预览
在编程之前,先来看一下作品的完整效果吧:
三.思路分析
本题包含两个角色,分别是云朵和水滴,如图所示:
其中水滴角色有两个造型,一个是正常造型,一个是溅起的造型,如图:
云朵角色的功能比较简单,当按下←键时向左移动,当按下→键时向右移动。这里的重点是雨滴角色,它包括如下两个功能:
- 克隆雨滴
- 加速下落
其中,克隆比较简单,只需要控制好克隆的位置即可。难点是加速下落,平常我们在实现角色的运动时,都是以同样的速度移动,也就是所谓的匀速运动。
在匀速运动中,角色每次移动的距离是相同的,如果每次移动的距离不同,会出现什么情况呢?如果每次移动的距离增加一点,这就是加速运动,反之,如果每次移动的距离减少一点,就是减速运动。
所以,只需要使用变量表示速度,每移动一次,就将速度增加一点,这样就可以实现雨滴的加速下落效果。
接下来,我们进入具体的编程实现环节。
四.编程实现
根据题目描述和思路分析,我们分3步来编写程序:
- 云朵左右移动
- 克隆雨滴
- 雨滴加速下落并消失
1. 云朵左右移动点击绿旗时,云朵位于舞台上方中间位置,按下←键,云朵向左移动,按下→键,云朵向右移动,对应的编写代码如下:
关于按键的处理有两种方式:
- 使用”重复执行“ 指令+”按键”指令
- 使用“当按下xx键”指令
二者都可以实现相同的功能,不同的是前者在绿旗点击之后按键才有效,而后者则不受绿旗限制,任何时候只要按键都会执行相应代码,相对来说,更建议使用前者。
2. 克隆雨滴
克隆雨滴也比较简单,利用克隆体的继承特点,先将本体移到云朵的位置,然后再调整一下左右的位置,克隆即可,对应的代码如下:
为了控制克隆体的数量,每克隆一个雨滴,就等待一下,等待的时间可以是固定的,也可以是随机的。
3. 雨滴加速下落并消失
根据前面的思路分析,创建一个变量“下落速度”,将其初始化为0,然后重复执行向下移动,直到舞台下边缘,对应的代码如下:
简单说明两点:
1). 刚开始雨滴是正常造型,落地后换成溅起造型,等待0.2秒后消失;
2). 角色的下落,可以使用“面向方向” + “移动10步”指令, 也可以使用“将y坐标增加”指令,相对来说,对于垂直方向上的运动,使用后者更为简单;
至此,整个作品就创作好了,是时候看看云朵降雨的效果了。
五.总结与思考
本题是初/中级组编程部分第4题,分数为25分,积木块数量33个左右,涉及到的知识点主要包括:
- 克隆编程,尤其是克隆体的继承特点;
- 按键编程;
- 随机数指令;
- 变量的使用;
- 循环编程,包括无限循环和条件循环;
- 加速运动的编程实现。
本题难度一般,重点是如何实现角色的加速运动,这需要通过循环结合变量来实现。运动编程是Scratch的基础,本题涉及到了物理学科中的两种典型运动,即匀速运动和加速运动,云朵的左右移动属于匀速移动,雨滴的下落则属于加速运动。除此之外,你还会通过Scratch实现哪些形式的运动呢?
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香