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

news2024/12/23 19:30:07

[导读]:超平老师的《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,或者私信本人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节、京东等大厂年薪50w的测试都什么水平?

各位做测试的朋友&#xff0c;但凡经历过几次面试&#xff0c;那么你一定曾被问到过以下问题&#xff1a; 1、在Linux环境下&#xff0c;怎么执行web自动化测试&#xff1f; 2、Shell如何&#xff0c;Docker熟悉吗&#xff1f; 3、全链路的压测实操过吗&#xff0c;如何推进与开…

hexo搭建一个自己的博客

hexo腾讯云服务器搭建一个自己的博客 我的博客: http://www.elcarimqaq.top/ 前期准备 node.js&#xff1a; https://nodejs.org/en/ git&#xff1a;https://git-scm.com/download/win hexo官方文档&#xff1a;https://hexo.io/zh-cn/docs/index.html 安装hexo npm ins…

“存量竞争” 体验为王,火山引擎边缘云助力内容社区破局

今年4月&#xff0c;在宣布要技术升级、数据重构后&#xff0c;承载无数人青春的天涯社区疑似关停&#xff0c;一代传奇的衰落为所有内容社区释放出了不可忽视的信号。 图片来源&#xff1a;天涯官博 回顾天涯社区发展史&#xff0c;从“周公子大战易烨卿”、天涯十大诡异事件&…

“批量文件改名:将日语文件名翻译成中文,轻松管理你的文件!

如果你经常处理各种文件&#xff0c;可能有时候会遇到一些以日语命名的文件。这时候&#xff0c;为了更好地管理和查找文件&#xff0c;你可能需要将这些日语文件名翻译成中文。那么&#xff0c;如何实现批量将日语文件名翻译成中文呢&#xff1f; 首先&#xff0c;第一步进入…

对抗生成网络总结

对一些基本的对抗生成网络的总结。部分内容整理自Teeyohuang’s blog 文章目录 GAN (NeurIPS, 2014)CGANDCGANStackGANPix2Pix (CVPR, 2017)CycleGAN (ICCV, 2017)SRGAN (CVPR, 2017)StyleGAN (CVPR, 2019) GAN (NeurIPS, 2014) Generative adversarial nets m i n G m a x D …

有关‘全局唯一id‘

UUID和Snowflake的对比 当需保证全局唯一的id&#xff0c;可以选用UUID或Snowflake(及其变种) 其中UUID 不依赖于任何第三方系统&#xff0c;性能和可用性上较好&#xff1b; Snowflake生成的id具有单调递增性&#xff08;可以拿到生成时的时间戳信息&#xff09;&#xff0c;能…

深入了解MySQL中的JSON_ARRAYAGG和JSON_OBJECT函数

在MySQL数据库中&#xff0c;JSON格式的数据处理已经变得越来越常见。JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它可以用来存储和表示结构化的数据。MySQL提供了一些功能强大的JSON函数&#xff0c;其中两个关键的函数是…

HTML中name和class,id的区别和联系

在HTML中&#xff0c;name、class和id是用于标识和选择元素的属性。 区别&#xff1a; name属性&#xff1a;用于标识表单元素&#xff0c;特别是在提交表单时&#xff0c;用于识别表单数据。name属性可以在同一表单中的多个元素中重复使用。class属性&#xff1a;用于为一个…

品牌出海推广策略:海外网红营销和TikTok挑战赛的完美结合

随着全球化的深入&#xff0c;越来越多的品牌意识到在海外市场的存在至关重要。然而&#xff0c;进入国际市场并建立品牌知名度是一项复杂的任务&#xff0c;需要创新和多样化的策略。在这个数字化时代&#xff0c;品牌出海推广策略的一个令人兴奋的新趋势是将海外网红营销与Ti…

前端JavaScript Error 类: 异常处理与错误管理

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 引言 1. Error 类简介 2. Error 类属性 3. Error 类的 API 4. Error 类的应用场景 5. 自定义错误类型 6. 注意…

