飞驰的高铁-第15届蓝桥杯第一次STEMA测评Scratch真题精选

2023-09-15 15:15:29

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第150讲。

飞驰的高铁,本题是2023年8月20日举行的第15届蓝桥杯STEMA测评Scratch编程中级组编程第2题,题目要求编程实现模拟高铁飞驰前进的效果。当按下数字1时,画面中的景色持续向左侧水平移动,再按下数字2,停止程序。

先来看看题目的要求吧。

一.题目说明

编程实现:

飞驰的高铁。

具体要求:

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

图片

2). 按下一次数字1按键之后,画面中的景色持续向左侧水平移动(参照程序演示视频);

3). 按下一次数字2按键之后,程序结束。

图片

评判标准:

  • 5分:满足"具体要求"中的1);

  • 25分:满足"具体要求"中的2);

  • 10分:满足"具体要求"中的3)。

二.思路分析

本题包含两个角色,分别是高铁和景色,如图所示:

图片

其中,景色角色的造型如下:

图片

本题考查的知识点是运动编程,具体来说是无限滚动效果。

什么是无限滚动呢,在Scratch中通常是指一个角色沿着某个方向移动,永不停止。其关键在于,该角色在运动方向上始终占满舞台,角色的长度好像是无限长一样。

如果你仔细观察作品效果的话,会发现高铁角色自始至终都是不动的,真正移动的是景色。景色从右至左无限滚动,看起来就好像是高铁一直向右运动,这就是物理学中的相对运动。

针对无限滚动,我们通常可以使用如下两种解决方案:

  • 复制方案

  • 克隆方案

为了方便描述,以本题的效果为例,分别介绍两种方案的实现思路。

复制方案的思路是:先确保一个景色角色(角色1)重复向左移动,当移动到舞台的最左边时,立刻回到舞台的最右边。然后再复制一个景色角色(角色2),只需要调整其初始位置,使其紧紧跟随在角色1的后面即可。

克隆方案的思路则是:景色的本体向左移动,当本体的最右侧即将露白(右侧即将离开舞台右边缘)时,立刻克隆一个景色,让其跟随在本体的后面向左移动。克隆体的最右侧即将露白时,再次克隆一个景色。同时需要注意,当本体到达舞台左边缘后需要隐藏起来,克隆体达到舞台左边缘后则需要删除,然后不停地重复此过程即可。

接下来,我们进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们分别使用两种方案来编写程序:

  • 复制方案

  • 克隆方案

1. 复制方案

我们可以分角色来编写代码。

1). 高铁角色

首先来编写高铁角色的程序,高铁角色需要设置好坐标和层次关系,这一步非常简单,代码如下:

图片

其次,运动是在按下数字1后才开始,按下数字2则结束程序。需要注意的是,这里的按键只需要按下1次,不需要反复按下,针对这种情况, 最好的方法是使用“等待条件”指令。

为了方便控制,可以将这部分代码写在高铁角色中,增加代码如下:

图片

代码比较简单,当按下数字1键后,发送了一个“开始”的广播消息,在按下数字2键后,直接停止全部脚本。

连续使用两个“等待条件“的好处还在于,可以精确控制按键的顺序,必须是先按1键让景色动起来,然后才能按2键停止运动。

2). 景色角色

绿旗点击时,景色是静止的,需要设置好其位置,注意要确保覆盖整个舞台,代码如下:

图片

当接收到“开始”广播后,重复执行向左移动,当移动到最左边时,立刻又回到舞台的最右边,代码如下:

图片

需要注意,不同的角色大小,到达舞台左边时的左边也不相同,角色越大,到达舞台最左边时的x坐标就越小,那怎么确定这个最小坐标呢?

超平老师告诉你一个小技巧,将上面代码中的如果部分先不写,执行代码,当角色停下来时的那个坐标就是最小坐标了,简单吧。

3). 复制角色

接下来,只需要再复制一个景色角色即可,如图:

