https://github.com/beadcaptain/beadcaptain.github.io
遊戲連結
目前進度
- 攝影機
- 動態碰撞盒
- 事件觸發器
- 自訂地圖存取
- Debug(圖層、碰撞層顯示)
地圖編輯與讀取
透過json檔案生成對應的地圖物件,如動畫、碰撞、物件等
依照編輯時的圖層,建立對應的顯示順序
攝影機、Debug
- 加入Debug功能方便測試
- 只顯示視線範圍內的物件
- 渲染物件的動態圖層顯示
- 可調整攝影機的追蹤範圍與目標
碰撞盒:多邊形碰撞與回饋
http://davidhsu666.com/archives/gamecollisiondetection/
透過分離軸定理,解決普通AABB碰撞檢測無法處裡的多邊形與圓形
建立自製碰撞函示庫,並透過最小穿透量來處理物體間的分離,將碰撞盒整合至物體中並加以應用
動態碰撞盒、敵人移動、事件觸發器
-透過動態碰撞盒處理揮砍的動作
-加入狀態切換管理,攻擊開始->攻擊中->攻擊結束
- 透過事件觸發器處理各式地圖事件
- 像是地圖上下坡,需要切換碰撞層,與NPC對話區域的觸發器,或是走斜坡時會被減速等等
碰撞效能的優化
如果每個物體之間都進行碰撞檢測,會消耗大量的效能,複雜度來到O(N^2)
例如: 兩物體在地圖的對角線,根本不會碰撞,但還是執行檢測
透過四叉樹(Quad Tree)來進行空間上的劃分
將複雜度降低至O(N log(N))
架構與後續規劃
- UI選單、Menu、功能列操作
- 對話方塊與對話事件(對話樹)
- 腳本編輯與腳本觸發器,如RPG遊戲中的串場事件
- 優化物件架構,方便修改
留言