当前位置: 首页 > news >正文

飞翔的小猫-第12届蓝桥杯Scratch省赛2真题第2题

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

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

飞翔的小猫,本题是第12届蓝桥杯Scratch第一次省赛真题中级组编程第2题。题目要求考生编程实现飞翔的小猫效果,舞台背景和树木向左侧移动,看起来就像小猫在树林中飞行穿梭一般。

先来看看题目的要求吧。

一.题目说明

编程实现:

飞翔的小猫。

具体要求:

1). 点击绿旗,小猫出现在舞台的中心区域;

2). 舞台背景向左侧移动,同时树木也向左侧移动;

3). 使用克隆的方式在舞台上时刻呈现不少于两棵树木;

4). 树木在移动时可以遮挡住小猫。

评判标准:

  • 5 分 :满足要求 1);

  • 20 分 :满足要求 2);

  • 15 分 :满足要求 3);

  • 10 分 :满足要求 4)。 

二.思路分析

本作品一共有4个角色,分别是小猫、树木、背景1和背景2,如图所示:

其中,小猫角色最为简单,它始终处于舞台中间位置,一动不动。树木角色每隔一定时间,从舞台右方出现,然后向左移动,直到舞台最左边消失,这个可以通过克隆结合运动编程来实现。

本题的重点是背景无限滚动效果,由于Scratch中的舞台背景本身是不能移动的,所以,我们只能使用角色的方式来充当背景。

这里的背景1角色大小和舞台大小一样,将它的位置设置为(0,0)刚好覆盖舞台区域。一旦向左移动,舞台右侧区域就会露出白色背景,因此,我们需要再复制一个背景角色,即这里的背景2角色,并让角色2始终跟随在角色1的右边,一起向左运动。

如果背景1或背景2到达舞台最左边,则立刻回到舞台最右边,周而复始,重复这个过程,就可以实现背景的无限滚动效果。

一旦实现了背景无限滚动效果,根据相对运动原理,看起来就好像是小猫在向前飞翔。

那什么是相对运动呢?

这是一个物理学概念,它指的是物体相对于其他运动的位置变化。比如:

这里的火箭的位置并没有变化,但是星星和其它天体向左下运动,我们可以说火箭相对于星星是向右上运动的。

一栋楼房或一棵树对地球来说,它们是静止的;但对太阳来说,它们却都在运动着。宇宙中没有不动的物体,一切物体都在不停地运动,运动是绝对的,静止是相对的。

所以,在描述物体是否运动时,观察者必须选择一个参照物,然后根据所选定的参照物来确定物体是否运动。

三.编程实现

根据题目描述及思路分析,我们可以按角色逐个编写程序:

  • 小猫角色

  • 树木角色

  • 背景角色

1). 小猫角色

小猫角色最为简单,只需要设置好其位置即可,代码如下所示:

2). 树木角色

题目明确说明要使用克隆的方式在舞台上时刻呈现不少于两棵树木,毫无疑问需要使用克隆,关键是如何确保任意时刻在舞台上不少于两棵树木。

这取决于两个因素,一是树木移动的速度,二是克隆树木的频率,即隔多长时间克隆树木。因此,我们需要先克隆出树木,设置好速度之后,再来调整速度和间隔时间。

切换到树木角色,编写代码如下:

在上面的代码中,我们将克隆树木的间隔设置为在1.5和2.0之间取随机数,是为了让树木出现的间隔时间具备随机性,从而获得更好的效果。

2). 树木角色背景1和背景2

根据前面的思路分析,背景1和背景2的效果完全一样,唯一不同的是初始位置。我们先来实现背景1角色的代码,首先将角色的初始位置设为(0,0),让背景1刚好覆盖舞台区域,然后重复执行向左运动,当到达舞台最左边时,将其移到舞台最右边,代码如下:

简要说明三点:

这里的“将x坐标增加-5”和树木的速度完全一样,这样可以让相对运动的效果看起来更加逼真。

