2016-08-27 87 views
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中?有更好的解決方案嗎?

回答

1

你可以在做出你的身體的定義後處置。