• 关于Cocos2d-x中掉帧导致游戏一卡一卡的网上一些的解决方法


    方法1

    掉帧主要是setpostion引起的  
    因为每一帧每一个精灵都要set一次
    虽然不知道为什么会这样
    但是
    if(poX<1000&&pox>-100){
         xx->setpostion(poX);
    }
    加了个这样的条件减少set的次数就不卡了
    (就是每次都调整Size[]保存的坐标,但只set符合要求的)

    ps:测试过 总共有420+精灵
    限制后大概只有10%的精灵每一帧要set;

    但是我感觉 420+的精灵应该不至于让程序掉帧那么严重啊

    方法2

    要做递归动画最好是用CCMoveBy这个 可能比较好些 setpositon的话 是重新定位可能会导致 sprite的 位置变动卡 

    方法3

    也许是创建太多精灵或者加载太多图片,显示之后隐藏,没释放

    方法4

    update有个参数delta,
    计算运动距离的时候考虑这个delta值(也就是时间差量)
    通常都是      移动速度(像素/秒)×(delta)
    理论上这样不会有问题,我都是这么处理的 

    方法5

    你确定你的update是每一帧调用的不是你自定义时间的? 

    方法6

    写到定时器里而不是update里试试 

    方法7

    update函数有个参数 fDelta 
    如果你想设置每秒横移X个像素 正确的写法应该是
    sprite->setPositionX(X * fDelta);

    方法8

    在AppDelegate.cpp文件里面降低帧率上限为50,虽然画面没有那么流畅,但是不会突然卡一下

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 50);

  • 相关阅读:
    线程池原理分析
    强引用-软引用-弱引用
    并发编程之多线程
    linux关于获取时间的几个函数
    gdb安装和使用
    c++四种显式类型转换
    ARP协议
    Vmware 共享文件夹不显示的问题
    gdb基本使用
    动态二维数组实现
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5813529.html
Copyright © 2020-2023  润新知