代码之家  ›  专栏  ›  技术社区  ›  LongDuZboub

手机帧速率和游戏循环

  •  1
  • LongDuZboub  · 技术社区  · 11 年前

    我正在搜索如何在手机设备上管理游戏帧速率,这是我的问题:

    在一台电脑上,有这样的东西:

    void main()
    {
        while(game.isRunning())
        {
            event.handle(eventInfos);
            game.update(dt);
            graphic.render();
        }
    }
    

    在具有的移动设备上得到了类似的东西:

    void update()
    {
        game.update(dt);
    }
    
    void render()
    {
        game.render(dt);
    }
    
    void event()
    {
        game.handle(eventInfos);
    }
    

    当我在网上搜索时,每次都会发现这样的东西:

    -> GameLoop

    -> Fix your time step

    我使用的是IOS(带有GLKViewController)和Android(带有NDK),我的渲染方法是从另一个线程调用

    谢谢你的帮助!

    1 回复  |  直到 11 年前
        1
  •  0
  •   Ahmad Dwaik 'Warlock'    11 年前

    我发现你发布的GameLoop链接非常直接,他运行了一个线程,然后检查调用的正确时间 update() 在这些行中

                while (sleepTime < 0 && framesSkipped < MAX_FRAME_SKIPS) {
                // we need to catch up
                // update without rendering
                this.gamePanel.update(); 
                // add frame period to check if in next frame
                sleepTime += FRAME_PERIOD;  
                framesSkipped++;
            }