2013-03-28 1 views
0

게임을 제어하는 ​​장면을 확장하는 클래스가 있습니다. 내 ContactListener에서 :AndEngine - 씬 클래스의 바디를 파기 하시겠습니까?

if (x1.getBody().getUserData().equals("wall") 
         && x2.getBody().getUserData().equals("arrow")) { 
        System.out.println("arrow is x2"); 
       } 

화살표가 x1과 충돌하면 화살표 바디가 파괴되기를 원합니다. 충돌하지만 ContactListener에서 파기 할 수는 없습니다. 이 클래스는 장면을 확장하기 때문에 어떻게하면 업데이트 또는 실행 메소드를 얻을 수 있습니까 (다른 모든 포스트에서는 BaseGameActivity를 확장 한 클래스가 있었음), 그렇지 않으면 x2 바디를 파괴 할 수 있습니까?

답변

2

해결책이 있습니다.

장면 패스를 만들 때 BaseGameActivity 참조가 전달됩니다. 다음과 같이

new GameScene(MainActivity mainAcivity); 

그런 다음 box2d 개체를 제거한 후에이 참조를 사용해야합니다.

mainActivity.runOnUpdateThread(){ 
    public void run(){ 
      mPhysicsWorld.destroyBody(arrowBody); 
    } 
} 
관련 문제