[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第138讲。
放大镜,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组编程第3题,题目要求编程创作一个放大镜作品。当任意一个文字出现在放大镜中时, 字体变大,放大镜离开文字后字体恢复原来大小。
先来看看题目的要求吧。
一.题目说明
编程实现:
放大镜。
具体要求:
1). 点击绿旗,角色、背景如图所示(文字角色请自行创建,放大镜角色请自行调整);
2). 鼠标左键点击一次放大镜,放大镜持续跟随鼠标移动;
3). 当任意一个文字出现在放大镜中时, 字体变大,放大镜离开文字后字体恢复原来大小(字体放大后的效果参照下图所示)。
评判标准:
-
10分:满足"具体要求"中的1);
-
15分:满足"具体要求"中的2);
-
25分,满足"具体要求"中的3)。
二.思路分析
先来看看题目提供的素材,如图所示:
这里只有一个放大镜角色,再结合题目的描述,文字角色请自行创建,放大镜角色请自行调整。所以,蓝桥杯三个字需要分别创建,除此之外,还需要对放大镜进行调整,很多同学可能没有注意到这一点。
如果你仔细观察,会发现上图中的放大镜中间填充了蓝色,而题目描述中的放大镜中间是透明的,因此,需要擦除放大镜的蓝色填充部分。
本题的难点是如何检测文字出现放大镜中,第一个要排除的是碰撞检测,试想一下,如果文字碰到镜柄了,总不能将文字放大吧。
常见的解决方案有两个,第一种方案是增加一个辅助角色,放到镜框的中间,将其虚像设置为100,然后跟随放大镜移动,此时,我们只需要检测文字是否碰到辅助角色。
第二种解决方案是调整放大镜的造型中心,将将框中心点作为放大镜的造型中心,然后使用”到角色的距离“指令检测,如图:
当文字到放大镜的距离小于某个值(比如30),就将文字变大。
很显然,第二种方案更为简单,也是超平老师推荐的方案,接下来,我们进入具体的编程实现环节。
三.编程实现
根据题目描述和思路分析,我们分3步来编写程序:
-
角色准备
-
放大镜跟随鼠标移动
-
文字放大效果
1. 角色准备
首先是调整放大镜角色,主要有两点,一是擦除镜框中间的蓝色,二是调整造型中心,调整后的效果如图所示:
需要注意的是,在使用橡皮擦的时候,可以将橡皮擦的大小设置为100,这样每次擦除的面积会更大一些。
然后再分别创建”蓝“、”桥“、”杯“三个文字角色,如图所示:
2. 放大镜跟随鼠标移动
绿旗点击时,放大镜位于舞台右下角,在被点击后,跟随鼠标移动,切换到放大镜角色,编写代码如下:
代码比较简单,强调一点,在Scratch中,对于只需要判断一次的场景,使用等待条件指令是最简单的方法。
3. 文字放大效果
对于文字而言,只需要检测它和放大镜之间的距离,并改变角色的大小,以”蓝“字角色为例,编写代码如下:
其它两个文字角色的代码基本一样,只是坐标不同,这里就不再列出了。
至此,小猫踩球作品就创作好了,简单吧。
四.总结与思考
本题是中级组编程部分第3题,分数为50分,积木块数量32个左右,涉及到的知识点主要包括:
-
绘制角色及修改造型;
-
检测两个角色之间的距离;
-
等待条件指令的妙用;
-
设置角色大小;
这是中级组的第3题,难度一般,完成时间10分钟左右。虽然代码不多,但是很多同学忽略了两个细节,一是没有去掉放大镜中的蓝色填充部分,二是直接使用角色碰撞来检测文字是否在镜框中。
这就要求考生在比赛过程中,认真阅读题目要求,仔细分析问题,养成良好的考试习惯,一旦你做到这些,肯定能在众多学生中脱颖而出的。
最后给你留一个小小的思考题,在检测文字到放大镜的距离时,这个距离是怎么计算的呢,你知道吗?
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
需要素材和源码的,可以移步至“超平的编程课”gzh,或者私信本人。