【发布时间】:2017-02-03 07:16:18
【问题描述】:
我是安卓游戏的开发者。
我创建了一个 GLSurfaceView 并在 OnDrawFrame(GL10 gl) 中绘制了一些东西 如下所示
void OnDrawFrame(GL10 gl)
{
frame_limit_wait();
game_logic();
draw_game();
}
一切都很好,但奇怪的是,绘制n帧时(发生在GC_EXPLICIT/paused 92ms)会导致游戏有点暂停,在应用程序中还可以,但在流畅的游戏中不是。
原来我是用SurfaceView和Thread更新的游戏,运行流畅。
如果在 draw_game() 下方添加一行,例如“system.gc()”,它似乎可以工作,但我感觉有点慢。 与其他游戏引擎相比,我的游戏结局运行缓慢。
如何解决延迟问题?
编辑:我已经解决了这个问题。 只需初始化一次原生 Float Buffer,然后使用 put 和 position(0) 修改 Buffer 内容。
【问题讨论】: