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