[遊戲製作進度] [大型專案:BK MOD] ~EP.02~ 自定義遊戲地圖編輯器與2D物理系統架構




  繼前回的說明文,這回小弟將這個地圖編輯器加入了更多的功能(ΦωΦ)。前一次的說明可以參考以下的文章:




上一篇:
[遊戲製作進度] [大型專案:BK MOD] ~EP.01~ 自定義遊戲地圖編輯器的C#寫法淺談

下一篇:
[遊戲製作進度] [大型專案:BK MOD] ~EP.03~ 各種哩哩摳摳的功能陸續上菜嘍



遊戲載點:

遊戲名稱:BK-MOD(V0.1.09)
遊戲類型:橫向卷軸動作遊戲
發表日期:2024/10/08

遊戲雛型下載點:
https://drive.google.com/file/d/1OamQtUduZo45rS_ZEUS6mhnlNRLknV8Z




  這次我們就不糾結在C#的寫法了(因為太多要講了,乾脆就不講了XD),而是在功能的實現。如果您還是想知道C#的寫法怎麼寫,除了諮詢ChatGPT,也可以寫信給小弟(hcyang1227@gmail),小弟可以跟您分享這數百MB的原始檔喔~畢竟我也沒想說要靠這個專案賺錢,可以分享成果跟寫法就很開心了♪(^∇^*)






首先是地圖編輯器的部分。這次完成了幾個功能:
  1. 對應地圖的各種圖片(對的,就是美工啦,可是小弟真的很需要美工嗚嗚嗚)
  2. 畫面左邊會有小小的sprite map以及要生成的地圖編輯長寬等設定
    按滑鼠右鍵可以擷取想要畫的platfrom圖樣。
    按Num+,Num-可以增減要畫的圖樣sprite號碼。
    地圖編輯可以用slider拖拉或是在欄位輸入長、寬、原點位置、方格長等設定。
    為了避免編輯者設定過多的長寬導致執行緩慢,小弟設定上限不得超過50000個方格。
  3. 畫面右邊為主要編輯區域
    按滑鼠左鍵可以畫platfrom圖樣。
    按Ctrl+滑鼠左鍵可以畫出下一個sprite的platfrom圖樣。
    按Ctrl+滑鼠右鍵可以畫出上一個sprite的platfrom圖樣。
  4. 復原與重做的功能
    按Ctrl+Z可以復原一個步驟。
    按Ctrl+Y可以重做一個步驟。
  5. 可以一次選擇多個圖樣並繪圖
    按A,D增減x方向上的選擇圖樣
    按W,S增減y方向上的選擇圖樣
  6. 存檔功能與讀檔功能,以及編輯器的彈跳視窗
    按Ctrl+S或是M可以存檔,並且輸入檔名,檢查是否輸入非法字元等等。
    按Ctrl+L或是N可以存檔,並且輸入檔名,檢查是否輸入非法字元,檔案有無存在等等。



  小弟當初在這邊也踩了不少坑,因為在做成遊戲執行檔時,EditorUtility(開啟檔案\存儲檔案\警示的彈跳視窗)是不能匯出的,所以彈跳視窗全部都要自己設計。您可能會說,就using Windows Form就好啦,不,那也是另一個坑。新版的Unity已經不能完美支援.NET 2.0的Windows Form視窗介面了(現在只支援.NET 2.1,即便他們都是這麼老舊),您必須回到舊版的Unity編輯。但是小弟都已經用新版了、回到舊版等於我要把所有程式碼跟內容移植到舊版去(舊版肯定不能向上相容的),所以只好硬著頭皮自己做遊戲畫面內的"假彈跳視窗"(對,不是另外開一個視窗的彈跳視窗)(′Д`)



  接著,小弟開始將Unity強大的物理引擎導入,根據platfrom圖樣畫出對應的collider(碰撞判定區域),數十種的collider也是做得挺累人的。不需要受地心引力影響的物件就只加入2D collider,受地心引力影響的物件則加入2D collider與2D rigidbody。最後,設定2D Material的磨擦係數與彈力,並添加到上述的物件,便可以模擬出物件反彈或是慢慢停下等效果。剩下的複雜的物理運算就交給Unity去做,成果也很讓人滿意。



  最後,小弟移植以前所做的「拯救貪吃老人大作戰」的藍色史萊姆(SlimeBlue),幫史萊姆加上物理引擎,想方設法將這個小東西的遲滯係數跟摩擦力設定高一些,做了史萊姆會抖動的Animation,以及牠的AI策略(timer降成0時進行走動\停下\跳躍等動作)。雖然還沒有加入異常狀態,不過大體上已經完成可以自己動的藍色史萊姆了,開心。



  其他沒辦法用言語表達的部分,就由以下影片內容來說明吧~



目前進度展示影片






  文章的最後,也誠徵對這個大型專案開發有興趣的朋友,無論您想做美工、想設計關卡、想寫程式、想做企劃,都歡迎聯絡小弟喔!有想要贊助或推廣的朋友當然也歡迎~不過,因為是做興趣的,沒辦法支持薪水(小弟自己也是吃人頭路...),還請多多見諒...இдஇ

沒有留言:

張貼留言