zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

游戏方法 解决 关于 一些 导致 cocos2d 网上
2023-09-11 14:21:21 时间

方法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);