n't我的遊戲場景是使用replaceScene運行的,並且水平編號被傳入。遊戲層從plist中加載數據,然後創建對象在世界空間(CCSprite子類與box2d正文)。當水平被播放時,英雄角色保持在屏幕的中央 - 我調整圖層位置以便根據移動速度與圖層縮放一起進行放大和縮小。Cocos2d運行時遊戲層不平滑,替換後場景平滑
例如:
CGPoint layerPosition = ccp(((screenSize.width/2) - ourHero.position.x) * sceneScale, ((screenSize.height/2) - ourHero.position.y) * sceneScale);
[self setPosition:layerPosition];
[self setScale:sceneScale];
的問題是,在第一次運行水平運動往往可以幹當速度增加並且層縮小(不只是在開始的幾秒鐘)。但是,如果用戶重新啓動級別(按鈕執行replaceScene),則替換級別的移動即使在速度下也非常平滑。
我正在使用batchnode並將sprite圖像存儲在幀緩存中。我曾嘗試設置幀緩存並在級別選擇場景中預加載聲音,但這沒有任何區別。我有事件嘗試清除級別之間的緩存,看看我是否可以使重新啓動的級別表現出相同的行爲,但沒有做任何事情。
任何人都可以提出什麼可能會導致這種情況,我可能會消除它。
謝謝!
當然,第一次加載遊戲場景時,它會變慢,因爲所有的對象都必須創建,而第二次只需要創建一些東西。無論如何,我推薦使用Time Profiler並查看造成滯後的原因。從它的聲音,你正在做一切正確的方式,所以讓樂器說話。 –
感謝您的回覆 - 在CCNode Vist上花費58%(CCSpriteBatchNode訪問中佔44%),EAGLView swapBuffers上花費29%,CCScheduler花哨上花費約1.9%。 – TinoK
奇怪的是,生澀的運動在整個關卡的第一個遊戲中持續存在 - 當然,所有的物體都會在某個時刻創建出來,然後這個匆忙會消退。再次感謝任何和所有的反饋! – TinoK