热门停止并恢复OpenGL ES中的游戏循环?

时间:2014-06-23 11:14:24

标签: android opengl-es glsurfaceview

我正在开发一款小型安卓游戏。它使用游戏Activity来启动主循环,从而打开glSurfaceView。使用渲染器设置surfaceview。游戏按预期运行。

来自gameActivity的

onCreate方法:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    gameView = new GameView(this);
    setContentView(gameView);
}

GameView类:

public class GameView extends GLSurfaceView {
private GameRenderer renderer;

public GameView(Context context) {
    super(context);

    renderer = new GameRenderer();

    this.setRenderer(renderer);


}

我不确定如何正确结束游戏。一旦正确满足结束游戏的条件,我尝试从渲染器内部开始新的结束屏幕活动,这会导致应用程序崩溃。如何正确关闭此游戏循环?

1 个答案:

答案 0 :(得分:1)

您可以通过将渲染模式更改为此来暂停渲染:

GLSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

如果使用RENDERMODE_WHEN_DIRTY,表面只会在调用requestRender()时自行重绘

如果您想恢复渲染,请致电:

GLSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);

或者,您可以提供布尔标志,以防止在设置为false时进一步呈现。