此頁面的Github

我的Github

展維隨筆 網頁暫存

davidhsu666.com主機有點問題,暫時使用這裡

著手將網站換成Hugo+github page

遊戲中的碰撞檢測.pdf

碰撞檢測的優化-四叉樹(Quadtree)

WayBack的暫時備份: WaybackMachine


Image

遊戲連結

Sourcecode

Image

目前進度

地圖編輯與讀取

透過json檔案生成對應的地圖物件,如動畫、碰撞、物件等

依照編輯時的圖層,建立對應的顯示順序

Image

攝影機、Debug

Image

Image

碰撞盒:多邊形碰撞與回饋

http://davidhsu666.com/archives/gamecollisiondetection/

透過分離軸定理,解決普通AABB碰撞檢測無法處裡的多邊形與圓形

建立自製碰撞函示庫,並透過最小穿透量來處理物體間的分離,將碰撞盒整合至物體中並加以應用

Image

Image

動態碰撞盒、敵人移動、事件觸發器

-透過動態碰撞盒處理揮砍的動作

-加入狀態切換管理,攻擊開始->攻擊中->攻擊結束

Image

Image

碰撞效能的優化

Quadtree_in_2d

如果每個物體之間都進行碰撞檢測,會消耗大量的效能,複雜度來到O(N^2)

例如: 兩物體在地圖的對角線,根本不會碰撞,但還是執行檢測

透過四叉樹(Quad Tree)來進行空間上的劃分

將複雜度降低至O(N log(N))

Image

Image

架構與後續規劃

Image