2016-07-09 21 views
0
public abstract class Level implements Disposable { 
    Game game; 
    Stage stage; 

    ... 

    stage.addAction(sequence(delay(10), new Action() { 
     @Override 
     public boolean act(float delta) { 
      dispose(); 
      System.out.println("here"); 
      game.setScreen(new MainMenu(game)); 
      return false; 
     } 
    })); 

    ... 

    @Override 
    public void dispose() { 
     System.out.println("dispose called"); 
    } 

    ... 

} 

In diesem Codeabschnitt möchte ich die Overridden Dispose-Methode aufrufen. Es sagt here in der Befehlszeile wie erwartet. Allerdings heißt es nicht dispose called. Ich bin verwirrt, wie soll ich in dieser Situation anrufen?LibGDX - Methode wird nicht aufgerufen

Oder gibt es einen einfacheren Weg zu tun, was ich hier versuche?

+0

Bühne ist auch Einweg. Sie haben die Aktion auf der Bühne festgelegt, also könnte die Dispositionsmethode der Bühne aufgerufen werden, anstatt der Ebene. –

+0

Aber wenn ich ctrl drücke und auf 'dispose();' klicke, wird die überschriebene Methode angezeigt. –

Antwort

0

Okey ich fand es. Da es eine abstrakte Klasse war, habe ich die neue Klasse auf Level erweitert. Es hat seine eigene Entsorgungsmethode und ich habe super.dispose() nicht aufgerufen, so dass es nur eine leere Methode aufgerufen hat.