2025年cocos creator 帧率60 不生效meta50 能刷新到90

cocos creator 帧率60 不生效meta50 能刷新到90环境 cocos creator 2 4 3 华为 meta 50 背景 小游戏 需要在 update 里取帧率 发现跟时间对不上 游戏设置 60 帧 手机上显示 90 帧 cc game setFrameRate 30 显示 30 帧 cc game setFrameRate 60 显示 90 帧 结论 对于老版本的 cocos creator

大家好,我是讯享网,很高兴认识大家。

环境:
cocos creator 2.4.3
华为meta 50

背景:
小游戏 需要在update 里取帧率 发现跟时间对不上
游戏设置60帧
手机上显示 90帧
cc.game.setFrameRate(30) 显示 30帧
cc.game.setFrameRate(60) 显示 90帧

结论:
对于老版本的cocos creator 如果有依赖帧率的逻辑
需要自行注意逻辑正确性
cc.game.getFrameRate() 取出来的帧率 有可能 并不是当前真实帧率 只是逻辑帧率


讯享网

源码分析:

 cocos2dxRenderer.java @Override public void onDrawFrame(final GL10 gl) { 
    if (mNeedToPause) return; if (mNeedShowFPS) { 
    / //IDEA: show FPS in Android Text control rather than outputing log. ++mFrameCount; long nowFpsTime = System.nanoTime(); long fpsTimeInterval = nowFpsTime - mOldNanoTime; if (fpsTimeInterval > L) { 
    double frameRate = .0 * mFrameCount / fpsTimeInterval; Cocos2dxHelper.OnGameInfoUpdatedListener listener = Cocos2dxHelper.getOnGameInfoUpdatedListener(); if (listener != null) { 
    listener.onFPSUpdated((float) frameRate); } mFrameCount = 0; mOldNanoTime = System.nanoTime(); } / } /* * No need to use algorithm in default(60 FPS) situation, * since onDrawFrame() was called by system 60 times per second by default. */ if (sAnimationInterval <= INTERVAL_60_FPS) { 
    Cocos2dxRenderer.nativeRender(); } else { 
    final long now = System.nanoTime(); final long interval = now - this.mLastTickInNanoSeconds; if (interval < Cocos2dxRenderer.sAnimationInterval) { 
    try { 
    Thread.sleep((Cocos2dxRenderer.sAnimationInterval - interval) / Cocos2dxRenderer.NANOSECONDSPERMICROSECOND); } catch (final Exception e) { 
    } } /* * Render time MUST be counted in, or the FPS will slower than appointed. */ this.mLastTickInNanoSeconds = System.nanoTime(); Cocos2dxRenderer.nativeRender(); } } 

讯享网

分析上述代码

讯享网if (sAnimationInterval <= INTERVAL_60_FPS) { 
    Cocos2dxRenderer.nativeRender(); } 
小讯
上一篇 2025-01-16 08:18
下一篇 2025-01-05 13:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35569.html