[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第34讲。
第13届蓝桥杯青少年组省赛分两次进行,这是2022年4月23日举行的第二次省赛考试,形式为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
帆船运动,本题是第13届蓝桥杯Scratch第二次省赛真题编程第2题,初级组和中级组都有此题,题目要求考生编程实现帆船运动,模拟帆船在海上上下左右移动的效果。
先来看看题目的要求吧。
一.题目说明
编程实现:
帆船运动。
具体要求:
1). 点击绿旗,角色、背景如图所示;
![图片[1]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-308.png)
2). 按下键盘的上键,帆船向上移动,松开上键帆船停止移动(不能移出水面);
![图片[2]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-309-1024x796.png)
3). 按下键盘的下键,帆船向下移动,松开下键帆船停止移动(不能移出水面);
![图片[3]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-310.png)
4). 按下键盘的左键,帆船向左移动,松开左键帆船停止移动(不能移出舞台);
![图片[4]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-311.png)
5). 按下键盘的右键,帆船向右移动,松开右键帆船停止移动(不能移出舞台)。
![图片[5]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-312.png)
评分标准:
- 2分:满足“具体要求”中的1);
- 12分:满足“具体要求”中的2);
- 12分:满足“具体要求”中的3);
- 12分:满足“具体要求”中的4);
- 12分:满足“具体要求”中的5)。
二.效果预览
在编程之前,先来看看作品的完整效果吧:
三.思路分析
本题只有1个角色,就是帆船,如图所示:
![图片[6]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-313-892x1024.png)
功能相对也比较单一,就是在按上下左右键方向的时候让帆船向对应的方向移动。针对按键处理,一般有两种方式:
1). 使用事件指令”当按下xx键“
2). 使用”如果…那么“ + ”按下xx键“组合指令
那它们有什么区别呢?区别就在于前者不需要点击绿旗,按下方向键就可以启动程序,让帆船动起来,这是事件指令的特点,后者则需要点击绿旗才能启动程序。本题没有明确的要求,使用两种方式都是可以的。
另外需要注意的是,帆船移动的范围是有限制的,上下移动时,不能移出水面,左右移动时,不要移出舞台。换句话说,这是有条件的移动,可以增加一个”如果…那么“指令,在满足条件时才移动。
四.编程实现
根据上面的思路分析,我们采用两种方式来实现作品:
- 使用”当按下xx键”指令
- 使用“如果…那么”+“按下xx键”组合指令
1). 方式1-使用“当按下xx键”指令
当绿旗被点击时,设置好帆船角色的位置和方向,并设置旋转方式为左右翻转,如图所示:
![图片[7]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-314.png)
其中,“将旋转方式设为左右翻转”是确保在改变帆船方向的时候,只能设置为向左或向右,即-90度和90度方向。
当按↑方向键的时候,帆船向上移动,但不能移出水面,而水面所在位置的y坐标是40,我们可以这么理解,当按↑方向键时,如果y < 40,就可以上移,其代码如下:
![图片[8]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-315.png)
对应的,其它3个方向也需要做相似的处理,其代码如下:
![图片[9]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-316-408x1024.png)
2). 方式2-使用组合指令
接下来,我们使用组合指令来创作本作品,也就是使用控制模块中的“如果…那么”指令+侦测模块中的“按下xx键”指令。
以上移为例,帆船要上移的条件有两个,一是按下了↑方向键,二是帆船的y坐标<40,所以,我们需要使用一个逻辑与指令,将两个条件组合成一个条件,其它3个方向也需要做相应的处理,其代码如图所示:
![图片[10]-scratch帆船运动_第13届蓝桥杯省赛教程-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/02/image-317-562x1024.png)
这里对“如果…那么…否则”指令做了嵌套处理,是为了确保在任意时刻,帆船只能朝一个方向运动,这就避免了用户同时按下两个方向键的异常情况。
五.总结与思考
本题相对比较简单,代码量在30个积木块左右,难度系数为2,分值为50,涉及到的知识点主要包括:
- 按键事件编程,可以采取两种方式;
- 运动编程;
- 条件判断;
- 运算符指令,包括比较运算符和逻辑与运算符;
- 角色方向的设置。
这是一道简单的编程题,我在这里给出了两种不同的实现方式,二者各有优劣。你更喜欢哪一种方式呢,为什么?
需要素材和源代码的,可以转到这里,帆船运动-2022.4.23蓝桥杯省赛第2题。
暂无评论内容