原文連結: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}}