正文

入 門(mén)(9)

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


  

2.2.4  類

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

1.HelloWorldAppDelegate類

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

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

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

注意:

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

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

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

 

[[CCDirector sharedDirector]

        setDeviceOrientation:CCDeviceOrientationLandscapeLeft];

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

[[CCDirector sharedDirector] setDisplayFPS:YES];

 

下面我將對(duì)它們逐個(gè)地加以解釋。


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)