關於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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM