0

私は自分のアプリをあるシーンから別のシーンに変えようとしています。私がやっていることはonLoadScene()です私はそれをシーンを持つメソッドに向けます、そして私がやろうとしていることは別のメソッドにある別のシーンを設定することです...しかし私が得るのは最初のシーンからのスプライトがスタックしていますスクリーン !

同じクラスのあるシーンから別のシーンに変更する方法を教えてくれる人がいますか。

これが私のコードです:

@Override
public Scene onLoadScene() {
    return splashGame();
}

private Scene splashGame(){
    final Scene sceneGameSplash = new Scene();

    sceneGameSplash.setBackgroundEnabled(false);

    System.out.println("pls work 1");
    final Sprite splashSprite = new Sprite(0,0, this.gameSplashScreenRegion);

    sceneGameSplash.registerUpdateHandler(new TimerHandler(3f, true, new ITimerCallback() {
          @Override
          public void onTimePassed(final TimerHandler pTimerHandler) {
            sceneGameSplash.unregisterUpdateHandler(pTimerHandler);

            System.out.println("pls work");


            splashUnjum();
          }
    }));

    splashSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    splashSprite.setHeight(display.getHeight());
    splashSprite.setWidth(display.getWidth());

    sceneGameSplash.attachChild(splashSprite);


    return sceneGameSplash;

}

private Scene splashUnjum(){

    final Scene sceneUnjumSplash = new Scene();
    this.mEngine.setScene(sceneUnjumSplash);

     System.out.println("pls work 2");
    final Sprite splashUnjumSprite = new Sprite(0,0,this.gamevedaSplashScreenRegion);
    splashUnjumbleSprite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    splashUnjumSprite.setHeight(display.getHeight());
    splashUnjumSprite.setWidth(display.getWidth());

    sceneUnjumSplash.attachChild(splashUnjumSprite);

    sceneUnjumSplash.registerUpdateHandler(new TimerHandler(3f, true, new ITimerCallback() {
        @Override
        public void onTimePassed(final TimerHandler pTimerHandler) {
            sceneUnjumSplash.unregisterUpdateHandler(pTimerHandler);

            System.out.println("pls work yo");

            mainMenu();
        }
    }));


    return sceneUnjumSplash;

}
4

1 に答える 1

1

これが問題かどうかはわかりませんが、splashUnjum() からこの行を削除する必要があると思います

this.mEngine.setScene(sceneUnjumSplash);

SplashUnjum() への呼び出しを次のように置き換えます。

this.mEngine.setScene(splashUnjum());

あなたがしなければならないもう1つのことは、変更がupdateThreadで発生することを保証することです

于 2012-04-11T16:26:42.030 に答える