【Scratch真题解析】2019-9-7 Scratch等级考试二级考试真题37题蝙蝠冲关躲避障碍

题目:2019-9-7Scratch二级考试编程题

37题:制作蝙蝠冲关游戏

  • 准备工作
  1. 导入蝙蝠角色、分别绘制障碍物、大地角色
  • 功能实现
  1. 需要达到的效果:通过键盘上的空格键控制蝙蝠往上飞,当碰到障碍物或者大地时,游戏结束,否则得分
  2. 蝙蝠角色:当点击绿旗,蝙蝠自上往下飞,当按下空格键,蝙蝠往上飞,当碰到障碍物或大地时,停止全部
  3. 障碍物角色:障碍物不断自左向右移动,障碍物达到最右端后,又回到最开始的位置,向右运动,重复这个过程
  4. 大地角色:移至最上层

案例分析:

  • 这道题呢是2019年9月7日中国电子学会第四期青少年软件编程等级考试scratch二级考试的真题
  • 题目本身有一点点难度,有多个角色,每个角色有自己的动作实现;
  • 小朋友认真审题,看清楚题目的功能实现其实发现并不会很难,主要是控制蝙蝠躲避障碍,同时尽量不要让蝙蝠落在地上
  • 角色分析:蝙蝠、障碍物、大地
  • 背景分析:白色背景
  • 当启动程序之后,蝙蝠自上往下飞,按空格键后,蝙蝠会往上飞,碰到障碍物或者大地,停止全部程序,否则得分一直往上加;同时障碍物从左往右移动,到达最右边的时候又返回起始位置从新开始向右移动,大地模块移至最上层。

流程分析

  • 通过题目,我们可以分析到蝙蝠有多个程序并列执行;有一个程序启动的开始程序块,还有一个按下空格键的程序块,为了实现蝙蝠飞行逼真效果,还可以增加一个造型切换模块
  • 蝙蝠1:开始→初始位置→初始化得分变量→飞行【减少角色Y坐标值→判断是否碰到障碍物或者大地 是(停止全部脚本)→得分增加→时间戳】
  • 蝙蝠2:当按下空格键→角色Y坐标值增加
  • 蝙蝠3:开始→初始造型→造型切换【时间戳→下一个造型】
  • 障碍物:开始→初始位置→向右移动【移动步数→判断是否到达最右边 是(返回初始位置)→时间戳】
  • 大地:开始→移到最前面

用到的指令模块


运动模块

  • :角色移动指定的步数
  • :角色的X坐标值,通过这个来控制障碍物是否到达最右边
  • :将角色Y坐标增加指定的值
  • :角色移到舞台中指定的坐标位置(X,Y)

外观模块

  • :将角色的造型换成指定的造型
  • :切换角色造型为下一个造型,如果是最后一个造型就会从新回到第一个造型
  • :将角色移到最前面,下拉三角还可以选择最后面

事件模块

  • :当小绿旗被点击时表示程序启动,该执行后面的指令了
  • :当按下键盘上某个具体的键时,执行后面的程序指令

控制模块:

  • :时间间隔,等待指定的时间后执行后面的指令
  • :一直重复执行模块里面的指令
  • :条件判断模块,如果条件返回值为真(bool值),执行那么模块里面的程序,如果条件不成立,返回值为假,执行条件判断模块后面的程序指令

侦测模块:

  • :检测是否碰到指定的颜色,如果是返回bool值(真),否则返回bool值(假)

运算模块:

  • :逻辑或运算,两个条件,只要满足一个条件为真,则整个逻辑运算返回bool值(真),只有两个条件都为假的情况,逻辑运算才返回bool值(假)

变量模块:

  • :建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色
  • 本题目当中有一个得分环节,所以我们需要建立一个得分变量(可以选择适用于所有角色,也可以选择只适用于当前角色,如果选择适用于当期角色,则计分环节需要在蝙蝠的程序里面进行实现)

角色背景设置

蝙蝠角色:

  • 删除默认的猫咪角色,然后从背景库中选择蝙蝠角色(Bat)
  • 同时切换到造型页面,只保留bat-a和bat-b造型,如下图所示
  • 同时在角色的属性面板页面可以将角色的大小调整到适当的大小,如下图所示

障碍物角色

  • 新建一个角色,在造型界面通过直线画笔工具画出障碍物的形状,然后通过填充工具填充相应的颜色,如下图所示

大地角色

  • 和障碍物角色一样,也是新建一个角色,在造型界面通过直线画笔工具画出障碍物的形状,然后通过填充工具填充相应的颜色(和障碍物角色的颜色不一样即可),如下图所示

完整的角色和背景

  • 最后所有角色和背景设置完如下图所示:

程序指令编写

蝙蝠1:

  1. 程序启动,执行后续指令模块
  2. 将蝙蝠移到舞台的正上方具体位置为(X=0,Y=180)
  3. 将添加的得分变量初始化清零
  4. 模拟蝙蝠飞行 循环执行5-9指令模块
  5. 实现蝙蝠从上往下飞,将Y坐标值增加负值即可,具体数值小朋友们可以自己定,但是不能太快也不能太慢
  6. 通过颜色检测来判断是否碰到障碍物和大地(障碍物和大地用不同颜色进行标识),如果返回条件值为真,则执行7号程序块,否则执行8及后面的程序块
  7. 停止全部脚本(也就是蝙蝠飞行过程中有可能碰到了障碍物或者大地)
  8. 将得分加1
  9. 时间戳,为了便于观看以及计分

蝙蝠2

  1. 当按下键盘上的空格键执行后面的程序指令
  2. 实现蝙蝠往上飞,也就是将蝙蝠的Y坐标增加,这里特别要强调的是,增加的这个值一定要大于蝙蝠自上往下飞的那个值

蝙蝠3

  1. 程序启动,执行后续指令模块
  2. 将蝙蝠的造型换成指定的造型
  3. 实现飞行过程中视觉效果比较逼真,翅膀飞行的效果,一直重复执行4-5程序指令模块
  4. 时间戳,造型切换的时间间隔,当然这个小朋友们也可以自己设定,不要太慢或者太快即可
  5. 切换到下一个造型,如果已经是角色的最后一个造型,则会返回第一个造型

障碍物

  1. 程序启动,执行后续指令模块
  2. 将障碍物移到舞台的最左边具体位置为(X=-240,Y=0)
  3. 模拟障碍物移动过程 循环执行4-7指令模块
  4. 障碍物每次向前移动指定步数,当然这里同样小朋友们可以自行设定,只是不要太快或者太慢
  5. 通过角色的X坐标值来进行搬到,如果X的坐标值大于230,返回条件值真(表示已经到达了最右边了),这时候就要执行6号程序块,否则执行7的程序块
  6. 回到初始位置,舞台最左边
  7. 时间戳,为了便于观看

大地

  1. 程序启动,执行后续指令模块
  2. 由于我们舞台中央是有层次结构的,所以为了边观察及模拟真实场景,题目要求大地放在最上层,也就是最前面

案例演示

【Scratch真题讲解】2019-9-7电子学会Scratch编程等级考试真题37题蝙蝠躲避障碍

Scratch一级真题视频解析课程

https://edu.csdn.net/course/play/30538?spm=1002.2001.3001.4157

猜你喜欢

转载自blog.csdn.net/frank2102/article/details/107557456