3

我正在制作基于 OpenGL 2.0 的 Android 游戏。它只是一个主要的活动类,渲染器类,其中所有内容都在 onDrawFrame 和 myGLSurfaceView 中运行,其中包含触摸事件。和现在一样好用。

问题是 - 我应该如何继续制作开始屏幕和进一步的开始菜单。所以首先我想显示一个标题屏幕,然后触摸它应该运行游戏。问题是我不知道应该怎么做 - 我正在考虑这个选项:

  1. 开始时,我可以在带有标题屏幕的 onDrawFrame 中绘制一个平面纹理矩形,触摸后它将显示游戏的其余部分并隐藏平铺屏幕。这很容易做到,但我有一种感觉,它不应该这样做。

  2. 我考虑过单独的活动 - 每个活动都运行单独的渲染器和单独的 GLSurfaceViews - 这样一个将关闭,另一个将启动。但我不能这样做——我的意思是我不能从 MyGLSurfaceView onTouch 方法调用 MyActivity 类来启动另一个活动,我也不能从 MyGLSurfaceView 启动另一个活动,因为 getApplicationContext 在那里不起作用。我试过这个:

    Intent intent = new Intent(getApplicationContext(), NewGameActivity.class); 开始活动(意图);而且我什至不知道这是否是正确的做法 - 开始新的活动,新的 GLSurvaceView 和渲染器,关闭旧的?

  3. 我还考虑使用带有 2d 画布的启动活动来绘制标题屏幕,然后在触摸后关闭它并运行 OpenGL 活动?

或者也许应该有另一种方法?请给我任何建议:)

4

1 回答 1

1

我更喜欢选项 1: - 启动画面应该在 opengl 中完成 - 游戏应该有 1 个全屏 Activity。- 支持单一方向(纵向或横向),避免重新创建活动

为什么?- 这允许您的游戏更快地创建 GLSurfaceView 并在显示初始屏幕时执行一些资源加载。您还可以在启动画面中添加进度条。- 尝试在 opengl 中完成所有操作,以便我们可以轻松地将游戏移植到其他平台。

于 2013-03-08T20:02:02.157 回答