天天看点

Tile-Based碰撞系统

最近工作在做一个碰撞系统,基于2D的计算3D渲染.

就类似那种魔兽争霸,全面战争之类游戏的.

核心代码是基于开源的Box2D的,

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

现在基本上除了类还是那个类以外,

数据结构,算法我全部都重写了.

本来开始做的时候发生了一些事情,

让我很心乱,

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

就想拿别人的东西来改,

但是如今来看,

还不如我自己写要好,

浪费我不少时间和精力.

不过总算是能跑了,

可是算法还是需要进一步的改进才可以,

效率上勉强还可以,

跑500个刚体还行,CPU一般在百分之四五十左右.

不过我希望能够降低到20-40之间会更好一些.

以下是截图:

图一,右边的忍者向x轴方向以匀速移动.

Tile-Based碰撞系统

图二 右边的忍者继续沿着x轴向左匀速运动,这时候已经和左边的忍者相撞,并且推动着左边的忍者向左运动.

Tile-Based碰撞系统

那块石头不是物理物体,而是放在世界的Vector3(0,0,0)位置的参照物

Tile-Based碰撞系统

继续改进算法=.=

客户端的接口也要做很大的变动.....

继续阅读