RPGMakerMV探秘08-插件分析2(魔法圈及粒子效果)
????????接上文RPGMakerMV探秘08-插件分析1(添加鳴謝),本文我們研究下在標(biāo)題界面上再搞點(diǎn)事情,加點(diǎn)粒子效果,再來(lái)個(gè)魔法圈,讓標(biāo)題界面動(dòng)起來(lái)。
????????我們經(jīng)常會(huì)看到,部分游戲的標(biāo)題界面會(huì)出現(xiàn)漂浮的一些粒子,有時(shí)候還會(huì)有轉(zhuǎn)圈圈的魔法圈,這樣增加了標(biāo)題界面的內(nèi)容,讓標(biāo)題界面不那么枯燥乏味,配合得好,也會(huì)讓界面更加的美觀(guān),產(chǎn)生動(dòng)態(tài)效果。
????????首先,我們?cè)谀X海想象一下,這個(gè)添加了粒子效果和魔法圈的標(biāo)題界面是什么樣子的。界面上會(huì)有很多粒子在漂浮,魔法圈在某個(gè)位置轉(zhuǎn)動(dòng),甚至粒子或魔法圈在閃爍、忽大忽小。結(jié)合上一篇文章,我們需要把粒子和魔法圈“造”出來(lái),然后通過(guò)周期函數(shù),讓粒子和魔法圈實(shí)現(xiàn)動(dòng)態(tài)效果。根據(jù)這個(gè)思路我們?cè)賮?lái)看看下面的代碼:? ??

????????首先,仍然是獲取參數(shù),這些參數(shù)定義了粒子和魔法圈的基本屬性,幾乎能完整描述兩者的原始狀態(tài)及運(yùn)動(dòng)過(guò)程效果。

????????既然我們要在標(biāo)題場(chǎng)景Scene_Title上“造”粒子和魔法圈,那么我們就得重寫(xiě)Scene_Title的createBackGround方法,把我們的東西加到場(chǎng)景中去。create_particles和create_magic_circle方法分別創(chuàng)建了粒子及魔法圈。下面我們來(lái)看看創(chuàng)建過(guò)程:

????????首先粒子的創(chuàng)建,粒子必然是一張資源圖片,先加載資源。通過(guò)for循環(huán),創(chuàng)建我們?cè)O(shè)置好的粒子個(gè)數(shù)。同時(shí)在創(chuàng)建每一個(gè)粒子時(shí),它的位置、透明度、錨點(diǎn)、混合模式都需要指定,否則你創(chuàng)建的粒子,它自己也不知道該顯示在哪里。這其中有一個(gè)reset_particles方法,這個(gè)方法會(huì)作用在兩種情況下,第一、粒子創(chuàng)建時(shí),第二、粒子飄出界面時(shí)。他的主要作用是利用
_sprite_particles_data這個(gè)二維數(shù)組初始化每個(gè)粒子的行動(dòng)軌跡參數(shù)。其中一個(gè)例子就是粒子在縱向運(yùn)動(dòng)時(shí),有一個(gè)縱向運(yùn)動(dòng)偏移參數(shù),在周期函數(shù)作用下,粒子的位置會(huì)不斷的疊加該偏移參數(shù),如果我們不對(duì)偏移參數(shù)進(jìn)行正負(fù)值的判斷來(lái)設(shè)置粒子的縱向起始位置,那么我們可能永遠(yuǎn)都見(jiàn)不到粒子出現(xiàn)在界面上。再者,位置不斷改變,總會(huì)飄出界面,讓它一直飄下去,就可能飄到外太空了。所以需要重置方法,重置和判斷粒子的起始位置。
????????重置方法如下:?

????????魔法圈的創(chuàng)建與粒子如出一轍,只是魔法圈這里是單張資源,且運(yùn)動(dòng)過(guò)程也比較單一,所以創(chuàng)建過(guò)程也比較簡(jiǎn)單。

????????資源都創(chuàng)建完畢后,實(shí)現(xiàn)動(dòng)態(tài)效果就少不了周期函數(shù)update。重寫(xiě)Scene_Title的update方法,新增update_particles和update_magic_circle方法,讓資源都動(dòng)起來(lái)。

????????每次周期函數(shù)的調(diào)用,都使用for循環(huán)對(duì)所有粒子進(jìn)行位置、透明度、旋轉(zhuǎn)角度的改變。最后還需要檢測(cè)粒子是否已經(jīng)飄出界了,飄出界需要重置粒子,讓它恢復(fù)初始狀態(tài)繼續(xù)飄。

????????魔法圈的動(dòng)態(tài)效果就比較簡(jiǎn)單,每次update改變旋轉(zhuǎn)角度和透明度即可。
????????通過(guò)上述步驟,我們就實(shí)現(xiàn)了之前我們?cè)谀X海中想象的標(biāo)題界面的動(dòng)態(tài)效果。
????????注:以上分析均為作者興趣出發(fā),自學(xué)有感,對(duì)于js的認(rèn)知還存在不足或者偏差,如有錯(cuò)誤,歡迎指正。