我正在使用libgdx构建一个用于桌面/ android的小游戏。如果在桌面上运行,一切正常,但它在Android上有一个奇怪的问题。
当我从菜单屏幕切换到游戏屏幕时,我可以听到游戏画面的音轨,但画面不会改变。如果我点击屏幕,我会听到游戏的声音,但图片保持不变(菜单屏幕)。最重要的是,这不是每次都发生 - 有时候屏幕变化正确,如果确实如此,游戏会运行良好而没有减速......
渲染代码如下,我发现如果我摆脱网格渲染问题就会消失:
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
game.batch.setProjectionMatrix(camera.combined);
game.batch.begin();
game.batch.draw(UI.LevelScreenSkin.getRegion("LevelBackGround"), UI.BG_TEXTURE_OFFSET_X, UI.BG_TEXTURE_OFFSET_Y, UI.BG_TEXTURE_WIDTH, UI.BG_TEXTURE_HEIGHT);
game.batch.end();
MainStage.act();
MainStage.draw();
//get updated mesh data from blocks
updateGlobalMeshData(false);
setGlobalMeshData();
//enable blending
Gdx.gl.glEnable(GL10.GL_BLEND);
//render blocks
globalMesh.render(GL10.GL_TRIANGLES, 0, ThisLevel.globalMesh.getMaxIndices());
//render blocks' borders
//enable texture binding
Gdx.graphics.getGL10().glEnable(GL10.GL_TEXTURE_2D);
//render borders
borderTexture.bind();
globalBorderMesh.render(GL10.GL_TRIANGLES, 0, globalBorderMesh.getMaxIndices());
//disable texture binding and blending
Gdx.graphics.getGL10().glDisable(GL10.GL_TEXTURE_2D);
Gdx.gl.glDisable(GL10.GL_BLEND);
第二个网格有大约2000个顶点,所以首先我想也许我的设备无法处理这些顶点,但在游戏开始的情况下,一切运行良好,渲染没有任何缓慢。
答案 0 :(得分:0)
当我切换到OpenGL 2时,问题得到了解决 - 也许这是一个在设备上具有向后兼容性的故障......