2016-08-27 3 views
1

Libgdx에서 Box2d로 내 세계를 만들기 시작했고 다른 게임 개체에 대한 모양을 만들어야합니다. 내가 읽은 튜토리얼은 내가 그들을 사용할 때 내 셰이프를 처리해야한다고 말했다.box2d 도형을 올바르게 처리하는 방법은 무엇입니까?

@Override 
public void dispose() 
{ 
    circle.dispose(); 
    ground.dispose(); 
    wall.dispose(); 
    box.dispose(); 
    world.dispose(); 
} 

내가 확장을 위해 목록으로 변경하기로 결정하지만 문제는 다른 곳에있다 : 그런 내 개체를

private CircleShape circle; 
private PolygonShape ground; 
private PolygonShape wall; 
private PolygonShape box; 

//... 

//(getters) 

을 그리고 처분 :

그래서, 나는 그런 참조를 유지 시작 내 코드에서는 클릭시 시체를 추가하므로 외부 클래스의 일부 셰이프에 액세스 할 수 있어야합니다. 나는 여분의 모양을 만들고 내 목록에 액세스 할 수 있지만 일회용 개체의 거대한 목록을 만드는 아이디어를 좋아하지 않습니다.

해결 방법은 모양의 내부 목록이있는 ShapeManager 개체를 만드는 것입니다. 이 객체를 처분 할 수 있고 필요에 따라 기존 모양을 반환하도록 셰이프 생성자를 래핑합니다.

그러나이 솔루션은 너무 무거워 보입니다. Box2d (또는 LibGDX)가 처형해야하는 도형 객체를 만든 이유는 무엇입니까? LibGDX에 이미 포함되어있는 것처럼 수업이 있습니까? 더 나은 해결책이 있습니까?

답변

1

신체 정의를 마친 후에 처분 할 수 있습니다.

관련 문제