創作內容

5 GP

RPG Maker MV- 距離判定與追蹤玩家的效果

作者:Daniel│2021-02-13 14:33:27│巴幣:10│人氣:863
上篇分享事件跟隨有提到要講 "絕對值" 這件事,於是我透過最近製作的"金色暴龍化石"來講解。基本上,就是把玩家與事件的座標進行相減,再透過絕對值轉換得到變數,當作是判斷事件偵測距離的依據。


當然,這方面的plugin已經有了 : YEP_EventChasePlayer ( https://youtu.be/oIQxbBS4tpo ),看起來很方便、很強大~ 嗯...那這篇就當作是我嘗試要做到類似效果的心得、紀錄吧 ! 目前,我使用的偵測的方式分為兩種 :
1. 敵我X、Y相減後絕對值 (後面簡稱差距) 的總和,偵測範圍呈現正菱形。
2. 先判斷X差距,再判斷Y差距,偵測範圍呈現矩形正方形 ;
若想以事件或主角的方向產生範圍,則X或Y值直接用相減之後的值來判定。
這些形狀不免想到戰略遊戲和仙境傳說的技能效果範圍~ 照理來說透過其他算式,偵測範圍應該還能是圓形或橢圓形,不過目前沒有進行測試就不贅述。20210215更新

同上一篇內容,關於時常要偵測數值、判斷某個事件行為的工作,我會做一個自動處理的事件。座標範圍方面,我執行的內容是 :
1. 取得主角X座標值
2. 取得主角Y座標值
3. 取得化石X座標值
4. 取得化石Y座標值
5. 運算X差距 Math.abs($gameVariables.value(3)-$gameVariables.value(1))
6. 運算Y差距 Math.abs($gameVariables.value(4)-$gameVariables.value(2))
7. 運算差距總和 Math.abs($gameVariables.value(5)+$gameVariables.value(6))
20210215更新
8. 主角&事件距離(取整數) Math.sqrt(Math.pow(($gameVariables.value(3)-$gameVariables.
value(1)),2)+Math.pow(($gameVariables.value(4)-$gameVariables.value(2)),2))

項目1~4可以用事件內建的功能 "遊戲進度>>控制變數" 來設置座標值當作變數。
項目5~7我用控制變數裡的腳本,打上JS程式碼,以第5項為例 :
Math.abs($gameVariables.value(3)-$gameVariables.value(1))
意思是把變數項目3的值,減去項目1的值,將運算結果絕對值。
Math.abs() 是絕對值運算 ; $gameVariables.value(編號) 是某某變數的數值。

20210215更新
因為太好奇了,所以就去試圓形的偵測範圍 (畢氏定理,求兩點距離),JS語法為 :
Math.sqrt(
Math.pow(($gameVariables.value(3)-$gameVariables.value(1)),2)+
Math.pow(($gameVariables.value(4)-$gameVariables.value(2)),2))

Math.sqrt(數值) 表示開根號,Math.pow(數值,次方數)
(圓形的偵測距離分佈)

(化石的中心點以腳為主,作為轉身的軸心)

化石本身作為 移動與圖片動畫 用途,總共設置了13個模式(遊戲開始、死亡R.L.、站立R.L.、移動R.L.、攻擊R.L.、被攻擊R.L.、轉身R.L.)。至於尋找、追蹤、攻擊、死亡等行為模式,則設置自動事件,根據 敵我距離、化石HP變數 來操控化石。

在攻擊方面,由於化石頭部位置不等於本身的中心點,若想以頭為位置觸發攻擊,無法用 "事件接觸" 來執行。因此我就用變數來進行判斷 :
1. 取得主角、化石的座標,化石的方向 (只判斷左、右)。
2. 根據化石的方向,判斷主角座標是否在 (以化石座標去加減變數的) 攻擊位置,例如 :
判斷是否  Y差距= 0 >>
判斷是否 化石向右 >>
判斷是否 玩家X座標 = 化石X+1...以此類推。
3. 若都符合條件,則化石事件切換成攻擊模式 ; 反之則繼續以追蹤模式 (自主移動>>接近)
靠近玩家。

以下是尋找模式的行為模式。

如上,邏輯低下如我光是敘述攻擊如何判斷,用一堆文字表示就很厭世了...常常弄到一半就分心去看網頁... 後來,還是藉由畫出流程圖,才順利弄完化石行為的判定。更何況我還有弄主角與礦車的行為模式,真的是很難受...攻擊招式? 還是算了吧 ! 下次再研究...

(化石的尋找模式流程圖,光是這三個判段我前面就厭世+遊戲測試了好多時間... 畫出來後馬上就會弄事件了。向前一步是因為化石無法面向上、下,於是需要特別走到主角的側邊再接近主角。)

更多細節,歡迎大家到steam工作坊裡面,訂閱載入本專案~ 感謝 !


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5069421
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:RPG Maker MV|RPG 製作大師 MV

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

5喜歡★clc212 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:RPG Maker MV... 後一篇:RPG Maker MV...

追蹤私訊切換新版閱覽

作品資料夾

mine0rain天氣
今天原本想說不穿外套出門,結果今天冷到kaboom看更多我要大聲說昨天20:50


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

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