图片

然后修改角色的起始x坐标即可,代码如下:

图片

温馨提示:很多同学喜欢一上来就复制景色,然后再分别写代码,这是可以的,但很显然效率不高,而且容易出错。最好的方式是先写好一个角色,然后再复制角色,此时,只需要修改一个地方即可,又快又好。


2. 克隆方案

对于克隆方案,高铁角色和复制方案的代码基本一样,可以先不动。重点在于景色景色,需要分两步来编写。

1). 景色本体

绿旗点击时,我们设置好景色本体的位置如下:

图片

注意,这里的x值为118,刚好是角色左边盖住舞台左边缘的位置,由于后续需要隐藏本体,所以必须使用”显示“指令,将其显示出来。

当按下数字1键,也就是接收到”开始“的广播消息后,本体开始向左移动,直到最左边隐藏起来。同时需要判断,当本体右侧即将露白时,需要克隆一个景色,代码如下:

图片

代码中的难点在于克隆的时机判断,这里使用的是”x坐标 = -122“,这里有两个关键点:

①. 由于只能克隆一个,所以不能使用 "<" 指令,否则就会克隆大量的景色;

②. 这里的-122和x坐标增加的值有关系,必须确保x坐标的值在变化过程中,能等于-122,所以不同的移动速度,其值也相应的有所不同,你需要自己计算并测试。

2). 景色克隆体

一旦生成了克隆体,就需要让克隆体从舞台的最右方开始向左移动,左移的逻辑和本体基本一致,代码如下:

图片

由于使用的是克隆体,一旦停止全部脚本,克隆体就会删除,会出现露白的效果,如下:

图片

所以,这里需要改变结束程序的方式,不能直接使用暴力的”停止全部脚本“了,而是改为广播消息,将高铁角色的角色修改如下:

图片

相应的,在景色角色中,添加代码如下:

图片

如此一来,既可以确保结束程序,又不会出现露白的尴尬场景,岂不妙哉。实际上,在平时的Scratch创作中,经常会出现这种情形,我们要学会使用广播结合”停止该角色的其他脚本“指令来实现,而不是直接使用”全部结束“指令暴力解决。

这样就可以实现无限滚动的效果了,你可以简单的理解为,一张景色图片从右向左移动直到舞台最左边缘(不是碰到舞台边缘,而是最右侧到达舞台最左边缘)消失,然后又出来一张景色图片重复这个过程,有点前赴后继的味道。

至此,整个作品就创作好了,赶紧乘坐我们的高铁,体验一下飞驰的感觉,欣赏一路的风景吧。

四.总结与思考

本题是中级组编程部分第2题,分数为40分,积木块数量30个左右,涉及到的知识点主要包括:

  • 运动编程,重点是坐标的灵活运用;

  • 循环编程,包括无限循环和条件循环;

  • 按键的判断和灵活处理;

  • 事件广播机制;

  • 克隆编程;

  • 停止脚本的不同方式及其区别;

这是中级组的第2题,题目难度中等,完成时间在15分钟左右,难点在于如何实现景色的无限滚动。

无限滚动是Scratch编程中常用的编程技巧,很多经典游戏中都运用了无限滚动,比如飞扬的小鸟、飞机大战和极速赛车等。

留给你一个小小的思考题,本作品中提到的两种方案,哪一种效果更好,为什么呢?

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要素材和源码的,可以移步至“超平的编程课”gzh,或者私信本人。

更多推荐

.NET超简单轻量级的HTTP请求组件Flurl

简介Flurl是一个用于构建基于HTTP请求的C#代码的库。它的主要目的是简化和优雅地处理网络请求(只用很少的代码完成请求)。Flurl提供了一种简单的方法来构建GET、POST、PUT等类型的请求,以及处理响应和异常。它还提供了一些高级功能,如链式调用、缓存请求结果、自动重定向等。本文将介绍Flurl的GET、POS

