关于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();

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值