巴哈姆特

哈啦區 RPG製作大師
查看全文
YellowD (yellowd54321) 2018-03-21 21:01:05
CC
#1
嗨,大家好~
 
自從上次用(偽)林克做了個觸壓的機關後,其中有個部份一直讓人很不滿意。
就是那隻雞只能用最簡單的方式來推動,如果移動到角落或牆邊,那這隻雞也就GG了。
 
詳情請看VCR:
【問題】如何讓物件觸發事件?(已解決!!)
 
所以就萌起了要製作可以推、也可以拉動的物件的念頭。
今天把它整理了一下跟大家分享,說不定有人可以派上用場~
另外也希望可以拋磚引玉,看看有沒有其他比較恰當的做法。畢竟自己摸索很容易就走歪了。XD
 
以下圖多注意!
 
期望的功能是這樣的:
按下鍵盤按鍵「A」時,讓主角開啟拉動模式,接著按向後的方向鍵(與面向相反的方向鍵),則拉動物件後退。
 
那就開始吧。
先來看一下這次會用到的開關和變數。後面會針對他們的編號來做使用。

 
首先把地圖畫一畫。聽說綠色對眼睛比較好。

 
開始地圖後,跟我們的萬能小狗對話,做好初始設定以及開啟掃描按鍵「A」是否被按下的一般劇情。

 
陣列的部分在VCR裡面有提過,這邊就不多說了~
跟前面VCR那次一樣,陣列要到專案儲存的位置,找「js」資料夾裡面的「rpg_managers.js」,開啟編輯,新增一行設定。
另外這次因為要用鍵盤上的「A」來觸發,所以「rpg_core.js」也要新增。

然後剛剛41號開關開啟的一般劇情大概長這個樣子。


 
在A鍵被按下時,分別針對主角與物件的對應位置做判定。
其中【物件在上方?】完整的腳本內容如下:
if (($gameMap.event($gameVariables.value(43)).x ==$gamePlayer.x) &&
($gamePlayer.y -($gameMap.event($gameVariables.value(43)).y) == 1) &&
($gamePlayer.direction() == 8)) {
$gameSwitches.setValue(43, true);
$gameSelfSwitches.setValue([$gameMap._mapId,$gameVariables.value(43), 'A'], true);
}
 
看起來有點亂有點複雜,但其實只是判定兩者的XY軸、以及主角的面向。
如果都符合【物件在上方】,也就是可以【往後拉】的情況,則將43號開關打開,並且開啟該物件的獨立開關A。
 
同理,44號、45號、46號物件分別對應【物件在下方】、【物件在左方】、【物件在右方】的情況。
 
然後就可以擺脫這個看起來很噁心的一般劇情囉!^O^
 
下一步是設定可以拉動的物件,因為這次的功能是要讓物件可以推也可以拉,所以第一頁還是一樣,讓主角貼近時可以推動它。

 
上下左右的狀況其實都差不多,就不多貼了。
中間有個47號開關【行李箱前進中?】,主要的用意是讓物件在移動──不論是推動或是拉動時,都可以避免再次觸發拉動的程序。
 
第二頁則是在主角按下「A鍵」、並且位置和面向都符合的情況下才會執行。


 
看起來也是輕鬆寫意,當主角按下後退的方向鍵,就可以開始拉動這物件了。
在最後判定一下「A鍵」是否持續被按著,按著就繼續拉,沒按著就把該關的東西關一關,回歸到最原始的狀態。
 
輕鬆簡單!ヽ(✿゚▽゚)ノ
 
錄個影片來看看效果。
 
不過這次來發文除了分享,也希望可以看到更多有趣或有效率的做法可以學習,尤其是我自己的作法在中間會需要跳到個別物件來設定移動,主要也是因為我不太懂「設置移動路線」應該如何以腳本的方式來表達。
可以轉換為腳本的話,就可以把變數帶入,也就可以丟到一般劇情那邊來統一處理了。
 
總之先這樣,來搞搞下一個系統。ᕕ ( ᐛ ) ᕗ

看較舊的 8 則留言

耶黑XDD: B9 2018-03-22 00:46

好,我明天晚上用,如果是拉事件的話,目前用出來的結果是:玩家先動再換事件移動,沒辦法達到你那個同時移動的效果,之前試了很久也是無解,明天再來試試看XDD

Isle: B10 2018-03-23 08:53

不要動引擎內建的腳本,更新後就沒了,你應該另外寫在一個Plusin裡

Isle: B11 2018-03-23 08:55

還有既然要用腳本就別放並行事件吧,寫Plugin效能會好些

YellowD: B12 2018-03-23 10:48

[GreenIsle:Isle]啊 原來這樣會被更新蓋過去嗎,之前還真的沒意識到這個問題

YellowD: B13 2018-03-23 10:50

不直接另外寫是因為有些部分我不知道要怎麼用純程式來表達,像是上面提到的物件的動作,這幾天也還在研究它

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】