提升服务质量,群狼调研物业客户满意度调查来帮忙

在当今商业环境中,物业企业的持续发展离不开客户满意度调查这一重要环节。为何重视物业客户满意度调查?客户满意度是评估企业服务质量的重要指标,对于物业企业而言更是至关重要。通过调查客户的满意度,企业能够深入了解客户的需求和期望,发现问题所在,并做出相应的改进和调整,从而提升客户体验、增强客户忠诚度,进而促进企业的持续健康发

conan入门(二十七):因profile [env]字段废弃导致的boost/1.81.0 在aarch64-linux-gnu下交叉编译失败

今天在尝试用conan1.60.0使用aarch64-linux-gnu编译器交叉编译boost/1.81.0时报错了:conaninstallboost/1.81.0@-pr:haarch64-linux-gnu.jinja-pr:bdefault--buildboost输出如下:Configuration(prof

Hyper-V 虚拟机CentOS配置网络(三)

总目录https://preparedata.blog.csdn.net/article/details/132877836文章目录总目录一、创建交换机二、共享网络给交换机三、虚拟机配置交换机四、配置CentOS网络一、创建交换机二、共享网络给交换机打开物理宿主机的控制面板的网络链接中心,此时已经多了一个上一步配置好虚

通过Vue-cli搭建spa项目

🏅我是默,一个在CSDN分享笔记的博主。📚📚🌟在这里,我要推荐给大家我的专栏《Vue》。🎯🎯🚀无论你是编程小白,还是有一定基础的程序员,这个专栏都能满足你的需求。我会用最简单易懂的语言,带你走进Vue的世界,让你从零开始,一步步成为JAVA大师。🚀🏆🌈让我们在Vue的世界里畅游吧!🌈🎁如果感觉还

css前端面试题(三)

文章目录1、可继承属性和不可继承属性字体系列属性文本系列属性元素可见性列表布局属性光标属性2、link和@import的区别3、css优化4、CSS预处理器/后处理器是什么?为什么要使用它们?5、单行、多行文本溢出隐藏6、实现一个扇形7、实现一个自适应的正方形8、为什么现在的设备分辨率差异很大,2.5k屏幕都已经出现,

计算机网络 | I/O模型、网络模型(OSI七层及TCP/IP四层)

欢迎关注博主Mindtechnist或加入【LinuxC/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。I/O模型、网络模型I/O模型阻塞I/O非阻塞I/OI/

C—数据的储存(下)

文章目录前言🌟一、练习一下🌏1.例一🌏2.例二🌏3.例三🌏4.例四🌟二、浮点型在内存中的储存🌏1.浮点数🌏2.浮点数存储💫(1).二进制浮点数💫(2).浮点数的存储规定💫(3).浮点数的取出规定🌏3.例题😽总结前言👧个人主页:@小沈熬夜秃头中୧⍤⃝❅😚小编介绍:欢迎来到我的乱七八糟小星球�

计算机网络 | socket IPC(本地套接字domain)

欢迎关注博主Mindtechnist或加入【LinuxC/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。socketIPC(本地套接字domain)1.sock

[JavaScript游戏开发] 2D二维地图绘制、人物移动、障碍检测

系列文章目录第一章2D二维地图绘制、人物移动、障碍检测第二章跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示)第三章绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测第四章绘制Q版地图、键盘上下左右地图场景切换文章目录系列文章目录前言一、列计划1.1、目标1.2、步骤二、使用步骤2.1、准备素材(图片):草坪、人

认识 mysql 命令

文章目录1.简介2.选项3.子命令4.小结参考文献1.简介mysql是MySQL的命令行客户端,用于连接到MySQL服务器并执行SQL语句。它支持交互式和非交互式两种使用方式。以交互方式使用时,查询结果以ASCII表格式呈现。当以非交互方式使用时(例如,作为过滤器),结果以制表符分隔的格式显示。可以使用命令选项更改输出

热文推荐