天天看點

Tile-Based碰撞系統

最近工作在做一個碰撞系統,基于2D的計算3D渲染.

就類似那種魔獸争霸,全面戰争之類遊戲的.

核心代碼是基于開源的Box2D的,

但是事實上并不是很适用.

現在基本上除了類還是那個類以外,

資料結構,算法我全部都重寫了.

本來開始做的時候發生了一些事情,

讓我很心亂,

根本沒有信心可以做好事情,

就想拿别人的東西來改,

但是如今來看,

還不如我自己寫要好,

浪費我不少時間和精力.

不過總算是能跑了,

可是算法還是需要進一步的改進才可以,

效率上勉強還可以,

跑500個剛體還行,CPU一般在百分之四五十左右.

不過我希望能夠降低到20-40之間會更好一些.

以下是截圖:

圖一,右邊的忍者向x軸方向以勻速移動.

Tile-Based碰撞系統

圖二 右邊的忍者繼續沿着x軸向左勻速運動,這時候已經和左邊的忍者相撞,并且推動着左邊的忍者向左運動.

Tile-Based碰撞系統

那塊石頭不是實體物體,而是放在世界的Vector3(0,0,0)位置的參照物

Tile-Based碰撞系統

繼續改進算法=.=

用戶端的接口也要做很大的變動.....

繼續閱讀