游戏 掉帧 卡

int poX;
int speed_3 = 5;
sprite * xx = null;
    for(int i=0;icount();i++){    
        xx = (sprite*)mySceneDatas.array_allxx->objectAtIndex(i);
        //poX = xx->getPositionX();
        poX = mySceneDatas.xxSize*.width;
        poX -= speed_3;    
        if(poX<=-visibleSize.width){
            poX += visibleSize.width;            
        }
            xx->setPositionX(poX);    
        mySceneDatas.xxSize*.width = poX;
    }
```

如上实现场景内地图  道具  金币等元素的循环滚动导致游戏掉帧严重
测试发现时大量的setpostion()引起的 

求大神介绍个优化这段代码的方法。。。。。**

使用Cocos Code IDE的话,调试模式下会掉帧很严重。

release没问题,你可以试下。

楼主 的
GL call 和 GL verts 峰值 多少
现在手机cup都很强的。。。 。
掉帧很可能是绘制 造成。

GL call 40左右
GL verts 2000+(播放动画特效的时候)
平时稳定1200+

这 数值 那应该没问题的。
把这个
for(int i=0;i<mySceneDatas.array_allxx->count();i++)

换成
int cout=mySceneDatas.array_allxx->count();
for(int i=0;i<cout;i++)

试试,如果不行,

就试试 偶尔e网事 说的吧。

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

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

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

你是使用Cocos Code IDE么?

没 只是cocos2dx 3.2

卡的问题暂时解决了。。。。但是 现在在真机上运行帧数会超过60 然后挂掉

批量更新 batch render

敢问你卡的问题怎么解决的

把这些东西放在一个node里 然后移动根node

我是放在一个node里移动的,但就是掉帧

挖坑,楼主解决了吗?setposition是否有BUG啊