`
逍遥一狂
  • 浏览: 188630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

2D游戏凸多边形碰撞检测,分离轴定理算法源码

阅读更多

更新:修改了一个严重bug(算法错误),增加了多边形和圆形碰撞,增加了正矩形和圆形碰撞

 

应用场景:2D游戏凸多边形碰撞,比像素碰撞精确度低点,比方框碰精确度要高。

 

限制条件:2D。不能用于凹多边形,凹多边形得拆分成凸多边形或者三角形来做。运动速度很快了会有穿越效果。不带任何物理,如果需要反弹等等物理效果,就必须上物理引擎了。

 

最佳实践:最好能用盒子先检测一下然后再用分离轴来做碰撞碰撞。否则屏幕上精灵一多还是挺费电的。

 

参考文档

http://www.codeproject.com/KB/GDI-plus/PolygonCollision.aspx

 

参考文档中的代码是ActionScript的,我移植成C99的,附件的包是Xcode项目,不过C源代码可以单提出来用于任何支持C的设备

 

 

C99标准里只有_Bool,没有bool,需要包含头文件<stdbool.h>才可以用bool, true, false,没包含前的编译错误弄得我莫名其妙的

 

还有大家直接用的话最好先充分测试。这个代码写好了只测试了几个例子。如果有命名冲突,得自己搞定,呵呵。

 

分享到:
评论
1 楼 Hioln 2014-03-18  
请问下博主,修改的那个严重bug是什么,可以描述下吗?

相关推荐

Global site tag (gtag.js) - Google Analytics