如何实现子弹电链
-
命中一个敌人后,距离满足的话,会传递给最近的一个敌人,直到攻击次数为0。如果距离不满足就停止
-
@PF橘子66 暂时没有时间尝试demo,先简单写一下我的思路:
1.所有内容放进动作组里执行;
2.命中一个敌人,触发使用动作组,并将这个敌人设为“已传递”(可以用实例变量或者数组);
3.动作组内自动寻找条件满足的周围敌人实例,使用“选中最近实例”即可,随后判断距离、角度范围、是否已传递、攻击次数是否为0等;如果不满足条件则重置敌人的传递状态并终止动作组(理论上来说可以使用“设置返回值”来实现终止,如果不行也可以用局部变量判断)
4.满足条件后,触发效果,给攻击次数-1(这里如果有攻击特效实例的话用实例变量应该会更好)
5.递归,在动作组的结尾重新调用自己
这里还涉及两种可能,一是攻击为瞬间执行,类似电击传递的那种,传递的过程不消耗时间;这种情况就简单很多,应该直接用循环就能实现。如果想做出传递动画的话就需要一些心思优化了,这里主要可能出现的问题是两个攻击的时间间隔非常近(以至于前一个还没结束后一个就开始了),这是我目前能想到的最大问题
-
@PF橘子66 楼上大佬给出方案了,那我来试试?
-
@CJJ 谢谢大佬了
-
@zjxdiu 谢谢大佬
-
@PF橘子66 差不多这样吧,没有动作组,也没有其他奇奇怪怪的事件
单纯用选中条件去排除已碰撞UID就可以了
要加距离话,只需要在6的倒数第二行加上,按条件选中 敌机 到 子弹 的距离<多少
测试是没有任何问题的,数量只要次数够,必定每个都跑到
连锁闪电.evk
-
@CJJ 谢谢大佬
-
@CJJ 比较距离不能用视线吗?那可以用啥
-
@PF橘子66 这肯定不是视线啊
既然我这个功能是用选中筛选实现得,那自然还是用选中筛选距离 看我上面说的
只需要在6的倒数第二行加上,按条件选中 敌机 到 子弹 的距离<多少
-
@CJJ 好的,谢谢大佬