如何在微软Edge浏览器上一键观看高清视频?

编者按&#xff1a;视频是当下最流行的媒体形式之一。但由于视频压缩、网络不稳定等原因&#xff0c;我们常常可以看到互联网上的很多视频其画面质量并不理想&#xff0c;尤其是在浏览器端&#xff0c;这极大地影响了观看体验。不过&#xff0c;近期微软 Edge 浏览器推出了一项…

万字长文总结检索增强 LLM

连接&#xff1a;https://zhuanlan.zhihu.com/p/655272123 ChatGPT 的出现&#xff0c;让我们看到了大语言模型 ( Large Language Model, LLM ) 在语言和代码理解、人类指令遵循、基本推理等多方面的能力&#xff0c;但幻觉问题 Hallucinations[1] 仍然是当前大语言模型面临的一…

【初阶数据结构】树结构与二叉树的基础概念

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;今天带来数据结构里的重点内容也是在笔试&#xff0c;面试中的常见考点——树与二叉树&#xff0c;其中二叉树又分为很多种&#xff0c;我们先来讲讲基础的内容带大家…

Notion+Zotero+Notero 联动教程(23年9月更新版)

准备 下载Zotero at https://www.zotero.org/ 下载Zotero Connector at https://www.zotero.org/download/connectors 下载Notion at https://www.notion.so/desktop 下载Notero at https://github.com/dvanoni/notero/releases 关系说明 Notion中的 database 与 Zotero 链接…

parse:uParse修复​​版,优化表格,css等,html富文本加载

https://ext.dcloud.net.cn/plugin?id364 自己搞微信小程序遇到的&#xff0c;uniapp 搞得 后台textarea富文本便捷器 录入的客户端显示&#xff0c;试了好几种都不行&#xff0c;尤其是表格图片排版的。

C++使用Boost库加入UDP组播时程序崩溃

程序崩溃情况 本程序运行在Oracle VM VirtualBox虚拟的Ubuntu20.04上 terminate called after throwing an instance of ‘boost::wrapexceptboost::system::system_error’ what(): set_option: No such device 已放弃 (核心已转储) ** C使用Boost库加入组播的代码 #inclu…

计算机视觉的应用15-图片旋转验证码的角度计算模型的应用,解决旋转图片矫正问题

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用15-图片旋转验证码的角度计算模型的应用&#xff0c;解决旋转图片矫正问题&#xff0c;在CV领域&#xff0c;图片旋转验证码的角度计算模型被广泛应用于解决旋转图片矫正问题&#xff0c;有效解决机…

腾讯mini项目-【指标监控服务重构】2023-07-20

今日已办 Trace otelzap &#xff1a;opentelemetry-go-extra/otelzap at main uptrace/opentelemetry-go-extra (github.com) go get github.com/uptrace/opentelemetry-go-extra/otelzap声明 Tracer &#xff0c;一个应用创建一个 Tracer &#xff08;需要从venus中来传来…

OGAI详解:AIStation调度平台如何实现大模型高效长时间持续训练

大模型是当前通用人工智能产业发展创新的核心技术&#xff0c;目前国内已发布的生成式AI模型超过了100个。面向以大模型为核心的生成式AI开发与应用场景&#xff0c;近日浪潮信息发布了大模型智算软件栈OGAI&#xff08;Open GenAI Infra&#xff09;——“元脑生智”&#xff…

【最新面试问题记录持续更新,java,kotlin,android,flutter】

最近找工作&#xff0c;复习了下java相关的知识。发现已经对很多概念模糊了。记录一下。部分是往年面试题重新整理&#xff0c;部分是自己面试遇到的问题。持续更新中~ 目录 java相关1. 面向对象设计原则2. 面向对象的特征是什么3. 重载和重写4. 基本数据类型5. 装箱和拆箱6. …