关于cocos2dx帧率补偿的小方法

1.使用 setAnimationInterval(1.0  / 15 ) ?发现在Android上运行没效果了吧!好的,那就去官方Github[ https://github.com/cocos2d/cocos2d-x/blob/1643c29a000d2e6720a2eb36e118ed7461487473/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxRenderer.java ] update个代码更新 Cocos2dxRenderer.java 吧,再将 +private static long sAnimationInterval = ...;中的60改为你需要的帧率 ,这个代码现在是cocos2dx 3.3的测试版代码

2.你想在Runtime logic时使用
setAnimationInterval ?Oh,NO!Sorry!感觉也只有在IOS上跑得好爽,在Android上?效果呢?还是没有啊!!!放弃吧,少年。

3.用
Director:getInstance():getScheduler():setTimeScale(1)   ?如果你试过可以的话那就恭喜你咯,我自己试感觉不到效果。

4.好吧!还是说说我的小办法吧,顺带有个加速功能。[注:设备最高帧率小于你所设的帧率的话,加速就没效果了]
setAnimationInterval(1.0  / 60 );//默认为系统自带

float lkDelta = -1;

 

void XXXXX::update(float delta)

{

    if (!isFastFPS) {

        lkDelta += delta;

        if (lkDelta <= 0.0666f && lkDelta >= 0) {//FPS:15 0.0666f每帧所需时间,lkDelta >= 0:[首帧时不检查这个时间]

            return;

        }

        if (lkDelta < 0) {

            lkDelta = 0;

        } else {

            lkDelta -= 0.0666f;

        }

     }

    logic();

    draw();

 

猜你喜欢

转载自blog.csdn.net/zhongjuelong/article/details/38729877