②. 在scratch中,角色的大小不同,到达舞台最左侧的位置也会不同,让角色重复向左移动,当角色坐标不再变化时,这个值就是临界点。对于大小为480x360的背景1角色来说,这个临界点是-465,所以我们的判断条件是“x坐标 < -464”。有的同学喜欢使用“x坐标 = -465”,这个也可以,但一般不推荐,使用小于的方法更安全,更符合逻辑。

③. 当角色到达最左边时,立刻将它移到舞台的最右边,这里使用的是“将x坐标设为480”,这是一种简单的写法。你也可以设置为465,在Scratch中,任何角色都不能脱离舞台范围,它总会留一条小尾巴在舞台上,所以,即使我们设置为480,角色的实际位置也会自动变为465。

背景2角色和背景1角色代码基本相同,将背景1角色的代码复制一份,修改其初始位置即可, 角色2的初始位置坐标是(480,0),代码如图所示:

这就是背景无限滚动效果的实现方式,在Scratch游戏编程中,会大量使用这种技巧,是每一个Scratch爱好者都必须掌握的编程技能。

四.总结与思考

本题难度一般,积木块数量在35个左右,分值为50,涉及到的知识点主要包括:

  • Scratch克隆,包括克隆三指令的使用;

  • 运动编程,通常使用循环来不停地改变坐标,重点是临界点的判断;

  • 舞台背景的特点,及使用角色来模拟背景的实现;

  • 相对运动的概念及应用;

  • 背景无限滚动的原理及实现。 

本题中,为了实现小猫不停向前飞翔的效果,我们应用了物理学中的相对运动知识,这也是为什么说编程是最好的STEM教育。一个看似不起眼的作品中,常常会涉及到数学、物理、科学等学科知识。

本题的背景无限滚动效果是基于水平方向上的运动,相应的,我们还可以编程实现垂直方向上的背景无限滚动,你会了吗,赶紧尝试一下吧。

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

相关文章:

  • 基于粒子群算法的移动机器人路径规划
  • C# 连接 MySQL 数据库
  • 计算机网络物理层
  • 朋友问我,斗破苍穹中到底出现了多少次“恐怖如斯”?
  • 计算机毕业设计SSM选题推荐 企业培训管理系统 艺术类培训中心管理系统 企业销售人员培训系统
  • 31、JAVA进阶——XML知识
  • 盘点5个C#实用的Word、PPT、Excel、Mail第三方库
  • stm32学习——DMA
  • Python课程设计基于卷积神经网络的手写数字识别系统源码
  • web前端网页设计作业—个人网页(游戏主题)(html+css+js)
  • 智能车逆透视、去畸变教程(含上位机、源码)
  • 拓展班上机课题解22/10/14
  • Matlab论文插图绘制模板第56期—曲面图(Surf)
  • LQ0091 完全二叉树的权值【最值】
  • 量子笔记:张量、外积、张量积
  • 10个确保微服务与容器安全的最佳实践
  • angular学习第一篇-----环境搭建
  • Django 博客开发教程 16 - 统计文章阅读量
  • Git同步原始仓库到Fork仓库中
  • Go 语言编译器的 //go: 详解
  • HashMap剖析之内部结构
  • idea + plantuml 画流程图
  • log4j2输出到kafka
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • react-native 安卓真机环境搭建
  • Solarized Scheme
  • SpiderData 2019年2月23日 DApp数据排行榜
  • storm drpc实例
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue-router的history模式发布配置
  • 成为一名优秀的Developer的书单
  • 构造函数(constructor)与原型链(prototype)关系
  • 官方解决所有 npm 全局安装权限问题
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何设计一个微型分布式架构?
  • 如何胜任知名企业的商业数据分析师?
  • 删除表内多余的重复数据
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 移动端唤起键盘时取消position:fixed定位
  • 用jquery写贪吃蛇
  • 正则与JS中的正则
  • 【云吞铺子】性能抖动剖析(二)
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​Spring Boot 分片上传文件
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (+4)2.2UML建模图
  • (1)常见O(n^2)排序算法解析
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (poj1.2.1)1970(筛选法模拟)
  • (poj1.3.2)1791(构造法模拟)
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (转)菜鸟学数据库(三)——存储过程
  • (转)拼包函数及网络封包的异常处理(含代码)