我一直在尝试使用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方法调用和处理更新方法有任何建议?我认为这将涉及生成第二个调用update的线程,但我不知道如何保证它与onDrawFrame方法正确同步。有没有人对如何处理这个有任何建议?
答案 0 :(得分:0)
onDrawFrame()将被Android调用。只需将您的游戏逻辑放入该方法即可。你不应该使用另一个线程来做这件事,因为你会遇到游戏逻辑和渲染之间的同步问题。