我一直在尝试使用http://www.jpct.net/创建一个 android 3D 游戏,它使用 opengl 轻松渲染 3D 图形。
我的问题是如何使用 3D 框架为游戏状态创建更新方法?
我知道 Android Activity 类有这些涉及使用 glsurface 视图的命令:
protected void onCreate(Bundle savedInstanceState) {
}
@Override
protected void onPause() {
}
@Override
protected void onResume() {
}
@Override
protected void onStop() {
}
public boolean onTouchEvent(MotionEvent me) {
}
那么 GLSurfaceView.Renderer 类就有这些方法了。
class MyRenderer implements GLSurfaceView.Renderer {
public MyRenderer() {
}
public void onSurfaceChanged(GL10 gl, int w, int h) {
}
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}
public void onDrawFrame(GL10 gl) {
}
}
虽然我可以使用 jpct 教程来绘制图像、响应它们并计算帧速率,但它不会调用更新方法或有办法确保接近恒定的帧速率,因为它处理 onTouchEvent 中的用户输入检查方法,而我的游戏在不触摸屏幕时需要更新。
有人对如何确保使用 onDrawFrame 方法调用和处理更新方法有任何建议吗?我认为这将涉及生成第二个调用更新的线程,但我不知道如何保证它与 onDrawFrame 方法正确同步。有人对如何处理这个有任何建议吗?