2012-10-20 44 views
1

我一直在使用libgdx過去3周.. 我創建了兩個屏幕引用到遊戲:LibGdx - 在屏幕上顯示類需要幫助

public class Game extends Game { 

TitleScreen titleScreen; 
SplashScreen splashScreen; 

@Override 
public void create() { 
    // TODO Auto-generated method stub 
    titleScreen = new TitleScreen(this); 
    splashScreen = new SplashScreen(this); 
    setScreen(splashScreen); 

} 

}

public class SplashScreen implements Screen { 

Game game; 

public SplashScreen(Game game) { 
    // TODO Auto-generated constructor stub 
    this.game = game; 
    } 


@Override 
public void show() { 
    // TODO Auto-generated method stub 
} 

@Override 
public void hide() { 
    // TODO Auto-generated method stub 
} 

@Override 
public void render(float delta) { 
    // TODO Auto-generated method stub 
    Gdx.gl.glClearColor(0.5f, 1f, 1f, 1); 
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 

    if(Gdx.input.justTouched()){ 
     game.splashScreen.dispose(); 
     game.setScreen(game.titlescreen); 
    } 

} 

@Override 
public void resize(int width, int height) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void pause() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void resume() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void dispose() { 
    // TODO Auto-generated method stub 


} 

如何完全處理splashscreen?當我打電話給titlescreen班的game.setscreen(game.splashscreen)時,它恢復splashscreen;。我期待以設置一個新的splashscreen ..

+0

請更正代碼格式。 – vfcosta

回答

0

創建一個新的啓動畫面,你想從一開始就顯示啓動每次:

game.setScreen(new SplashScreen(game)); 
+0

感謝您的解決方案! – lovareth

+0

如果這是一個您打算頻繁返回的屏幕,這是非常糟糕的。屏幕是大型複雜的對象,實例化和垃圾收集不是你應該依賴的東西。你應該做的是在show()中設置核心設置邏輯,在每次切換到該屏幕時調用該邏輯,並且應該拆除並釋放hide()中的某些資源 – nhydock