如何在Android游戏中调节帧率?

时间:2012-07-18 02:48:30

标签: android frame-rate thread-sleep

我在android上创建了一个简单的游戏,在主游戏循环中有基本的updatePhysics()和onDraw()。最初,我没有放任何东西来保持一致的帧率,所以它会无限循环而不会睡觉。但经过一些研究后,我发现调节它可能会更好,以便帧速率保持一致。所以我把Thread.sleep()放进去让它以大约30 fps的速度运行。这是代码:

if(!h.getSurface().isValid())
    continue;
synchronized(h){
    startTime = System.currentTimeMillis();
    if(state == STATE_GAME){
        updatePhysics();
    }
    onDraw();
    endTime = System.currentTimeMillis();
    try{
    Thread.sleep(WAIT_TIME - (endTime - startTime));
    }catch(Exception e){}
}

我发现我的游戏变得非常不稳定,根本不是30 fps,更像是20左右。但是,如果我将速度提高到40左右,那么它看起来会像30 fps(变得更平滑)。我在网上看到游戏通常是25 - 30 fps所以我认为40可能有点太高了。我做错了什么,我应该使用Thread.sleep()吗?而且,如果我在不调节fps的情况下运行它,它会如何影响其他设备?它在没有Thread.sleep()的我的galaxy s2上运行平稳,并且不一致的帧率不明显。但我关注的是低端设备。像愤怒的小鸟这样的高端游戏有什么作用?感谢您的任何答案,我对游戏开发非常陌生。

0 个答案:

没有答案