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 に答える