我开始使用 Libgdx 中的 Box2d 创建我的世界,并且必须为不同的游戏对象创建形状。我读过的教程说我应该在使用完形状后处理它们。
所以,我开始保留这样的引用资料:
private CircleShape circle;
private PolygonShape ground;
private PolygonShape wall;
private PolygonShape box;
//...
//(getters)
像这样处理我的对象:
@Override
public void dispose()
{
circle.dispose();
ground.dispose();
wall.dispose();
box.dispose();
world.dispose();
}
我决定将其更改为扩展列表,但问题出在我的代码中的其他地方,我在单击时添加主体,因此我需要允许从外部类访问某些形状。我可以创建额外的形状并允许访问我的列表,但我不喜欢创建一个巨大的一次性元素列表的想法。
解决方案是创建一个具有内部形状列表的 ShapeManager 对象。我可以处理这个对象,它会包装形状构造函数,让我返回一个已经存在的形状(如果它符合需要)。
但是,这个解决方案似乎太重了。为什么 Box2d(或 LibGDX)制作需要处理的形状对象? LibGDX 中是否已经包含了我所描述的类?有更好的解决方案吗?
最佳答案
定义好 body 后即可处置。
关于java - 如何正确处理box2d形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39186339/