女孩顶球-第10届蓝桥杯Scratch省赛真题第1题

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

第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

女孩顶球,本题是第10届蓝桥杯Scratch省赛真题编程第1题,初级组和中级组都有此题,题目要求编程实现女孩头顶足球的精彩一幕。

先来看看题目的要求吧。

一.题目说明

准备工作:

导入角色库中的两个角色小女孩“Anna”和足球“Ball-Soccer”。

编程实现:

小女孩正在表演用头托住足球。为了把足球一直托在头顶,小女孩需要不停地晃动双手。小女孩还可以跟着鼠标一起移动。

具体要求:

1、程序运行后,小女孩要跟随鼠标一起移动;

2、小女孩可以不停地切换造型(切换造型的间隔时间参考值为 0.2 秒);

3、无论小女孩是否移动,足球都始终处于小女孩的头顶。不用考虑足球是否遮挡住小女孩的头部,只要靠着就可以,参考下图所示。

将程序保存到桌面,命名为“1.sb2”。

评判标准:

  • 10 分:程序开始,未移动鼠标时,球在小女孩头上;

  • 30 分:在 10 分的基础上,小女孩在跟随鼠标移动的过程中没有明显卡顿现象,小女孩可以一直切换造型;

  • 50 分:在 30 分的基础上,球始终在小女孩头部,如果存在足球脱离小女孩头顶的情况,只能得 30 分。

二.思路分析

本题有两个角色,分别是女孩和足球,如图所示:

其中,女孩跟随鼠标移动,而足球始终位于女孩的头顶,我们只需要设置好角色的位置即可。

 

三.编程实现

根据题目描述和思路分析,我们可以分角色来编写程序:

  • 女孩角色随鼠标移动

  • 足球位于女孩头顶

1. 女孩角色随鼠标移动

绿旗点击时,女孩就跟随鼠标移动,在Scratch运动模块中,有一个“移到鼠标指针”的指令可以实现这一效果,编写代码如下:

在移动的同时,女孩不停的切换造型,这可以使用“下一个造型”指令,很多同学毫不犹豫的写出如下代码:

执行这段代码,会发现女孩切换造型的速度太快,于是又增加了一个“等待1秒”指令,如下:

再次执行代码,又出现一个奇怪的现象,女孩的反应有些迟钝,这是什么情况?仔细想想,也不难理解,当增加了“等待0.2秒”指令后,女孩每一次移到鼠标指针位置后,需要等待0.2秒,才会再次移到鼠标指针位置,这就造成了卡顿现象。

解决方法也比较简单,就是使用两个绿旗代码块,将移动和切换造型的代码分开同步运行,互不干扰,这就是编程中的多线程,代码如下:

实际上,在Scratch中经常采用多线程的编程实现,在一个角色中编写多个绿旗代码块。

2. 足球位于女孩头顶

对于足球角色来说,每次移到女孩角色位置即可,可编写代码如下:

执行代码,结果如下:

足球位于女孩的腰部,你知道这是为什么吗?原因很简单,就是将足球移动女孩角色位置,其实是将足球角色的造型中心和女孩的造型中心重叠起来,而女孩的造型中心刚好是在腰部。

要将足球放到女孩头顶,可以将足球在当前位置向上移动一定距离(大概100步)即可,因此,我们可以在每次移到女孩所在位置的同时,将y坐标增加100,代码如下:

四.总结与思考

本题难度系数为1,积木块数量在12个左右,涉及到的知识点主要包括:

  • 无限循环及重复执行指令的使用;

  • 移到角色指令,包括特殊的移到鼠标指针指令;

  • 切换造型;

  • 多线程的编程思想。

本题非常简单,作为省赛的第一题,基本上是送分题,重点是要处理好等待时间指令造成的卡顿现象。我们不仅要明白卡顿的原因,同时还要掌握多线程解决卡顿现象的编程思想。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值