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,没包含前的编译错误弄得我莫名其妙的

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值