正文

入 門(9)

iPhone & iPad Cocos2D游戲開發(fā)實戰(zhàn) 作者:(美)伊特海姆


  

2.2.4  類

HelloWorld項目的核心由兩個重要的類構(gòu)成。HelloWorldAppDelegate類用于處理應(yīng)用程序中的全局事件和狀態(tài)變化,而HelloWorldScene類則包含了所有用于顯示Hello World”標(biāo)簽的代碼。

1.HelloWorldAppDelegate類

每個iOS應(yīng)用程序都有一個實現(xiàn)UIApplicationDelegate協(xié)議AppDelegate。在我們的HelloWorld項目中,用于實現(xiàn)協(xié)議的類叫做HelloWorldAppDelegate,這種命名模式對于任意一個項目都是通用的:項目名+AppDelegate。從現(xiàn)在起,我會將HelloWorldAppDelegate簡稱為AppDelegate,因為這是在每個iOS應(yīng)用程序中都存在的通用概念。

AppDelegate類通過在特定時間點從iOS接收消息來追蹤應(yīng)用程序的狀態(tài)變化。例如,可以通過它來處理諸如用戶接到來電或內(nèi)存不足時應(yīng)用程序需要采取的措施。應(yīng)用程序收到的第一個消息會是applicationDidFinishLaunching方法,這是所有代碼的起始位置,開發(fā)者應(yīng)該在該方法中添加cocos2d的所有初始化代碼。

欲知AppDelegate中更多不同的方法、對應(yīng)的功能以及消息發(fā)送時間的相關(guān)內(nèi)容,請查閱蘋果公司官方關(guān)于UIApplicationDelegate協(xié)議的參考文檔http://developer.apple.com/ iphone/library/documentation/uikit/reference/UIApplicationDelegate_Protocol。

注意:

鑒于剛剛提到的應(yīng)用程序的啟動問題,我想應(yīng)該再提一下應(yīng)用程序的關(guān)閉問題。你最終可能對AppDelegate中的dealloc方法心存疑惑:它從沒被調(diào)用過!而且任何設(shè)置在AppDelegate的dealloc方法中的斷點也完全不起作用!事實上,當(dāng)iOS終止一個應(yīng)用程序時,它會將應(yīng)用程序占用的所

有內(nèi)存清理干凈,從而加快應(yīng)用程序的關(guān)閉速度。這也是為什么AppDelegat的dealloc方法內(nèi)的代碼從不運行的原因。此外,手動調(diào)用dealloc方法是一個很不好的習(xí)慣。如果需要在應(yīng)用程序終止前運行一些代碼,可以將這些代碼添加到applicationWillTerminate方法中。如果你的目標(biāo)系統(tǒng)是iOS 4或更高版本,就應(yīng)將代碼添加到applicationDidEnterBackground方法中。

在多數(shù)情況下,在cocos2d初始化過程中只有3處代碼需要進(jìn)行修改:

 

[[CCDirector sharedDirector]

        setDeviceOrientation:CCDeviceOrientationLandscapeLeft];

[[CCDirector sharedDirector] setAnimationInterval:1.0/60];

[[CCDirector sharedDirector] setDisplayFPS:YES];

 

下面我將對它們逐個地加以解釋。


上一章目錄下一章

Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號