打棒球-第13届蓝桥杯Scratch省赛1真题第3题

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

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

打棒球,本题是第13届蓝桥杯Scratch第一次省赛真题编程第3题,初级组和中级组都有此题,题目要求考生编程呈现一次精彩绝伦的本垒打。

先来看看题目的要求吧。

一.题目说明

背景信息:

在棒球比赛中,本垒打是指击球员将对方来球击出后(通常击出外野护栏),击球员依次跑过一、二、三垒并安全回到本垒的进攻方法,是棒球比赛中非常精彩的高潮瞬间。

编程实现:

呈现一次精彩绝伦的本垒打。

具体要求:

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

图片[1]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

2). 按下空格键,自舞台左侧抛出棒球,棒球向舞台右侧水平匀速移动;

图片[2]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

3). 当棒球飞到下图的位置,击球员做出挥棒动作,刚好打到棒球;

图片[3]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

4). 棒球被击飞,向左上角移动,且移动中棒球变大(有移动变大效果);

图片[4]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

5). 3秒后,棒球消失,击球员按照一垒-二垒-三垒的顺序跑垒(逆时针方向,参见视频),最终回到本垒,程序结束。

图片[5]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

二.效果预览

在编程之前,先来看看作品的完整效果吧:

三.思路分析

本题包含两个角色,分别是击球员和棒球,如图所示:

图片[6]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

根据题目的描述,我们可以使用流程图来表示打棒球的过程,如图所示:

图片[7]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

从流程图来看,这是一个简单的顺序编程,但是它涉及到到击球员和棒球两个角色,需要在二者之间来回切换,这就离不开事件广播机制了。

棒球和击球员都涉及到运动,关于角色的运动,通常有三种方式:

1). 使用面向方向 + 移动指令

2). 使用将x/y坐标增加10指令

3). 使用在1秒内滑行到x,y指令

一般情况下,前面两种都需要结合循环来实现,本题中的棒球和击球员,运动的终点是明确的,使用第三种方式最简单。

四.编程实现

根据上面的思路分析,我们分三步来编写程序。

  • 按下空格键,抛出棒球
  • 击球员击球,棒球飞走
  • 击球员跑垒

1). 按下空格键,抛出棒球

点击绿旗时,棒球是隐藏着的,当按下空格键时,从舞台左侧抛出棒球并向右运动至击球员前方,切换到棒球角色,编写代码如下:

图片[8]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

需要说明两点:

①. 对于按下空格键的检测和判断,这里使用了“等待” + “按下空格键”的组合指令。

②. 当棒球到达击球员前方,即坐标为(80,60)处时,击球员就要开始挥棒击球了,这里发送了一个“击球”的广播消息。

2). 击球员击球,棒球飞走

在点击绿旗时,击球员在舞台右侧举着棒球杆,一旦接收到“击球”广播,就开始挥棒了,其实就是切换造型,击球员一共有4个造型,如图所示:

图片[9]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

因此,击球员角色只需要切换3次造型即可,对应的代码如下:

图片[10]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

击球员挥棒后,会碰到棒球,因此我们可以在棒球角色中检测是否碰到击球员,当碰到击球员后,让棒球向左上方移动直至消失,在移动的过程中慢慢变大。

切换到棒球角色,添加代码如下:

图片[11]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

由于“在1秒内滑行x,y”指令是独占模式,也就是在移动过程中不能执行其它指令,因此,这里采取了兵分两路的策略,在滑行之前,给自己发送一个“变大”的广播消息。

当棒球飞出舞台消失后,击球员该跑垒了,所以这里发送了一个“跑垒”的广播消息。

3). 击球员跑垒

当击球员接收到“跑垒”广播后,依次跑过一、二、三垒并安全回到本垒,其实就是3次滑行动作,只需要确定好每一次滑行的坐标即可,切换到击球员角色,编写代码如下:

图片[12]-scratch打棒球_第13届蓝桥杯省赛教程-超平的编程课

至此,整个作品就创作好了,赶紧欣赏一下自己的棒球本垒打精彩瞬间吧^_^。

五.总结与思考

本题难度一般,代码量不多,一共32个积木块,分值为50,涉及到的知识点主要包括:

  • 外观编程,包括显示、隐藏、大小和切换造型;
  • 运动编程,重点是滑行指令的使用及其特点;
  • 事件广播机制,包括给自己发送广播消息;
  • 等待条件指令的妙用。

需要素材和源代码的,可以转到这里,棒球本垒打-2022.4.16蓝桥杯省赛第3题

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容