不行了呀,IOS微信小游戏上物理实在顶不住了,大伙都咋搞的?

做物理效果的小游戏,能掉、能弹等等,几十个物体靠得比较紧时,ios能直接卡死,android则一点感觉都没有流畅的一b。还有一个月要上线,简化collider、尽量用Box、限制物理步长都做了,ios还是卡。物理步长又不能太低,否则物体运动会一卡一卡的。计算迭代次数甚至降到1。碰撞回调里能优化的也都优化了感觉,尽量避免计算、尽量不创建临时变量…… 然而ios并卵

可以搜索下 四叉树检测 试用一下

他能应用到我这个场景么?我遇到的瓶颈是ios上整体物理效果的模拟,比如几十个物体掉下来。

看了一圈,四叉树检测是优化大范围大量物体碰撞检测的,一般用于kinematic、static和dynamic之间,比如子弹是不是打到敌人。而我这里没多少碰撞检测,而是刚体的运动,比如50个小球同时扔下来后的真实物理运动。

50个不算多吧,你用什么IOS手机测试,具体消耗时间有没截图

iphoneX、iphoneXS。手机不在我这~ 最新的iphone据说还好,极端情况也没有卡到离谱

当物体密集的时候回尤为卡顿,分散时还好

密集时候,你想办法让他们尽早停下来休眠,应该有可以调整相应参数。
密集时候一动牵发全身,几何级数的检测修正处理

ios卡是顶不住太多刚体,我做laya项目遇到过,当时用ip6,ip7,ipx测试过,动态刚体配合球形碰撞器超过10个就掉帧严重,掉到40帧,超过30个掉帧到20帧以下。而且和刚体碰撞器类型有关,球形碰撞体运行效率是最高的,其次是立方体,最卡是网格碰撞器,有3个都很难跑动。如果把刚体设置为静态的或者把刚体的isKinematic属性设置为true,游戏会运行得很流畅。

我也想让它停下来~ 可是停不下来啊,都在那蹦的可嗨了~

我这全是动态物体,所以需要时dynamic,我这大量Box碰撞器,那我试试Circle有没有改善


尝试调整弹性摩擦,让他们尽早停下来

仅仅掉落弹起, 没有地面以外的碰撞, 那我觉得可以自己写.

有啊,互相碰撞:物体掉落,会被齿轮、武器等打飞、破坏,破坏后碎成碎片,碎片继续碎成更碎的碎片。物体间有碰撞,有各种反弹、传送带等物理效果,我反正自己写不出来T_T

worker

那确实不好搞

worker就不能用cocos自带物理了
需要手动引入box2d或其它物理引擎. 自己做物理引擎和节点之间的同步.

我之前就是单独把这个嵌入到webview, wkwebview支持jit

感觉他应该上微信小游戏,不支持jit , 无解

。。。。。抵制苹果

2赞