水中倒影-第13届蓝桥杯Scratch省赛真题第4题

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第32讲。

第13届蓝桥杯青少年组省赛分两次进行,这是2022年4月23日举行的第二次省赛考试,形式为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

水中倒影,本题是第13届蓝桥杯Scratch第二次省赛真题编程第4题,初级组和中级组都有此题,题目要求考生使用画笔绘制出小猫在水中的倒影效果。

先来看看题目的要求吧。

一.题目说明

编程实现:

水中倒影。

具体要求:

1). 点击绿旗,角色、背景如图所示;

2). 等待1秒后,画出小猫倒影(使用画笔,且能看到绘制过程)。

评分标准:

  • 10分:满足“具体要求”中的1);

  • 40分:满足“具体要求”中的2)。

二.思路分析

本题和第11届蓝桥杯Scratch国赛真题的第6题《3D打印小猫》是同类型题目,即模拟3D打印效果,绘制出小猫的倒影。

只要理解了3D打印原理,解决思路其实挺简单的,就是模拟扫描过程,逐行扫描小猫,记录下各个有效打印点的坐标,然后在小猫的下方使用Scratch画笔逐行绘制出对应的坐标点,这些坐标点就构成了小猫倒影。

三.编程实现

根据上面的思路分析,我们分两步来进行编程:

  • 模拟扫描过程

  • 逐层绘制小猫倒影

1). 模拟扫描过程

为了模拟扫描过程,我们创建了一个扫描点角色,如图所示:

注意,为了确保倒影效果,扫描点要尽量小一点,通常就是1个像素大小,1个像素就等于Scratch中的1步。

扫描过程是这样的:先将扫描点移到小猫左上方,然后自左至右进行第一行逐点扫描,第一行扫描完毕,接着又回到左边开始位置,同时y坐标下移一步,继续第二行逐点扫描,重复至整个小猫扫描完毕。

所谓逐点扫描,就是一次移动1步,检测是否碰到小猫了,如果碰到小猫,说明这是一个有效打印点,可以使用变量将其坐标记录下来,然后发送“打印”广播,让画笔角色完成打印工作。

切换到扫描点角色,编写代码如下:

注意:这里使用“将虚像特效设定为100”指令的目的是不让扫描点角色在舞台上显示出来,有的同学会想,用“隐藏”指令不是更简单么。

两个指令都可以让角色隐藏起来,但是使用隐藏指令后,就无法使用“碰到角色”指令来检测是否碰到小猫了,而使用虚像特效指令则不存在这个问题,这是很多Scratch游戏开发中都会用到的一个编程小技巧。

2). 逐层绘制小猫倒影

根据扫描点角色扫描得到的有效打印点,我们就可以在小猫下方绘制出相应的点,切换到pencil角色,编写代码如下:

代码很简单,对于倒影点来说,x坐标是相同的,关键点在于y坐标的确定,它是以水面作为对称轴的,水面处的y坐标是-66,所以这里的y坐标应该是”-132 - 打印点y“。当然,如果你不熟悉对称轴坐标的计算,你也可以通过多次尝试找到倒影点y的坐标。

点击绿旗,运行程序,就可以绘制出小猫的倒影了,只不过,这个过程有点慢,你可以使用加速模式,快速画出倒影效果。

四.总结与思考

本题的总代码量为为25个积木块左右,难度系数为4,分值为50,涉及到的知识点主要包括:

  • 嵌套循环的使用;

  • 绘制角色,这里的扫描点角色需要自行绘制;

  • 变量的使用,通过变量来记录打印点坐标;

  • 事件广播机制,包括广播指令和接收广播指令;

  • 虚像指令的作用和特点;

  • Scratch画笔的使用。

对于本题而言,如果熟悉3D打印原理和过程,或者做过类似的题目,编写代码也就5分钟左右的时间,反之,你可能会一筹莫展,望洋兴叹了。

正所谓见多才能识广,对于考生而言,需要通过平时的知识积累和练习,不断地提升自己。

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

有需要素材和源码的,可以联系本人。 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯scratch赛真是指蓝桥杯编程大赛中使用Scratch编程语言进行的级比赛的问。具体的目会根据每年的比赛而有所不同,以下是一个例子: 目要求创建一个游戏,模拟猴子爬楼梯的场景。猴子每次可以爬1到3级的楼梯,目标是爬到楼梯的最顶层。玩家可以通过按键来让猴子爬楼梯,同时需要显示猴子当前所在的楼梯层数以及已经爬过的楼梯数量。 首先,我们需要使用Scratch中的精灵功能来创建一个猴子的角色,可以自定义猴子的造型和动作。接下来,我们需要创建一个楼梯场景,可以使用Scratch中的背景功能来绘制楼梯。可以使用简单的图形表示楼梯,比如长方形。 之后,我们需要添加按键事件,让玩家输入按键来控制猴子的爬楼梯动作。可以使用Scratch中的事件功能来实现按键事件的触发。当玩家按下某个按键时,猴子开始向上爬楼梯。可以使用Scratch中的运动功能来控制猴子的位置,让其向上移动相应的楼梯层数。 同时,我们需要计算猴子当前所在的楼梯层数和已经爬过的楼梯数量。可以使用Scratch中的变量功能来记录这些信息。当猴子爬上一级楼梯时,楼梯层数加一,已经爬过的楼梯数量也加一。可以使用Scratch中的运算功能来实现变量的加法操作。 最后,我们需要添加判断条件,当猴子爬到楼梯的最顶层时游戏结束。可以使用Scratch中的控制功能来实现判断条件。当猴子的位置达到最顶层时,显示游戏结束的提示信息,并停止猴子的爬楼梯动作。 通过以上步骤,我们可以完成蓝桥杯scratch赛真中的猴子爬楼梯游戏。这个例子中只是其中的一个目,实际比赛中的问会更加复杂和多样化。但无论目怎样,我们都可以通过使用Scratch的各种功能和编程思维,去解决这些问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值