跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题

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

第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

跑酷游戏,本题是第13届蓝桥杯Scratch国赛真题编程第3题,初级组和中级组都有此题。题目要求考生编程实现一个简单的恐龙跑酷游戏。

先来看看题目的要求吧。

一.题目说明 

编程实现:

跑酷游戏。

具体要求:

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

2). 1秒后,角色开始进行奔跑(造型切换);

3). 沙漠地形自右向左持续移动;

4). 当角色奔跑3秒后,开始俯身加速向前奔跑;

5). 3秒后,角色跑到舞台右侧边缘游戏结束。

评判标准:

  • 5分:满足“具体要求”中的1);

  • 10分:满足“具体要求”中的2);

  • 15分:满足“具体要求”中的3);

  • 15分:满足“具体要求”中的4);

  • 15分:满足“具体要求”中的5)。

二.思路分析

本题只有两个角色,分别是恐龙和沙漠,如图:

而恐龙角色有4个造型,如下图所示:

其中,造型1和2是恐龙正常奔跑时的造型,3和4则是恐龙俯身加速奔跑的造型。对于恐龙角色而言,跑酷分两个阶段,第一个阶段是正常奔跑,第二个阶段加速奔跑,每个阶段持续时间都是3秒钟。

如何实现计时功能呢?一般有两种方法,一是使用变量,每隔1秒钟增加1,重复执行直到变量等于3,第二种方法则是使用Scrath提供的计时器,包括”计时器归零“和”定时器“两个指令。

对于沙漠角色而言,要实现沙漠地形自右向左持续移动,这是一个典型的无限滚动效果,其实现方式也比较固定,就是使用两个完全一样的角色,一前一后自右向左移动。

三.编程实现

根据上面的思路分析,我们将分2步来编写程序:

  • 恐龙奔跑

  • 沙漠无限滚动

1. 恐龙奔跑

恐龙的奔跑分前后两个阶段,我们先实现第一个阶段,将恐龙移到舞台左下方,切换到第一个造型,1秒之后,先使用”计时器归零“指令将计时器的时间设置为从0开始,接着重复执行右移,直到计时器大于3。

在移动的过程中,需要不停地在1和2两个造型之间来回切换,其代码如下:

由于恐龙角色有4个造型,为确保只在1和2之间切换,当造型从2切换到3的时候,就立刻切换到造型1。当然,恐龙切换造型不能太快,所以,这里增加了”等待0.1秒“指令,同时还需要注意,恐龙每次移动的距离也不宜过大或过小,此处需要多尝试几次,确保恐龙在3秒钟时间到达舞台中间(水平位置)。

关于计时器,这里需要强调一下,只要打开Scratch,它就开始自动计时,所以每次在需要计时的那一刻,先使用”计时器归零“将计时器重新设置为0。

接下来,就是俯身加速奔跑的第二个阶段了,除了造型和速度不同之外,其它地方和正常奔跑完全一样,在上面的代码下面,增加代码如下:

这里的速度设置(即”将x坐标增加15“指令)要注意两个细节,一是要比正常奔跑时快,以体现加速奔跑的效果;二是要确保在3秒钟跑到舞台右边缘位置,在实际编程的时候,可以多尝试几次。

2. 沙漠无限滚动

无限滚动的原理非常简单,就是让两个完全一样的角色,一前一后排列,然后同时向左移动,当角色到达舞台最左边时,立刻移到舞台最右边,重复执行这个过程即可。

我们可以分两步来实现这个效果,第一步,实现第一个沙漠角色的左移效果,绿旗被点击时,将角色移动(0,0)处,确保角色在水平方向上,刚好占满舞台,然后重复执行向左移动,当到达舞台最左边的时候,将其移到舞台的最右边,编写代码如下:

需要注意这里的条件判断”x坐标<-464“,当角色到达舞台最左边时,其坐标值为-465,所以我们的条件可以写成”x坐标=-465“或者”x坐标<-464“,相对来说,使用后者逻辑更为严谨一些,但是不能写成”x坐标<-465“,否则角色就不能移到右边了。

测试一下效果,如果没有问题,我们就可以进入第二步了,这一步非常简单,直接复制一个沙漠角色,然后将第初始位置设置为(480,0)即可,代码如下所示:

有些同学可能有些疑惑,最右边不是465吗,为什么要设置为480呢?其实,这里设置为480和465,效果是一样的,换句话说,只要大于465,其实际坐标都会变成465,这是为什么呢?

原因在于,Scratch中所有的角色都必须留在舞台范围内,比如,让小猫重复向右移动,你会发现小猫是不能跑出舞台的,它还漏了一条小尾巴,如图:

通常情况下,角色留在舞台内的部分长度为15步,这也是为什么上面的沙漠角色到达最左边时x坐标为-465,理论上,完全到达最左边应该是-480,由于要留一个15步的小尾巴,所以当它移到-465时,就不会再移动了。 

四.总结与思考

本题的总代码量为为44个积木块左右,难度系数为3,分值为60,涉及到的知识点主要包括:

  • 切换造型,尤其是指定连续若干造型的切换技巧;

  • 计时器的使用,注意每次使用前都需要清零;

  • 熟悉舞台坐标系及各个位置的坐标;

  • 无限滚动的原理及其实现;

  • 运动编程,重点是运动的4大要素(起点、方向、速度和终点)。

这是一道简单的编程题,如果去掉相同部分的代码,总积木块数就只有22个了,关键在于如何实现精确的时间控制和无限滚动。

本教程中,我使用了计时器来实现计时功能,如果使用变量,该如何做呢?针对沙漠地形的无限滚动,除了直接复制角色外,还可以使用克隆,如果使用克隆,代码又是怎样的呢?赶紧打开Scratch,编程来验证一下你的想法吧。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值