scratch少儿编程实战:灵药战争(第二课)
复习上节课学习的内容
Hi,小朋友们!我是阿达老师。我们在前面的课程中完成了《灵药战争》中小怪物的实现效果,今天我们继续学习,完成神秘灵药的代码,我们开始吧
游戏背景介绍
小阿达,来到了神秘的异次完空间,那里有可以提升智力的灵药,为了能够变得更聪明,小阿达决定闯闯这个异次元空间,与怪物大战三百回合,收集足够多的灵药
我们移动鼠标,不仅要去收集灵药,又要避开逼近过来怪物侵袭,当灵药和怪物在舞台区漫游的时候,它们会不断的通过克隆的方式来扩大自已阵营的规模,我们收集到一颗灵药可以加1分,但被小怪物攻击一次之后就会减3分,分数超过20我们就顺利过关,分数下降到0以下,就游戏失败了,要重新来过,这个规则小朋友们可以自已设置,用来调整游戏的难度
在这个快节奏的游戏灵药争夺战中,小朋友们需要用闪电般的反应去捕捉灵药,同时怪物在对你步步紧逼,游戏使用的克隆功能,组织了一支庞大的怪物军团
实现分析
灵药能够不断的被复制出来,并且向阿达靠拢,当阿达收集到一颗灵药时,我们让分数增加1
本节课知识点
使用克隆功能来实现灵药的展示和汇聚到角色身边的效果,
使用变量功能实现分数的累加规则
视频实战
我们打开网易咔嗒,在我的作品中选择《灵药战争》项目,进入scratch的编程环境,
切换到灵药的脚本区,我们先建立一个绿旗点击事件,从事件模块组里拖入当绿放被点击
代码块,在下面拖入设置角色大小的代码块,我们把角色大小设置为10,因为我们要使用克隆体来实现效果,所以,先要把灵药的本体隐藏起来,从外观模块且里拖入隐藏
代码块,放到设置角色大小代码块的下方,如下图:
灵药的移动方向也是随机的,所以随机选择方向的代码和小怪物的随机方向选择的代码是一致的,从动作模块组里拖入面向90度
代码块,从运行符模块组里拖入随机数
代码块,将随机数取值范围设置为-180到180之间,
设置好方向后,我们实现一下灵药移动的代码,以及生成克隆体的代码,这些我们在上课都已经学习过了,老师直接把代码帖出来吧,
最后,我们把代码块组合起来,并嵌入到重复执行代码块当中,灵药本体的预设部分逻辑就实现了,我们上节课说过了,克隆体将继承本体已经预设好的这部分特性
下面我们为克隆体编写个性化的代码,从控制模块组里拖入当作为克隆体启动时
,从外观模块组里拖入将虚像特效设定为50
,因为我们在上一段代码里设置了灵药的本体隐藏,所以,对于克隆体我们需要让它显示出来,从外观模块组里再拖入显示
代码块
接下来实现一下灵药向着小阿达汇聚的效果,从动作模块组里拖入面向鼠标指针
代码块,将“鼠标指针”改为“阿达”,再拖入移动1步
代码块,再从控制模块组里拖入重复执行10次
代码块,把以上两段代码放入循环结果当中,将循环次数改为300次,代码如下:
下面我们来设置一下分数累加的规则,从控制模块组里拖入如果...那么...
代码块,在条件判断当中拖入碰到阿达
条件代码块,在条件结果当中拖入将得分增加1
代码块,我们再给这段代码增加个声效,从声音模块组里拖入播放声音
,选择我们提前准备好的声音,小朋友们也可以通过录制的方式准备自已想要播放的声音哦,酷不酷?
这段代码的意思是:“灵药的克隆体如果碰到小阿达就播放我们准备的声音”,这个时候小阿达就要把灵药收起来啦,灵药的克隆体被收起来,那么就意味着克隆体的生命周期结束了,所以,我们从控制模块组里拖入删除克隆体
代码块放入判断结果的最下方,代码如下:
如果重复执行完300次的向阿达汇聚操作后,仍然没有碰到阿达,我们也要对克隆体进行清理,所以在重复执行300次的代码后面,也要执行删除克隆体的代码块,把刚刚这部分代码组合一下,最终的效果,如下图:
我们来运行一下,看看效果吧,
嗯,小怪物和灵药都可以在舞台区执行逼近和汇聚的效果了,我们用鼠标拖动小阿达收集一下灵药看一下,嗯,不错,分数可以增加呢,再去挑战一下小怪物,呃,确实也会被减掉分数,非常完善的一段代码哦,我们完成了《群魔乱舞》和《灵药惊现》两部分代码逻辑,今天的学习就到这里吧,我们下节课继续完成小阿达的《闪转腾挪》,拜拜
阿达老师-孩子身边的编程专家
完整课程请关注阿达老师,主页里有完整的课程目录和观看地址