【精品插件系列】高性能碰撞系统

前沿

这些年前端的大火大热,让js语言也水涨船高变得炙手可热,但js的计算性能一直以来都遭人诟病,在手机上表现更是糟糕,尤其在碰撞检测方面会消耗过高的cpu而导致卡顿。

最近做弹幕游戏所以碰到了这方面的问题,在一顿百度之后大概有了优化方向:四叉树
关于四叉树是什么可参考百度百科传送门
如何和cocos的碰撞系统相结合?参考大佬[白玉无冰]的文章传送门

但是这样的cocos碰撞系统和四叉树相结合比较生硬,耦合度过高,不容易扩展,最重要的是cocos驱动帧率是在代码中写死的不能降低帧率,想要修改需要定制引擎。操作比较繁琐而且不易升级版本,在此情况下萌生了自己写一套碰撞系统的想法。说干就干,为了提升碰撞的极限性能,熬了几个通宵掉了三绰头发之后。系统的性能和易用性都让我满意了。

性能测试

我的环境:win7 i59400F AMD RX560 chrome
程序功能:碰撞到的物体改成绿色反之灰色

数量:2000;

cocos 68ms 16fps

my 38ms 33fps

my+tree 7ms 58fps

当开启四叉树时候,性能会是个质的飞跃,实测4000个物体消耗才32ms左右
这是测试地址大家可以自行测试验证。测试地址

插件特点

1.可视化配置参数,无需一句代码

2.支持四叉树

3.驱动函数可外部调用,以满足不同驱动频率设置,来提升性能

3.单独设置碰撞间隔,减少不必要的碰撞以提升性能

5.碰撞分组动态删除添加,支持自定义参数,单独绘制等特性

使用方法

1.安装好之后【扩展】->【碰撞系统】->【导入代码】导入代码

2.在需要的两个组件上添加碰撞组件lq_collide,设置装备形状为rect,类别为defalut

基本功能就完成啦,现在运行程序就能看到控制台信息啦

物体1 collide
物体2 collide

插件链接:商店地址
最后有任何使用问题可叫我qq:243011068

39赞

感谢大佬分享,很实用的插件!

你这个性能是真不错啊

是啊,掉了不少头发换来的【手动狗头】

支持圆形和多边形吗

支持 12345

小游戏平台应该也可以用吧

支持cocos 3d吗

全平台支持,3.0版本正在支持中

太强了,支持一下!

看效果很强呀,兄弟你这个测试过全平台吗?支持不支持多边形配置?

:+1:
:+1:
强~ 点赞!

测过支持全平台的,多边形也支持,不过编辑体验还需要优化。

1赞

请问碰撞检测用的是cocos的碰撞系统吗

项目用cocos的碰撞系统都已经完成了,但是性能堪忧,不知道使用这个插件,修改的工作量大吗?能获取aabb吗

不是,自己写的

工作量应该还好,只需在把cocos挂boxcollide的地方换成挂lqcollide,collide里有个world_rect应该类似aabb

订单创建失败,买不了

@jare 已经好几个人和我反应买不了【论坛表情咋用不了】

可以购买,就是要到订单管理里去点击付款