原文链接:http://blog.csdn.net/zhangxaochen/article/details/8011182
很明显,更多的点可以勾画出更精确的物体外形,在碰撞检测中可以获得更好的效果。但是另外一个担忧是,会不会因为点数太多导致性能下降?
因为box2d 要求每一个 fixture的shape必须为 凸多边形(convex),更多的点描出来的轮廓,需要用更多的凸多边形去拼接。
--------------------------------------------------------------
不多说,实验对比一下看看吧:【测试机:sky A780L,安兔兔跑分>6700,应该算高性能】
1. 比较少的点,大致轮廓:
运行效果:
=========================================================================================
2. 更多的点,更精确的外形:
运行截图:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1. 程序中开启了debugDraw,因此图片边缘偶尔多出来粉红色的棱角。
2. 两次运行都是加入了40个精灵。
可以看出,第一个运行截图里,程序保持在50帧/秒 左右,刷新比较流畅;缺点是“粉红棱角”比较明显,这意味着他们的碰撞检测不是那么精确。
而第二次运行的截图里,程序下降到了25帧左右,而且有时候还会降到十几帧,已经几乎不能忍了。。。虽然他的轮廓很精确。当然,如果只有少量的,比如20个精灵在里面,程序仍然可以保持 60FPS左右。
总结一下,应用的时候,应该综合考虑 对碰撞检测精确性的要求,以及场景中body的数量,选择更多或更少的点
原文链接:http://blog.csdn.net/zhangxaochen/article/details/8011182
{{OVER}}