0
Box2d是否有一個引用計數器,用於在C++版本中自動移除未使用的主體及其裝置?C++ Box2d內存管理/垃圾回收
Box2d是否有一個引用計數器,用於在C++版本中自動移除未使用的主體及其裝置?C++ Box2d內存管理/垃圾回收
目前還不清楚你的意思是「未使用」......身體在世界中仍然存在,直到你打電話給DestroyBody。調用DestroyBody將釋放身體正在使用的記憶,以及它擁有的所有固定裝置和關節。查看Box2D手冊並搜索「內存」和「DestroyBody」。
當你刪除世界本身時,機體也將被釋放,在這種情況下,你不需要爲它們調用DestroyBody。
'未使用'我的意思是在該身體上的參考計數器是0.但似乎Box2D沒有引用計數。 (例如,cocos2d定義了autorelease對象,如果你不使用autorelease對象,它將被垃圾收集。) – Narek
不,沒有那樣的東西。雖然技術上你可以在你自己的類中包裝一個b2Body *,如果你想使用autopointer特性,並使析構函數調用DestroyBody,我不確定它是否會非常有用。一個物體的存在意味着世界上存在一個物理事物可以與其他物體發生碰撞和相互作用 - 當這些物體進入和離開你的世界時,你可能希望更好地控制它。我認爲最好有意識地致電DestroyBody去除它們。 – iforce2d