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

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

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

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

先来看看题目的要求吧。

一.题目说明

背景信息:

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

编程实现:

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

具体要求:

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

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

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

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

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

二.思路分析

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

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

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

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

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

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

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

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

三.编程实现

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

  • 按下空格键,抛出棒球

  • 击球员击球,棒球飞走

  • 击球员跑垒

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

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

需要说明两点:

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

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

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

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

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

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

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

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

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

3). 击球员跑垒

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

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

四.总结与思考

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

  • 外观编程,包括显示、隐藏、大小和切换造型;

  • 运动编程,重点是滑行指令的使用及其特点;

  • 事件广播机制,包括给自己发送广播消息;

  • 等待条件指令的妙用。

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,十分感谢。

有需要素材和源码的,可以联系本人。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值