LuaSTG Sharp:高級循環(huán)
Luastg群內(nèi)有關(guān)于高級循環(huán)功能的詳細介紹,想要了解更多的話可以在群文件內(nèi)搜索“高級循環(huán)指南”

眾所周知在新版編輯器中加入了一個Advanced功能,在社區(qū)中被稱作“高級循環(huán)”,那么高級循環(huán)怎么用呢,我們來看看吧。
“高級循環(huán)”的作用跟普通的循環(huán)是一樣的(廢話),事不宜遲我們來講一下高級循環(huán)比起普通循環(huán)多了什么。
首先我們用普通的循環(huán)來寫一個開花彈:


看起來簡單又美好,所以我們現(xiàn)在用高級循環(huán)來寫一個開花彈:

創(chuàng)建了一個高級循環(huán)之后發(fā)現(xiàn)里面居然有Variables這種東西,而且跟普通循環(huán)比較,編輯器窗口左邊的循環(huán)變量欄也沒有了。
這個時候就是兩個循環(huán)中間的這些節(jié)點發(fā)揮作用的時刻了,這些節(jié)點就是“變量節(jié)點”,用右箭頭在Variables里創(chuàng)建這些變量節(jié)點,就可以使用高級循環(huán)了。

大家會發(fā)現(xiàn)變量節(jié)點被分割成了三塊,這里我來依次解釋一下這七個變量節(jié)點是什么意思。
下面的內(nèi)容會有點長,不要頭暈來著(

增量變量:定義一個變量名,輸入初始值和遞增值,讓這個變量在每次循環(huán)時增加一個遞增值。

這個時候大家就會發(fā)現(xiàn)這不就是普通循環(huán)變量欄里的變量類型嘛。

【有限次循環(huán)變量】因為這些變量里要求輸入初始值與終值,所以最好在有限次循環(huán)里放入這些變量
線性變量:定義一個變量名,輸入初始值與終值,讓這個變量從初始值逐漸變?yōu)榻K值。

線性變量下面還有兩個參數(shù),precisely是指變量在循環(huán)結(jié)束后是否為終值——換個方式說,就是小學數(shù)學里的植樹問題;mode指定了變量從初始值變到終值時的變化函數(shù),一共有四個選項可以選擇:
MOVE_NORMAL,一次函數(shù)?
MOVE_ACCEL,二次函數(shù),加速
MOVE_DECEL,二次函數(shù),減速
MOVE_ACC_DEC,兩段二次函數(shù),先加速到一半,再減速

正弦插值變量:定義一個變量名,輸入初始值與終值,讓這個變量以正弦函數(shù)的變化方式從初始值增加到終值。

正弦插值變量其實跟線性變量差不多,下面的interpolation也是可供選擇的變化函數(shù):
SINE_ACCEL,sin 函數(shù)-π/2~0 的那 1/4 周期
SINE_DECEL,sin 函數(shù) 0~π/2的那 1/4 周期
SINE_ACC_DEC,sin 函數(shù)-π/2~π/2的那半周期

正弦移動變量:定義一個變量名,輸入初相,最小值,最大值,周期數(shù),讓這個變量在指定周期的正弦函數(shù)內(nèi)變換。


自定義函數(shù)變量:定義一個變量名,輸入x的初始值與終值,這個變量在循環(huán)內(nèi)的值就是f(x)。

自定義函數(shù)變量
可以看到我們在最下面的interpolationFunc里編輯f(x)。

【無限次循環(huán)變量】雖然名字叫這個但其實也能在有限次循環(huán)里用
往復運動變量:定義一個變量名,輸入x的初始值與另一個值,讓這個變量在兩個值內(nèi)來回“震蕩”


正弦震蕩變量:定義一個變量名,輸入初相,最小值,最大值,遞增值。

這個遞增值解釋起來有點長,我舉兩個例子:omega為180時,變量會在兩個值內(nèi)來回震蕩;omega為360時,變量就會變成一個固定的值。結(jié)合一下三角函數(shù)相關(guān)知識就能理解了。

介紹了這么多讓我們趕緊看個例子,高級循環(huán)的好處就是方便,我們用不同的方式來寫同一個開花彈:


好像并沒有方便到哪里去,可能是因為教程不好舉復雜的例子。所以我又寫了一個例子。
這個例子里,我們用正弦震蕩變量r控制開花的半徑,增量變量a0控制開花的初始角度,用線性變量a1制作開花。

