Scratch版保卫萝卜(四)瞄点判断

原创 徐鹏程 微信公众号:阳光徐来

2021年8月10日

本次分享瞄点的判断问题,也就是游戏中如何让有指向性的攻击武器瞄准最前方的怪物发射,以最大程度的保全萝卜呆萌形态。有指向性的攻击武器比如下面的两位:

这个瓶瓶炮这个小飞机

至于太阳炮、五叶草等向着固定方向发射子弹的武器,就不需要复杂的瞄点判断了。

第一步 设定瞄点

每一种怪物都要有一个瞄点,我们在每个怪物后面都增加一个精灵(精灵就是Scratch中的角色,细心的同学发现我换用Mind+了嘛,入乡随俗换个叫法哈哈),用不同颜色的小球表示:

精灵

一个变量

瞄点精灵的程序来了!首先新建一个变量,注意是仅适用于当前角色的变量,变量名我们这里叫[当前-判断次数]。

新建变量

瞄点精灵初始化

初始化一下,把[当前-判断次数]设为1,同时设定一下精灵的样子,然后藏起来。当然,调试期间可以暂时不隐藏啊,能够直观的看到效果。延时的时间是在等怪物出来哦~!

程序参考

瞄点定位

然后就进入循环程序:

程序参考

面向第一个怪物

先看[否则]这个大嘴巴里面的执行项,因为1秒以后怪物已经出来了,[当前-判断次数]=1,是不可能大于怪物数量的。

程序参考

重复执行将瞄点移到第一只怪物的位置,也就是跟随移动,直到第一只怪物消失,坐标大于444,必然是被消灭了,或者是吃到萝卜逍遥了。。

重复判断

这时将[当前-判断次数]变量+1,瞄点跟随第二只怪物的位置,以此类推。

如果新的怪物还没刷出来,这时[当前-判断次数]将大于怪物总数,瞄点移到怪物出口位置等着,合情合理~,这就是[如果]大嘴巴里的内容!

程序复用

复制上面的程序,给每种怪物都安插一个间谍精灵,悄悄的跟随还在屏幕中的最前方的一只怪物移动,给炮弹指明一个精准的瞄准点。

第二步 面向瞄点

以绿色水瓶炮的子弹为例,看哪只怪物最欠打。

初始化

首先初始化射程,并将主体隐藏

程序参考

主体逻辑

如果有瞄点在射程范围内,就开始克隆,子弹出膛!

程序参考

这里有点啰嗦了,有几种怪物就要做几次对比,条件好长哦,我电脑放不下~!

发射!

克隆体发射

程序参考

先偷偷往前跑一点,假装是从炮口发射出来的,然后显示出来。

下面就要判断射击哪个瞄点了,上面说过每种怪物都有一个瞄点,而且不同的怪物,前进速度不一样,那就像下面的逻辑,谁离得近打谁。

程序参考

找准目标了,转动武器,开打!

打中后消失

程序参考

每颗子弹最多消灭一个敌人哦。

程序复用

小飞机等其他有指向性的攻击武器都同理哦,当然子弹的方向要改为自由旋转:

自由选择

第三步 其他武器-五页扇

不需要指向性的攻击武器里面,五页扇也是和很有意思的存在,因为他是以固定角度旋转的,控制逻辑是这样的:

初始化

程序参考

设定射程、大小、初始位置等。

主体旋转

程序参考

当按下空格后,主体以固定的节奏旋转起来。

克隆体发射

程序参考

第四步 其他武器-太阳炮

这也是个很酷炫的武器,但是逻辑不是很复杂。分成中间的太阳炮和可以放大的太阳炮子弹两个精灵:

精灵列表

笑脸转转

程序参考

让太阳炮萌起来。

子弹初始化

程序参考

和上面的类似,射程大小之类的。

太阳炮光波发射

程序参考

当按下空格键后,开始寻找射程范围内的怪物,如果发现,光波发射!

第五步 结语

截至本期的内容,Scratch版保卫萝卜小游戏中有意思的程序都已经给各位分享完了,各位觉得怎么样呢~!

如果有没讲明白的,或者其他感兴趣的,也希望在留言中提出啊,我会解答各位的问题和需求,同时看是否需要出个(五)。

预告!下一个系列会是Scratch版的跳一跳哦,和现在网上有的都不一样哦~!

感谢捧场,下次再见!