0

我有一个扩展场景的类,它控制游戏。在我的 ContactListener 中,我有:

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

当箭头 x2 与墙 x1 碰撞时,我希望箭体被破坏。它们发生碰撞,但我当然不能从 ContactListener 中破坏它。由于这个类扩展了场景,我怎么能在其中获得更新或运行方法(我在此看到的所有其他帖子都有扩展 BaseGameActivity 的类),或者以其他方式破坏 x2 主体?

4

1 回答 1

2

我有一个解决方案给你。

创建场景时,将 BaseGameActivity 引用传递给它。像下面这样

new GameScene(MainActivity mainAcivity);

然后在删除 box2d 对象后,您必须使用此参考。

mainActivity.runOnUpdateThread(){  
    public void run(){
          mPhysicsWorld.destroyBody(arrowBody);
    }
}
于 2013-03-30T14:59:20.417 回答