【LuaSTG選修教程】綁定與拼彈

大家好啊,我?是?吉?吉,這是我第一次寫專欄??催@篇教程需要一定的基礎(chǔ),一些基礎(chǔ)內(nèi)容請觀看SSW老師或其他老師的教程。?從零開始上手LuaSTG
一些功能的做法不唯一,這個只是我自己的方法。
有時單個子彈略顯單調(diào),我們可以把多個子彈組合到一起看成一個大子彈,一般做法是子彈在不同位置同時生成,然后朝相同方向運(yùn)動。


但是當(dāng)子彈運(yùn)動軌跡比較復(fù)雜時,這樣做就會很麻煩


這時就需要一個叫綁定的功能

先看左邊這個像鎖鏈的節(jié)點

里面有四個選項
一般我們默認(rèn)將self設(shè)為master,將last設(shè)為servant
這個節(jié)點放在誰里面寫誰就是self
比如放某個自定義子彈里,那么這個自定義子彈就是master,在符卡里寫,那么boss就是master
last代表上一個創(chuàng)建的obj,通常把綁定節(jié)點放在生成的子彈的下面
Damage transfer rate是傷害傳遞,如果里面填1,servant受到的傷害就按1:1傳給master


為了方便我們將master稱為主,將servant稱為仆
在仆obj里可以可以使用self._master表示主obj
然后是這個像路標(biāo)的節(jié)點

里面分別是 相對坐標(biāo)x,y??,子彈朝向,跟隨主obj朝向。
當(dāng)Follow master’s rotation設(shè)為true時,仆obj會根據(jù)主obj朝向繞著主obj旋轉(zhuǎn)

這個節(jié)點需要放在仆obj里,設(shè)置仆obj相對主obj的位置
我們知道游戲界面中間為坐標(biāo)原點,即(0,0)點。在這里表示和主obj的相對坐標(biāo),就是把主obj所在位置作為原點
比如在這里寫(10,-20),就相當(dāng)于
self.x=self._master.x+10
self.y=self._master.y-20

注意:使用這個節(jié)點時,如果沒有和主obj綁定,或者主obj被消彈消掉了的話,會因為檢測不到self._master而報錯(你馬都沒了還怎么玩)
所以使用這個節(jié)點前建議用IsValid功能判斷一下master是否存在

下面是常用的綁定用法


有沒有看明白?

紅小玉是自機(jī)狙,作為主obj。綠米蛋就是在主obj上套了一個圓,a1是角度增量。
好的你已經(jīng)完全學(xué)會了,來嘗試復(fù)刻一下經(jīng)典彈幕吧。

復(fù)刻的不是很像(

另外,在主obj里也有可以表示仆obj的功能。
self._servants?這是一個表,會按順序把所有仆obj編號存到這個表里,比如用self._servants[1]表示第一個被綁定的仆obj。不過這不是重點,這個功能我也沒怎么用過,也許能做出更有趣的彈幕呢(笑
發(fā)癲中......

綁定當(dāng)然也是可以套娃的


好的,這篇教程就到這里了,希望能幫到大家,如有錯誤希望指正。