【LuaSTG选修教程】绑定与拼弹
大家好啊,我 是 吉 吉,这是我第一次写专栏。看这篇教程需要一定的基础,一些基础内容请观看SSW老师或其他老师的教程。 从零开始上手LuaSTG
一些功能的做法不唯一,这个只是我自己的方法。
有时单个子弹略显单调,我们可以把多个子弹组合到一起看成一个大子弹,一般做法是子弹在不同位置同时生成,然后朝相同方向运动。


但是当子弹运动轨迹比较复杂时,这样做就会很麻烦


这时就需要一个叫绑定的功能

先看左边这个像锁链的节点

里面有四个选项
一般我们默认将self设为master,将last设为servant
这个节点放在谁里面写谁就是self
比如放某个自定义子弹里,那么这个自定义子弹就是master,在符卡里写,那么boss就是master
last代表上一个创建的obj,通常把绑定节点放在生成的子弹的下面
Damage transfer rate是伤害传递,如果里面填1,servant受到的伤害就按1:1传给master


为了方便我们将master称为主,将servant称为仆
在仆obj里可以可以使用self._master表示主obj
然后是这个像路标的节点

里面分别是 相对坐标x,y ,子弹朝向,跟随主obj朝向。
当Follow master’s rotation设为true时,仆obj会根据主obj朝向绕着主obj旋转

这个节点需要放在仆obj里,设置仆obj相对主obj的位置
我们知道游戏界面中间为坐标原点,即(0,0)点。在这里表示和主obj的相对坐标,就是把主obj所在位置作为原点
比如在这里写(10,-20),就相当于
self.x=self._master.x+10
self.y=self._master.y-20

注意:使用这个节点时,如果没有和主obj绑定,或者主obj被消弹消掉了的话,会因为检测不到self._master而报错(你马都没了还怎么玩)
所以使用这个节点前建议用IsValid功能判断一下master是否存在

下面是常用的绑定用法


有没有看明白?

红小玉是自机狙,作为主obj。绿米蛋就是在主obj上套了一个圆,a1是角度增量。
好的你已经完全学会了,来尝试复刻一下经典弹幕吧。

复刻的不是很像(

另外,在主obj里也有可以表示仆obj的功能。
self._servants 这是一个表,会按顺序把所有仆obj编号存到这个表里,比如用self._servants[1]表示第一个被绑定的仆obj。不过这不是重点,这个功能我也没怎么用过,也许能做出更有趣的弹幕呢(笑
发癫中......

绑定当然也是可以套娃的


好的,这篇教程就到这里了,希望能帮到大家,如有错误希望指正。

