可曾想象,有朝一日你會(huì)自己寫(xiě)一個(gè)計(jì)算機(jī)游戲然后靠它賺錢(qián)?有了Apple的iTunes App Store及其配套移動(dòng)設(shè)備,如iPhone、iPod Touch和iPad,要實(shí)現(xiàn)這個(gè)夢(mèng)想不再是一件難事。當(dāng)然,這并不表示開(kāi)發(fā)一個(gè)游戲有多簡(jiǎn)單,你仍然需要學(xué)習(xí)很多游戲開(kāi)發(fā)和編程的知識(shí)。不過(guò),既然你選擇了閱讀本書(shū),我就有理由相信你已經(jīng)下定決心踏上這條游戲開(kāi)發(fā)之路了。恭喜你你選擇了一個(gè)可能是全世界最有趣的游戲開(kāi)發(fā)引擎——iPhone版cocos2d。
使用cocos2d的開(kāi)發(fā)者可能有很多不同的專(zhuān)業(yè)背景,來(lái)自不同的領(lǐng)域。有些人(比如我)可能是已經(jīng)從事游戲開(kāi)發(fā)好幾年甚至幾十年的專(zhuān)業(yè)人士,還有一些人可能是剛開(kāi)始接觸iOS平臺(tái)游戲開(kāi)發(fā),甚至有些人是剛轉(zhuǎn)行加入這一充滿激情的游戲開(kāi)發(fā)領(lǐng)域。不管你屬于哪一類(lèi)人,我保證,看完這本書(shū)一定能夠有所收獲。
是這樣一種信念讓我們走到一起:我們都熱愛(ài)游戲,也熱愛(ài)設(shè)計(jì)和編寫(xiě)游戲。本書(shū)十分推崇這種信念,并會(huì)向讀者介紹一些能夠幫助簡(jiǎn)化游戲開(kāi)發(fā)過(guò)程的工具。最重要的是,這本書(shū)會(huì)教大家寫(xiě)一些很有借鑒意義的小游戲,從中你可以學(xué)會(huì)如何把一些理論知識(shí)運(yùn)用到現(xiàn)實(shí)的游戲開(kāi)發(fā)中。
有些書(shū)會(huì)整頁(yè)整頁(yè)地教讀者怎樣用一些特定的游戲編程API來(lái)寫(xiě)一個(gè)無(wú)聊的戰(zhàn)機(jī)類(lèi)太空游戲(Asteroids),我讀到這種書(shū)的時(shí)候總是覺(jué)得特別沒(méi)勁。我覺(jué)得一本好書(shū)應(yīng)該向大家介紹游戲編程的理念和開(kāi)發(fā)工具,因?yàn)檫@些東西是永恒的,不會(huì)隨著API或編程喜好的變化而變化。我讀編程書(shū)籍和游戲開(kāi)發(fā)書(shū)籍已經(jīng)有20多年了,我認(rèn)為最有價(jià)值的書(shū)是那些高于技術(shù)本身的,是能夠讓我明白為什么這個(gè)地方會(huì)這樣設(shè)計(jì)、這樣編程、這樣做有什么好處的書(shū)。所以本書(shū)不僅會(huì)關(guān)注游戲代碼的含義,更會(huì)關(guān)注它的工作原理以及在哪些處理上需要根據(jù)情況權(quán)衡利弊。
我希望你能學(xué)著寫(xiě)出一些有價(jià)值的、能在App Store上熱賣(mài)并且受玩家歡迎的游戲。我會(huì)介紹這本書(shū)里的示例游戲背后深藏的思想和技術(shù)理念,當(dāng)然,我也會(huì)告訴你在游戲編程中如何使用cocos2d和Objective-C。本書(shū)源代碼中有大量注釋?zhuān)鼈兛梢詭椭阏_地理解代碼的含義。
學(xué)習(xí)別人的源代碼并且根據(jù)注釋去關(guān)注一些重要設(shè)計(jì)對(duì)我來(lái)說(shuō)是學(xué)習(xí)新知識(shí)的最好方法(我想它對(duì)你來(lái)說(shuō)也會(huì)是一個(gè)很棒的方法)。你可以對(duì)這本書(shū)的隨書(shū)源代碼加以修改,進(jìn)而做出自己的游戲。我非常期待在不久的將來(lái)能夠玩到你的游戲!完成你的游戲千萬(wàn)別忘了告訴我!你可以通過(guò)我的郵箱(steffen@learn-cocos2d.com)聯(lián)系我,也可以登錄我的網(wǎng)站(http://www.learn-cocos2d.com)來(lái)給我留言。
1.1 選擇iPhone版cocos2d的理由
游戲開(kāi)發(fā)者在選擇游戲引擎時(shí)首先會(huì)對(duì)他們要選擇的產(chǎn)品做一些評(píng)估。綜合以下因素,我認(rèn)為cocos2d對(duì)許多開(kāi)發(fā)者來(lái)說(shuō)會(huì)是一個(gè)非常棒的選擇。
1.1.1 免費(fèi)
首先,cocos2d是免費(fèi)的。不需要花錢(qián)就可以用它來(lái)進(jìn)行開(kāi)發(fā)。其次,你可以隨心所欲地開(kāi)發(fā)iPhone、iPod和iPad應(yīng)用,無(wú)論免費(fèi)還是收費(fèi)都可以。說(shuō)真的,這是完全沒(méi)有附加限制的。
cocos2d幾乎是由Ricardo Quesada一個(gè)人開(kāi)發(fā)出來(lái)的。假如你想資助他對(duì)cocos2d進(jìn)行一些后續(xù)開(kāi)發(fā),或者想購(gòu)買(mǎi)他的一些收費(fèi)源碼工程項(xiàng)目,可以登錄http://www.cocos2d-iphone. org/store訪問(wèn)cocos2d Store。
1.1.2 開(kāi)源
cocos2d的第二個(gè)好處就是它是開(kāi)源的,這就意味著你可以自由地學(xué)習(xí)游戲引擎的源代碼,或者在需要時(shí)對(duì)引擎作些改動(dòng)??梢詮?a >http://www.cocos2d-iphone.org/download下載源代碼。
1.1.3 Objective-C
另外,cocos2d是用Objective-C編寫(xiě)而成的,Objective-C是蘋(píng)果公司用于開(kāi)發(fā)iPhone應(yīng)用程序的本地編程語(yǔ)言(native programming language)。由于iPhone SDK也是用Objective-C編寫(xiě)而成的,因此對(duì)于使用cocos2d的開(kāi)發(fā)者來(lái)說(shuō),要理解蘋(píng)果公司的官方文檔和使用iPhone SDK提供的API并不困難。
其他很多有用的API,如Facebook Connect和OpenFeint,也是用Objective-C編寫(xiě)而成的,所以要集成它們也非常容易。