1
我開始在Libgdx中用Box2d創建我的世界,我必須爲不同的遊戲對象創建形狀。我讀過的教程說,當我完成使用後,我應該處理自己的形狀。如何正確處理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();
}
我決定把這裏改爲列表擴張,但問題是其他地方在我的代碼中,我點擊添加了body,所以我需要讓外部類訪問某些形狀。我可以創建額外的形狀並允許訪問我的列表,但我不喜歡創建一個可丟棄對象的巨大列表。
解決方案是創建一個ShapeManager對象,該對象具有形狀的內部列表。我可以處理這個對象,它會包裝形狀構造函數,讓我返回已經存在的形狀,如果它符合需要的話。
但是,這個解決方案看起來太重了。爲什麼Box2d(或LibGDX)製作需要處理的形狀對象?有沒有像我描述過的類已經包含在LibGDX中?有更好的解決方案嗎?