2010-11-15 61 views
1

我正在開發一款遊戲,其中有一名玩家可以拍攝物體。播放器播放聲音時播放。當他擊中一個物體時,它會產生爆炸動畫和聲音。我使用UIImageViews繪製播放器和對象,並使用AudioServicesPlaySystemSound播放聲音。預加載圖像/聲音以避免延遲

我遇到的問題是遊戲「落後」,第一次我拍攝並且第一次碰到物體。我認爲這是因爲這些對象還沒有加載到內存中,因爲這只是第一次生成這些對象纔會出現問題。遊戲第一次沒有滯後。

有沒有辦法將這些對象預加載到內存中,這樣遊戲在每次新對象第一次生成時都不會滯後?

回答

2

只需在遊戲實際開始之前運行的方法中創建您的UIImage實例並調用AudioServicesCreateSystemSoundID()即可。只要你的資源足夠小以適應記憶,那就應該這樣做。

但是,您應該聽內存警告,並釋放當前未使用的所有對象以釋放盡可能多的內存。當用戶在應用程序崩潰時重新加載這些對象時,用戶可能更喜歡稍微滯後,因爲內存不足。

+0

爲我工作的AudioServicesCreateSystemSoundID(),但既然你不保留任何指針,它們是否有自動釋放,如果有內存問題? – Ladislav 2011-01-20 14:27:05