Android libgdx中屏幕之间的屏幕闪烁转换
我所有的屏幕都按预期工作,除了一个屏幕调用另一个屏幕时出现闪烁。例如,从我的主屏幕调用StoreScreen,但这会在所有屏幕上发生 这是我的主屏幕显示、渲染和调用另一个屏幕的按钮Android libgdx中屏幕之间的屏幕闪烁转换,android,libgdx,Android,Libgdx,我所有的屏幕都按预期工作,除了一个屏幕调用另一个屏幕时出现闪烁。例如,从我的主屏幕调用StoreScreen,但这会在所有屏幕上发生 这是我的主屏幕显示、渲染和调用另一个屏幕的按钮 public StoreScreen(TiltorGame tiltorGame) { game = tiltorGame; w = 800; h = 480; shapeDebugger = new ShapeRenderer(); } @Override public v
public StoreScreen(TiltorGame tiltorGame) {
game = tiltorGame;
w = 800;
h = 480;
shapeDebugger = new ShapeRenderer();
}
@Override
public void show() {
camera = new OrthographicCamera();
camera.setToOrtho(false, w, h);
FitViewport viewp = new FitViewport(w, h, camera); // change this to
// your needed
// viewport
stage = new Stage(viewp); // also pass the singelton batch here. Try
// just to use onee batch to have a good
// performance.
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
font.setColor(0.5f, 0.4f, 0, 1); // Brown is an underated Colour
shapeDebugger = new ShapeRenderer();
table1 = new Table();
table2 = new Table();
table3 = new Table();
drawTable1();
}
//
//
这里还有商店屏幕展示
@Override
public void show() {
camera = new OrthographicCamera();
camera.setToOrtho(false, w, h);
FitViewport viewp = new FitViewport(w, h, camera); // change this to
// your needed
// viewport
stage = new Stage(viewp); // also pass the singelton batch here. Try
// just to use onee batch to have a good
// performance.
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
font.setColor(0.5f, 0.4f, 0, 1); // Brown is an underated Colour
table1 = new Table();
drawButtons();
}
我认为这是因为每次都在show()函数中创建一个新的摄影机和stage,而不是在构造函数调用中初始化这些变量。位图字体当然是一种本机资源,必须显式地dispose()'d,因此我确信有更好的方法来实现这一点代码>在渲染方法内部。您不需要在每个帧中将表添加到舞台。
TextButton buttonStore = new TextButton("Store", skin, "default");
buttonStore.setWidth(400f);
buttonStore.setHeight(75f);
buttonStore.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
game.setScreen(new StoreScreen(game));
}
});
table1.add(buttonStore);
table1.row();
@Override
public void show() {
camera = new OrthographicCamera();
camera.setToOrtho(false, w, h);
FitViewport viewp = new FitViewport(w, h, camera); // change this to
// your needed
// viewport
stage = new Stage(viewp); // also pass the singelton batch here. Try
// just to use onee batch to have a good
// performance.
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
font.setColor(0.5f, 0.4f, 0, 1); // Brown is an underated Colour
table1 = new Table();
drawButtons();
}