2013-03-28 92 views
0

我有一個擴展場景的類,它控制着遊戲。在我的ContactListener中,我有:AndEngine - 從場景課中摧毀身體?

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

當箭頭x2與牆壁x1碰撞時,我希望箭頭體被銷燬。他們碰撞,但我當然不能從ContactListener中銷燬它。既然這個類擴展了場景,我怎麼可能得到一個更新或者運行方法(我見過的所有其他帖子都有擴展了BaseGameActivity的類),否則就會銷燬x2體?

回答

2

我有你的解決方案。

當你創建一個場景時,通過一個BaseGameActivity引用它。像下面這樣

new GameScene(MainActivity mainAcivity); 

然後刪除box2d對象後,您必須使用此引用。

mainActivity.runOnUpdateThread(){ 
    public void run(){ 
      mPhysicsWorld.destroyBody(arrowBody); 
    } 
}