手机上的帧率和游戏循环

Posted

技术标签:

【中文标题】手机上的帧率和游戏循环【英文标题】:Framerate and game loop on mobile 【发布时间】:2013-09-30 20:23:15 【问题描述】:

我正在寻找如何在移动设备上管理游戏帧率,这是我的问题:

在具有类似功能的计算机上:

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】:

我发现您发布的 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++;
        

【讨论】:

以上是关于手机上的帧率和游戏循环的主要内容,如果未能解决你的问题,请参考以下文章

Unity优化

视频分辨率、帧率、码率

帧数帧率(FPS)是什么?

用啥软件测游戏帧数好?

安卓开机动画 手机不按帧率播放

Unity3DUnity 游戏画面帧更新 ( 游戏帧相关概念 | MonoBehaviour#Update() 帧更新方法 | 帧更新时间统计 | 设置游戏更新帧率 )