2

我在 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 上运行平稳,并且帧速率不一致并不明显。但我关心的是低端设备。像愤怒的小鸟这样的高端游戏是做什么的?感谢您的任何答案,我对游戏开发非常陌生。

4

0 回答 0