2010-01-05 22 views
2

我正在開發使用了cocos2d的iPhone遊戲,並把它設置爲以顯示FPS。現在大部分的時間應用程序將啓動,並以60fps運行,但顯然是隨機有時應用程序將在只有40 fps的啓動和頂部。應用程序啓動時的Cocos2d會給出隨機的fps丟棄?

這不會經常發生,似乎只有當你退出應用程序,並儘快重新啓動它,allthough這不會觸發大部分時間的影響的情況發生。但也有少數快速退出重啓序列賽後終於開始,只有40 FPS,而不是正常的60,如果我辭職在這一點上的應用程序,並等待約3秒鐘,將再次與正常的60幀開始。

我假定這事做與不能夠重新開始前釋放所有其內存的應用程序?這個問題似乎涉及到iPhone OS。

重要的是要注意,如果我退出應用程序等待5秒鐘並重新啓動,這種情況不會發生。有沒有人有過這種問題?任何想法爲什麼這可能會發生?

+0

我見過這種行爲。似乎與設備有關,而不是cocos2d。 – 2010-01-05 20:51:15

+0

是的,這就是我,雖然,我想有沒有辦法解決這個問題? – 2010-01-06 01:06:06

回答

2

如果有人想知道這是因爲在iPhone 3GS/iPod Touch 3G中模擬OPEN GL 2.0時曾經有過一個bug,這已經在OS 3.1中修復了。而你所要做的只是以下幾點:

// Try to use CADisplayLink director 
// if it fails (SDK < 3.1) use Threaded director 
if(! [Director setDirectorType:CCDirectorTypeDisplayLink]) 
    [Director setDirectorType:CCDirectorTypeThreadMainLoop]; 
相關問題