2016-04-07 15:15:22 1795瀏覽
對于大多數(shù)iOS開發(fā)工程師來說,有一點很明確:如果想不使用或盡量少地使用多媒體內(nèi)容,就需要使用Cocoa Touch以及它的UIKit框架來創(chuàng)建iPhone和iPad的原生用戶界面。
另一方面,開發(fā)者想開發(fā)iOS游戲和多媒體應(yīng)用,并傾向于使用cocos2d,但只想用CCSprite和CCmenu來創(chuàng)建游戲的場景和用戶界面。
很多開發(fā)者只對某一種環(huán)境比較有經(jīng)驗,并且大多數(shù)人在從Cocoa Touch跨越到cocos2d的過程中會感到迷惑,反之亦然。大多數(shù)情況下,程序員都想要結(jié)合兩者最好的部分,用他們已經(jīng)掌握的Cocoa Touch或cocos2d知識來開發(fā)混合應(yīng)用程序。
但是由于Cocoa Touch和cocos2d工作的本質(zhì)截然不同,它們都有各自的問題考慮方式,將它們混合在一起不是一個簡單的過程。開發(fā)者需要學習如何在cocos2d應(yīng)用程序中加入Cocoa Touch視圖和特征;同時,也需要掌握如何在已有的Cocoa Touch應(yīng)用程序中嵌入cocos2d,可以在iOS開發(fā)培訓教程Cocos2d的課程中了解。
Cocoa Touch是用來創(chuàng)建iOS手機開發(fā)應(yīng)用程序的API的名稱。當然,它是由Cocoa提供的用于開發(fā)Mac OS X應(yīng)用的API。
Cocoa Touch包含多個框架,例如Core Animation、Core Data、Map Kit、Store Kit、WebKit等。但是由于cocos2d建立在OpenGL ES、Core Audio、OpenAL和AV Foundafion(AV表示AudioNideo)框架之下,而這些框架是Cocoa Touch的一部分,因此嚴格來講,cocos2d是Cocoa Touch的類庫。
為什么將Cocoa Touch和cocos2d混合在一起
有許多非常充分的理由可以解釋為什么將Cocoa Touch和cocos2d混合在一起。事實上,這些理由都可以歸結(jié)于為了得到更好的用戶體驗和更快捷的開發(fā)。
其中一點,如果你是一名cocos2d程序員,那么遲早需要在自己的應(yīng)用程序中添加一些Cocoa Touch視圖。一般情況下,是在你需要iAd產(chǎn)生一些收入的時候,或者是在開發(fā)支持Game Center游戲的時候。但是你可能還想要為用戶提供更原生的用戶界面,一個可以由Interface Bmlder直接設(shè)計的界面,然后調(diào)節(jié)紋理以保持游戲的外觀,這樣可以避免用戶界面看起來像系統(tǒng)設(shè)置的應(yīng)用程序。其中一個示例就是Carcassone,我們需要多次查看才能確認它的用戶界面全部是由UIKit視圖創(chuàng)建的。
雖然我們能夠用cocos2d創(chuàng)建合理的用戶界面,但是cocos2d沒有提供在UIKit中已經(jīng)大量存在的并且可以使用的控件。對于用戶界面控件,cocos2d僅僅提供了CCMenu。cocos2d對一些流行的UIKit的重新實現(xiàn)總是缺少一種風格和感覺?;瑒訔l、開關(guān)按鈕、導航視圖和選項卡都可以在游戲用戶界面的設(shè)計中大量使用,尤其是在游戲的某些對性能要求沒那么高的界面中。
如果你是一名Cocoa Touch程序員,而你的游戲中需要一些多媒體內(nèi)容;那么比起直接使用OpenGL ES庫來編程實現(xiàn),利用cocos2d來做這項工作,在能夠做出更高質(zhì)量的外觀的同時也更加容易。
Cocoa Touch確實提供了一些非常強大的類似Core Graphics和Core Animation的圖形框架,但是它們有一個共同的缺點:對于實時游戲來說,它們不夠快。設(shè)計它們的目的是顯示和動畫用戶界面元素,而不是游戲。
查看更多關(guān)于“iOS培訓資訊”的相關(guān)文章>>