带孩子玩Scratch编程:学龄前趣味程序(15)

上一篇

(15) 太阳神 Ra

Scratch植物大战僵尸 太阳神 Ra

程序目标描述

应 Ethan 小朋友的强烈要求,本集题材又回到了植物大战僵尸。这次我们模拟太阳神僵尸 Ra 吸走太阳的效果。游戏在 10秒钟内随机释放 10枚太阳,玩家要抢在太阳被 Ra 吸走之前点中它们,点中的次数显示在屏幕左上方。

收集素材

在 https://plantsvszombies.fandom.com/wiki/ra_zombie/gallery

下载 Ra Zombie 的 PNG 素材,可以下载1个正常状态的 Ra,和 1个正在吸收太阳的 Ra。分别保存为 Ra_zombie 和 Ra_zombie2。

场景布置

舞台背景选择 Scratch 内置的侏罗纪背景图片 “Jurassic”。

角色上传 Ra_zombie,之后进入“造型”活页卡中,在左侧造型栏底部找到“上传造型”按钮,再给它添加一个 Ra_zombie2 的第二造型(正在吸收太阳状态的造型)。在造型编辑器中修改两个造型的大小,让他们适合屏幕。

如果不想麻烦,也可以直接使用 Scratch 的内置角色,如 Max ,代替 Ra zombie。那样的话,需要注意在后边的代码中,所有 Ra_zombie 要替换为 Max。

最后,添加一个 Scratch 内置角色 Sun,并在角色的属性窗口中,将 Sun 的大小修改为 50。

代码搭建

Sun:

Scratch植物大战僵尸 太阳神 Ra 第1步

Ra_zombie:

Scratch植物大战僵尸 太阳神 Ra 第2步

运行

如前文描述。

讲解

如果前面的例程都完成了,相信在这个程序中,你不会感到有太陌生的内容。这个程序还是用克隆体的子程序去实现飞行效果,主程序只负责初始化(计分清零、隐藏本体)、不断随机改变位置并克隆自己。其中,“将[虚像]特效设定为(100)”是为了隐藏本体。

有一点比较怪的,是在克隆体的飞行效果中,用到了一个比较复杂的运算式。其中包括了一个除法,以及一个“平方根(  )”函数积木。这个算式保证了太阳飞向 Ra 的速度,会在靠近 Ra 时越来越快。具体而言,太阳飞行速度的平方反比于到 Ra 的距离,这种情况和天体之间的万有引力、正负电荷之间的静电引力都服从相同的规律。

最后,为了在吸到太阳后,给 Ra 施加一个动作效果,我们让太阳的克隆体在“碰到 [Ra_zombie]”之后“广播[消息1]”。Ra_zombie 的代码可以处理“当接收到[消息1]”事件,那就是切换成 Ra_zombie2 造型,短暂地持续 0.4 秒,再换回正常的造型。

总的来说,搭建和理解这个程序有一定难度。需要仔细哦。

发表评论

邮箱地址不会被公开。