• 女孩顶球-第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♪(・ω・)ノ。

  • 相关阅读:
    JavaWeb三大组件-Filter
    基于javaweb的在线化妆品商城系统(java+ssm+jsp+js+bootstrap+mysql)
    基础复习——activity的跳转-启动-结束——Activity的生命周期——Activity的启动模式(配置文件里面设置&代码里面设置)——重点...
    使用 Learner Lab - 使用 AWS Lambda 将图片写入 S3
    Windows下Core Audio APIs的使用简介
    ES6 --》函数扩展以及箭头函数讲解
    软件工程基础实验二
    《eNSP - NAT 实验》
    vscode启动不了,折腾了半天发现已经不支持win7
    【c++百日刷题计划】 ———— DAY4,带你轻松学习算法
  • 原文地址:https://blog.csdn.net/diamondwang2012/article/details/127719912