2013-01-22 43 views
0

我有一個cocos2d遊戲,有一個加載場景,我們加載一堆資產。遊戲從啓動畫面開始,然後啓動加載場景。加載場景通過加載背景開始,因此用戶在加載資源時會看到加載場景背景。 loadingbackground.pvr.ccz如何在cocos2d中加載加載場景背景而不消隱?

它似乎在不同設備上的工作方式不同:

我通過調用CCSprite::spriteWithFile:並通過文件路徑加載加載場景背景

  1. 在iPhone(3GS)模擬器,我看到了裝載現場如預期。
  2. 在iPhone視網膜模擬器,我沒有看到加載場景(沒有很多資產還,所以可迅速發生),並直接進入主菜單的場景。
  3. 在iPad 3裝置中,在初始屏幕出現,然後有黑色畫面的第二半部,然後在主菜單中的場景顯示出來。

我想看看我能做些什麼來避免在iPad 3上顯示黑屏。我懷疑這是因爲加載加載背景所花費的時間。

我曾嘗試以下優化(主要是基於@斯特芬的blog post on memory optimization):

  1. 移動加載背景(原2.3 MB RGB8 png文件)到pvr.ccz spritesheet本身,從而減少它的大小到1.8 MB。
  2. 使用後立即從紋理中刪除圖像。

我仍然看到在iPad 3有什麼建議黑屏?

更新:發現問題 - 我有一些代碼,其中我覆蓋了OnEnter並在其中調用[[CCDirector sharedDirector]replaceScene],並且還從後臺線程調用相同的代碼。刪除了OnEnter超載並且它沒有閃爍地工作。

謝謝

回答

1

忽略模擬器中發生的任何事情。這不相關,專注於設備。

當加載場景初始化並添加加載場景的背景,請確保您計劃更新,並在更新方法加載你的資產。否則,如果您在init中加載資源,則不會繪製背景,因爲您在cocos2d獲取重新繪製屏幕之前加載了所有資產。

如果仍然失敗,只需發送訪問信息到後臺精靈接着[CCDirector sharedDirector] drawScene函數。這迫使重繪場景。

+1

我確實在後臺加載了資源,所以標記爲答案。還修復了我在更新問題中描述的另一個錯誤。謝謝! – Anand

1

這是cocos2d-iphone還是cocos2d-x?確保標籤是正確的:)

我想你指的是啓動時閃爍,有一些方法來避免這種情況。 您需要確保您正確處理iOS 6和iOS 5及更低版本的rootViewController的第一件事,每個都有一些更改。

你可以找到一個小參考這裏: http://www.cocos2d-iphone.org/forum/topic/34471

第二件事你需要知道的是模擬器的行爲並不穩定,你應該總是依靠測試物理設備,但它很可能還是得閃爍的問題。

對不起,我沒有提供示例代碼,但您還沒有支持足夠的信息來知道這裏真正的問題。