在Android游戏中,主游戏循环应该放在哪里?

7

我正在尝试使用OpenGL在Android上编写游戏的框架。我想知道,我的主游戏循环代码应该放在哪里?

到目前为止,我最好的选择是Renderer.onDrawFrame(...)方法,这个方法似乎会在每一帧被调用,所以代码看起来像这样:

void onDrawFrame(GL10 gl) 
{
     preLoopActions();

     m_gameScene->onUpdate();
     m_gameScene->onRender(gl);

     postLoopActions();
}

有没有更好的方法?我不喜欢这种方法,因为1)我必须在一个地方混合更新和渲染,而安卓希望我只是渲染,2)这种方法似乎是从一个单独的“渲染线程”调用的,这增加了游戏的复杂性。

2个回答

2

将数学计算和绘图逻辑分开。您需要创建一个线程,在该线程中具有运行循环,在该循环中运行math()部分,然后在工作正常时调用render()部分,有一些技术可以控制循环的时间。


1

您是否考虑过使用像AndEngine这样的框架进行编程。它有一个被称为GameActivity的功能,可以让生活变得更加轻松。例子也很容易理解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接