第13届蓝桥杯青少组Scratch第1次省赛真题第5题:蜘蛛侠大战灭霸
发布时间:2024-10-30 13:29 浏览量:2
无限手套,是灭霸用于控制作为无限宝石的载体。将灵魂宝石,力量宝石,时间宝石,空间宝石,现实宝石,心灵宝石,这六块宝石聚集在一起持有者就拥有让所有现实灭亡的能力。
【编程实现】:
灭霸想要毁灭世界,蜘蛛侠只剩下10秒时间来阻止无限手套充能。如果无限手套上的6块宝石都被依次点亮,灭霸获得胜利,如果没有成功点亮全部六块宝石,蜘蛛侠获得胜利。
具体要求:
1). 点击绿旗,角色、背景如图所示(注意:蜘蛛侠手中的蜘蛛丝是由画笔模块绘制出的白色线段,灭霸持续说:“无限手套充能中...”);
2). 用键盘的上、下键,控制蜘蛛侠上、下移动(蜘蛛丝根据蜘蛛侠的移动伸长或缩短);
3). 红色充能进度条开始缓慢增加,进度条和数值每秒增加10%;
4). 六块能力宝石随进度条依次点亮(对应进度数值为10%,30%,50%,70%,90%,100%);
5). 按下空格键,从蜘蛛侠的另一只手发射蜘蛛网,蜘蛛网呈抛物线移动(提示:水平速度不变,垂直速度不断变化);
6). 当蜘蛛网落在灭霸的身上时,能量进度条和数值都会暂停增长1秒;
7). 游戏时间为10秒,在舞台左上角显示,并准确呈现出倒计时功能(依次显示10、9、8......2、1、0);
8). 在10秒钟倒计时结束时,如果无限手套没有充能到100%,灭霸消失,进度条停止增加,蜘蛛侠说:“我胜利了!!!”;
9). 在10秒钟内,如果无限手套充能到100%,蜘蛛侠从舞台上消失,倒计时停止,灭霸说:“我胜利了”。
【分析编码】:
本题包含的角色有点多,共有11个,如图:
题目要求用10秒时间来阻止无限手套充能,如果阻止成功,那么蜘蛛侠获得胜利,否则,灭霸获得胜利。
灭霸(Thanos),美国漫威漫画旗下的超级反派,而无限手套是一款超级武器,将灵魂宝石,力量宝石,时间宝石,空间宝石,现实宝石,心灵宝石聚集在一起,持有者就拥有让所有现实灭亡的能力。
本题角色有点多,那么,角色之间的互动,自然可以使用消息机制来进行信息的传递。
整个程序的运行时间为:10秒,且,此时间不随其他角色的变化而变化,是固定的,我们可以使用一个独立的绿旗来控制(放在蜘蛛侠角色中)。
超过10后,游戏结束,同时发出消息(游戏结束),告知所有角色 。
下面,我们分角色来分析:
角色:蜘蛛侠
1、响应上、下按键动作,即:垂直上下移动;
2、如果胜利了,说:“我胜利了”,否则,从舞台上消失(隐藏);
代码如下:(包括10秒种倒计时)
角色:画笔(Pencil)
画笔功能比较单一,就是用来画蜘蛛丝(蜘蛛侠到舞台顶端的白色线段)。由于蜘蛛侠是可上下移动的,所以,这里需要进行不断地绘制、擦除。
角色:蜘蛛网
蜘蛛网需要完成的功能是:响应空格键的动作,从蜘蛛侠的位置发射出去,呈抛物线移动。注意,这里是可以连续发射的,所以,需要用到克隆技术。
角色的抛物线运动,也是考试中经常出现的一个重要概念。题目中也作了编程提示,即:水平速度不变,垂直速度不断变化。实际上,垂直速度是不断变小,当垂直速度为0时,角色到达最高点。看一下代码:
其中,速度的大小,可根据程序运行进行调试,切合题意即可。
角色:灭霸
灭霸主要完成的功能有:
1、程序开始后,说:“无限手套充能中...”;
2、当游戏结束,如果胜利了,说:“我胜利了”;
3、当蜘蛛网落在灭霸的身上时,告知能量进度条和数值,暂停增长1秒;
下面重点分析一下第3点,这也是本题的难点所在。第3点需要实现两个内容:一是控制进度条和数值暂停计数,二是:控制时间为1秒。为此,我们可以定义一个开关变量:进度开关,并通过计时器来控制此变量的变化。
当进度条正常工作时,进度开关值为1,当蜘蛛网落在灭霸的身上时,进度开关值为0,并发出消息开始计时,如果超过1秒,仍没有更多的蜘蛛网落在灭霸的身上,则恢复进度条正常工作。代码如下:
角色:能量块
能量块,实际上就是反映无限手套进行充能的进度。我们设定两个变量来进行跟踪:
进度:表示当前充能完成的进度,每秒增加10,全部完成后为100;
进度条值:是进度的百分比,即:进度 + %,如下图:
那么,如何来更新进度呢?这里需要通过克隆能量块角色来完成。
注意,这里不能使用图章功能,因为,在画笔角色中,使用了擦除功能,所以,使用图章后无效。代码如下:
说明:由于每次通过消息来进行更新, 为防止克隆体也进行更新,我们定义了一个私有变量:主体。
角色:宝石
各类宝石的功能类似,当进度到达相应的值时,宝石有暗变亮。角色的明亮可以通过亮度功能来实现。灵魂宝石代码如下:(其它宝石类似)
- 上一篇:中国棋手马群获冠军
- 下一篇:「钻石星辰」是我的冬日童话 都说遇见极光,就是遇见幸运