我有一个扩展场景的类,它控制游戏。在我的ContactListener中,我有:
if (x1.getBody().getUserData().equals("wall")
&& x2.getBody().getUserData().equals("arrow")) {
System.out.println("arrow is x2");
}
当箭头,x2与墙壁碰撞时,x1,我希望箭头体被摧毁。它们发生碰撞,但我当然无法从ContactListener中销毁它。由于这个类扩展了场景,我怎么能在其中获得更新或运行方法(我在其上看到的所有其他帖子都有扩展BaseGameActivity的类),否则会破坏x2主体?
答案 0 :(得分:2)
我有一个解决方案。
创建场景时,将BaseGameActivity引用传递给它。如下所示
new GameScene(MainActivity mainAcivity);
然后在删除box2d对象后,您必须使用此引用。
mainActivity.runOnUpdateThread(){
public void run(){
mPhysicsWorld.destroyBody(arrowBody);
}
}