接 上一篇
(15) 太阳神 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:
Ra_zombie:
运行:
如前文描述。
讲解:
如果前面的例程都完成了,相信在这个程序中,你不会感到有太陌生的内容。这个程序还是用克隆体的子程序去实现飞行效果,主程序只负责初始化(计分清零、隐藏本体)、不断随机改变位置并克隆自己。其中,“将[虚像]特效设定为(100)”是为了隐藏本体。
有一点比较怪的,是在克隆体的飞行效果中,用到了一个比较复杂的运算式。其中包括了一个除法,以及一个“平方根( )”函数积木。这个算式保证了太阳飞向 Ra 的速度,会在靠近 Ra 时越来越快。具体而言,太阳飞行速度的平方反比于到 Ra 的距离,这种情况和天体之间的万有引力、正负电荷之间的静电引力都服从相同的规律。
最后,为了在吸到太阳后,给 Ra 施加一个动作效果,我们让太阳的克隆体在“碰到 [Ra_zombie]”之后“广播[消息1]”。Ra_zombie 的代码可以处理“当接收到[消息1]”事件,那就是切换成 Ra_zombie2 造型,短暂地持续 0.4 秒,再换回正常的造型。
总的来说,搭建和理解这个程序有一定难度。需要仔细哦。