方法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是每一帧调用的不是你自定义时间的?
原来还可以自定义update调用间隔
方法6
写到定时器里而不是update里试试
方法7
update函数有个参数 fDelta
如果你想设置每秒横移X个像素 正确的写法应该是
sprite->setPositionX(X * fDelta);
时间: 2024-10-08 10:28:34