出版時(shí)間:2013-4 出版社:機(jī)械工業(yè)出版社 作者:滿(mǎn)碩泉
Tag標(biāo)簽:無(wú)
前言
前言為什么要寫(xiě)這本書(shū)在大學(xué)期間,我開(kāi)始對(duì)移動(dòng)游戲開(kāi)發(fā)感興趣,于是開(kāi)始學(xué)習(xí)移動(dòng)開(kāi)發(fā)方面的相關(guān)知識(shí),包括J2ME和Android等技術(shù)?,F(xiàn)在,開(kāi)始的好奇心和興趣成就了我引以為豪的事業(yè)。在大四的時(shí)候,我到了天津猛犸實(shí)習(xí),從J2ME平臺(tái)到Android平臺(tái),從Android平臺(tái)到iOS平臺(tái),我不僅接觸了不同平臺(tái)的開(kāi)發(fā),更學(xué)會(huì)了游戲開(kāi)發(fā)的技巧和思想。如果說(shuō)編程是一門(mén)藝術(shù),那么游戲開(kāi)發(fā)就是藝術(shù)中的藝術(shù)。作為一名游戲開(kāi)發(fā)程序員,不僅要擁有熟練的編程技巧,還要對(duì)美術(shù)、策劃和游戲有深入的理解。游戲程序員最重要的是游戲編程思想,因此當(dāng)決定寫(xiě)這本書(shū)的時(shí)候,我深知不僅要分享Cocos2D-x相關(guān)的知識(shí),更要分享游戲開(kāi)發(fā)思想。作為從J2ME手機(jī)游戲時(shí)代走過(guò)來(lái)的開(kāi)發(fā)者,我深知移動(dòng)平臺(tái)游戲可移植性的重要。J2ME這項(xiàng)技術(shù)的學(xué)習(xí)相對(duì)簡(jiǎn)單,應(yīng)用這項(xiàng)技術(shù)進(jìn)行開(kāi)發(fā)的速度也比較快,而且當(dāng)時(shí)幾乎所有手機(jī)平臺(tái)都支持Java,所以“一次編碼,到處運(yùn)行”也就不是夢(mèng)想了。但是由于受機(jī)型的硬件性能所限,不同的平臺(tái)在移植上也需要下一番工夫,針對(duì)不同屏幕、不同內(nèi)存,往往需要開(kāi)發(fā)不同的版本。當(dāng)時(shí)的開(kāi)發(fā)者根據(jù)經(jīng)驗(yàn),往往把很多種機(jī)型分組處理,為每組開(kāi)發(fā)一個(gè)模板,然后再針對(duì)在不同機(jī)型上的運(yùn)行情況做不同的調(diào)整,從而形成一種相對(duì)高效的開(kāi)發(fā)模式。盡管在這個(gè)階段手機(jī)設(shè)備的硬件水平普遍偏低,但是開(kāi)發(fā)者經(jīng)??梢酝ㄟ^(guò)美術(shù)、程序、策劃三方的配合,開(kāi)發(fā)出具有非常好的效果的游戲。由于J2ME的學(xué)習(xí)和開(kāi)發(fā)都很簡(jiǎn)單,因此很少有成型的引擎,只是不同的游戲?qū)?yīng)不同的框架。隨著蘋(píng)果iOS系統(tǒng)和iPhone、iPad等一系列產(chǎn)品的發(fā)布,隨著Android系統(tǒng)和相應(yīng)設(shè)備的誕生,移動(dòng)平臺(tái)的種類(lèi)得到了豐富,并從單一的手機(jī)發(fā)展到平板電腦等多種手持設(shè)備上。而移動(dòng)游戲的開(kāi)發(fā)方式同樣也有了改變,開(kāi)發(fā)者們開(kāi)始嘗試針對(duì)不同平臺(tái)的開(kāi)發(fā)框架來(lái)進(jìn)行開(kāi)發(fā)。智能平臺(tái)的硬件及性能的提高并沒(méi)有帶來(lái)游戲品質(zhì)的提高,于是開(kāi)發(fā)者們也探索著進(jìn)行只針對(duì)單一平臺(tái)的開(kāi)發(fā),他們利用平臺(tái)特性(多點(diǎn)觸屏,重力感應(yīng)等)開(kāi)發(fā)出了很多不錯(cuò)的游戲。雖然Android平臺(tái)的屏幕及分辨率也是千差萬(wàn)別,但是由于出色的框架使得開(kāi)發(fā)和移植變得簡(jiǎn)單起來(lái),同時(shí)也不需要過(guò)多考慮內(nèi)存的限制。但是問(wèn)題依然存在,對(duì)于不同的智能平臺(tái)(Android、iOS等操作系統(tǒng))依然需要編寫(xiě)不同的代碼來(lái)進(jìn)行開(kāi)發(fā),如何跨平臺(tái)這個(gè)問(wèn)題擺在了開(kāi)發(fā)者面前。跨平臺(tái)的引擎有基于HTML5的跨平臺(tái)特性產(chǎn)生的開(kāi)發(fā)引擎,也有基于OpenGL開(kāi)發(fā)的游戲引擎,其中Cocos2D-x廣泛受到開(kāi)發(fā)者的關(guān)注,因?yàn)樗粌H具有跨平臺(tái)的特點(diǎn),還具有受Cocos2D全球社區(qū)的支持、框架簡(jiǎn)單易學(xué)、十分容易上手等特點(diǎn)。經(jīng)過(guò)一段時(shí)間的發(fā)展,開(kāi)發(fā)者使用Cocos2D-x開(kāi)發(fā)出了多款成功的游戲,包括捕魚(yú)達(dá)人、地鐵總動(dòng)員等佳作。2012年年初,Cocos2D-x團(tuán)隊(duì)再次開(kāi)發(fā)出兩個(gè)分支,分別是支持Windows Phone的XNA版和支持HTML5的HTML5版,后者還得到了Google的贊助。在Zynga的幫助下,Cocos2D-x正在研發(fā)綁定JavaScript的Cocos2D-x2.0版本。隨著Cocos2D及其分支的發(fā)展,Cocos2D會(huì)有更多跨平臺(tái)特性,從而可以支持更多的平臺(tái),并且提高開(kāi)發(fā)者的開(kāi)發(fā)效率。相信Cocos2D-x將會(huì)更加受到廣大開(kāi)發(fā)者的歡迎。正因?yàn)檫@樣,2011年年底我開(kāi)始接觸Cocos2D-x引擎,并在我的CSDN博客上(博客地址:http://blog.csdn.net/bill_man)寫(xiě)了一些相關(guān)的文章,當(dāng)初的目的就是為自學(xué)留下些筆記以供以后參考,因?yàn)楫?dāng)時(shí)的Cocos2D-x參考資料還不是很多。后來(lái)逐漸發(fā)展為把我學(xué)習(xí)中遇到的問(wèn)題與大家分享。慢慢地,通過(guò)使用,我發(fā)現(xiàn)Cocos2D-x是一個(gè)對(duì)開(kāi)發(fā)者十分友好的游戲引擎,于是我希望把自己引擎的使用經(jīng)驗(yàn)結(jié)合游戲開(kāi)發(fā)經(jīng)驗(yàn)更系統(tǒng)、更全面的分享出來(lái),于是就有了這本書(shū)。讀者對(duì)象Cocos2D-x初級(jí)及中級(jí)開(kāi)發(fā)者,了解C++語(yǔ)言和游戲開(kāi)發(fā)的讀者;沒(méi)有接觸過(guò)Cocos2D-x,但有過(guò)Cocos2D其他版本開(kāi)發(fā)經(jīng)驗(yàn)的開(kāi)發(fā)者;沒(méi)有Cocos2D-x和C++開(kāi)發(fā)經(jīng)驗(yàn),但是有C、Java等語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn)的游戲程序員;相關(guān)項(xiàng)目的策劃及管理人員;游戲開(kāi)發(fā)愛(ài)好者;大專(zhuān)院校相關(guān)專(zhuān)業(yè)的師生。如何閱讀本書(shū)本書(shū)分為四部分:第一部分(第1~2章)為準(zhǔn)備篇,介紹了Cocos2D-x的下載與安裝,以及交叉編譯環(huán)境的搭建,為后面的開(kāi)發(fā)做準(zhǔn)備。第二部分(第3~10章)為基礎(chǔ)篇,重點(diǎn)講解了Cocos2D-x中的核心類(lèi)、動(dòng)作、動(dòng)畫(huà)、特效、文字、字體、事件處理、地圖、聲音以及物理引擎的使用,這部分結(jié)合Cocos2D-x自帶的tests實(shí)例進(jìn)行講解,目的是讓讀者全面掌握Cocos2D-x的基礎(chǔ)理論和基本使用。第三部分(第11~12章)為實(shí)戰(zhàn)篇,采用Cocos2D-x分別開(kāi)發(fā)了一款縱版射擊游戲和橫版動(dòng)作游戲,旨在讓讀者深入了解Cocos2D-x的基礎(chǔ)知識(shí)在游戲開(kāi)發(fā)中的實(shí)戰(zhàn)使用,而且這兩款游戲分別代表了縱版卷軸和橫版卷軸,可以讓開(kāi)發(fā)者深入了解不同類(lèi)型游戲的開(kāi)發(fā)思想。第四部分(第13~16章)為高級(jí)篇,在前面的章節(jié)基礎(chǔ)上,介紹Cocos2D-x的粒子系統(tǒng)和相關(guān)粒子編輯器的使用,學(xué)習(xí)了Cocos2D-x實(shí)現(xiàn)常用的游戲算法、內(nèi)存管理和調(diào)試方法,最后簡(jiǎn)單介紹了Cocos2D的一個(gè)新的分支—Cocos2D-HTML5。如果你是一名對(duì)Cocos2D-x有一定了解的開(kāi)發(fā)者,可以從第3章開(kāi)始閱讀,而如果你是一個(gè)Cocos2D-x的初學(xué)者,請(qǐng)從第1章開(kāi)始閱讀??闭`和支持由于作者的水平有限,加之編寫(xiě)時(shí)間倉(cāng)促,書(shū)中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。為了方便與大家交流,我專(zhuān)門(mén)申請(qǐng)了新浪微群,大家有問(wèn)題可以在群中提出,我會(huì)及時(shí)解答的,我還會(huì)在群中及時(shí)更正書(shū)中的錯(cuò)誤,我也會(huì)將相應(yīng)的功能更新及時(shí)發(fā)布出來(lái)。書(shū)中的全部源文件可以從華章網(wǎng)站下載。如果你有更多的寶貴意見(jiàn),也歡迎發(fā)送郵件,期待能夠得到你們的真摯反饋。致謝首先感謝Cocos2D以及Cocos2D-x的開(kāi)發(fā)團(tuán)隊(duì),感謝他們?yōu)閺V大游戲開(kāi)發(fā)者開(kāi)發(fā)出一款如此優(yōu)秀的游戲引擎。感謝我的“老東家”天津猛犸科技有限公司,感謝這家公司對(duì)我的鍛煉和栽培,使我對(duì)游戲開(kāi)發(fā)由“好奇”變成“愛(ài)好”,感謝公司中我的老師和好戰(zhàn)友們,感謝他們和我并肩作戰(zhàn)的日子,我在他們身上學(xué)到的東西讓我對(duì)游戲開(kāi)發(fā)有了更深的認(rèn)識(shí)和熱愛(ài)。感謝天津大學(xué)以及我的老師和同學(xué)們,尤其是我的編程啟蒙老師羅凱先生。感謝CSDN網(wǎng)站上每一位閱讀我文章的網(wǎng)友們,是你們給了我信心,讓我一直寫(xiě)下去。感謝實(shí)戰(zhàn)篇中游戲?qū)嵗拿佬g(shù)人員:其中第11章游戲?qū)嵗拿佬g(shù)人員為許鵬,第12章游戲?qū)嵗拿佬g(shù)人員為李祖一。感謝機(jī)械工業(yè)出版社華章公司的楊福川和白宇,感謝二位老師在這一段時(shí)間中始終支持我的寫(xiě)作,是他們的鼓勵(lì)和幫助引導(dǎo)我順利完成全部書(shū)稿??梢哉f(shuō)沒(méi)有二位老師的幫助和支持,我不會(huì)有勇氣寫(xiě)這本書(shū)。感謝我的爺爺和奶奶,他們是我人生的啟蒙老師,盡管他們已經(jīng)離開(kāi)這個(gè)世界,但是我依然能感受到他們對(duì)我的支持和愛(ài)。最后感謝我的父母,他們不僅含辛茹苦撫養(yǎng)我長(zhǎng)大,還教會(huì)我很多做人的道理,為了他們我要更加努力。謹(jǐn)以此書(shū)獻(xiàn)給我最親愛(ài)的家人,以及眾多熱愛(ài)游戲開(kāi)發(fā)和Cocos2D-x的朋友們!滿(mǎn)碩泉(bill_man)于中國(guó)天津
內(nèi)容概要
《Cocos2D-x權(quán)威指南》是目前Coco2D-x領(lǐng)域內(nèi)容較為全面、系統(tǒng)和極具實(shí)戰(zhàn)性的一本著作,也是技術(shù)版本最新的一本著作。由國(guó)內(nèi)資深的游戲開(kāi)發(fā)工程師和移動(dòng)應(yīng)用開(kāi)發(fā)工程師撰寫(xiě)。書(shū)中不僅系統(tǒng)講解了Cocos2D-x的功能特性、使用方法、技術(shù)要點(diǎn)、高級(jí)知識(shí)、開(kāi)發(fā)技巧、最佳實(shí)踐和性能優(yōu)化,還通過(guò)精心設(shè)計(jì)的游戲案例詳細(xì)講解了Cocos2D-x游戲設(shè)計(jì)與開(kāi)發(fā)的完整過(guò)程,極具啟發(fā)性和可操作性。更為重要的是,《Cocos2D-x權(quán)威指南》將游戲開(kāi)發(fā)人員應(yīng)該掌握的游戲開(kāi)發(fā)思想也融入了其中。
全書(shū)共16章,分為4個(gè)部分:準(zhǔn)備篇(第1~2章)系統(tǒng)介紹了Cocos2D-x的核心概念、主要功能,以及它在Windows、Android、iOS等平臺(tái)下的安裝、配置、交叉編譯環(huán)境的搭建,為后面的開(kāi)發(fā)做準(zhǔn)備;基礎(chǔ)篇(第3~10章)重點(diǎn)講解了Cocos2D-x的功能特性、使用方法、技術(shù)要點(diǎn),包括Cocos2D-x中的核心類(lèi)、動(dòng)作、動(dòng)畫(huà)、特效、文字和字體、事件處理機(jī)制、地圖、聲音以及物理引擎等內(nèi)容,具體結(jié)合Cocos2D-x自帶的tests實(shí)例進(jìn)行講解,目的是讓讀者全面掌握Cocos2D-x的基礎(chǔ)理論和基本使用方法;實(shí)戰(zhàn)篇(第11~12章)利用Cocos2D-x開(kāi)發(fā)了一款縱版射擊游戲和橫版動(dòng)作游戲,旨在讓讀者深入了解完整的游戲開(kāi)發(fā)流程和方法,以及如何將Cocos2D-x的理論知識(shí)用到實(shí)戰(zhàn)中,而且兩種游戲分別代表了縱版卷軸和橫版卷軸,可以讓開(kāi)發(fā)者深入了解不同類(lèi)型游戲的開(kāi)發(fā)思想;高級(jí)篇(第13~16章)講解了Cocos2D-x的高級(jí)知識(shí)、開(kāi)發(fā)技巧以及最佳實(shí)踐,包括粒子系統(tǒng)、游戲中常用算法在Cocos2D-x中的實(shí)現(xiàn)、內(nèi)存管理與性能優(yōu)化,以及Cocos2D-HTML 5等方面的內(nèi)容。
海報(bào):
作者簡(jiǎn)介
滿(mǎn)碩泉(bill man),資深手機(jī)游戲開(kāi)發(fā)工程師和移動(dòng)應(yīng)用開(kāi)發(fā)工程師,在Android和iOS兩個(gè)平臺(tái)上開(kāi)發(fā)了多款游戲,對(duì)Cocos2D-x和Unity3D等游戲引擎有非常深入的研究,積累了豐富的經(jīng)驗(yàn)。精通C++、Java、.NET和JavaScript相關(guān)的技術(shù),近期關(guān)注HTML 5?;钴S于CSDN和Cocos2D等技術(shù)社區(qū),撰寫(xiě)了大量關(guān)于Cocos2D-x的文章,深受廣大網(wǎng)友好評(píng)。
書(shū)籍目錄
前言 第一部分準(zhǔn)備篇 第1章認(rèn)識(shí)Cocos2D—x2 1.1什么是Cocos2D2 1.1.1Cocos2D的特點(diǎn)2 1.1.2Cocos2D的主要功能3 1.1.3Cocos2D的應(yīng)用5 1.2什么是Cocos2D—x6 1.2.1Cocos2D—x的特點(diǎn)6 1.2.2Cocos2D—x的主要功能6 1.2.3Cocos2D—x的應(yīng)用7 1.3Cocos2D—x與Cocos2D—iPhone的比較8 1.4本章小結(jié)10 第2章搭建跨平臺(tái)的開(kāi)發(fā)環(huán)境11 2.1Windows下的開(kāi)發(fā)環(huán)境配置11 2.1.1Cocos2D—x軟件安裝與配置11 2.1.2Cocos2D—x工程目錄介紹13 2.1.3新建項(xiàng)目及交叉編譯14 2.2Android下的開(kāi)發(fā)環(huán)境配置16 2.2.1Cocos2D—x軟件安裝與配置17 2.2.2Cocos2D—x工程目錄介紹23 2.2.3新建項(xiàng)目及交叉編譯23 2.3iOS下的開(kāi)發(fā)環(huán)境配置27 2.3.1Cocos2D—x軟件安裝與配置27 2.3.2Cocos2D—x工程目錄介紹28 2.3.3新建項(xiàng)目及交叉編譯29 2.4使用Doxygen工具生成Cocos2D—x文檔31 2.5本章小結(jié)33 第二部分基礎(chǔ)篇 第3章Cocos2D—x中的核心類(lèi)36 3.1節(jié)點(diǎn)類(lèi)36 3.1.1CCNode類(lèi)的成員數(shù)據(jù)37 3.1.2CCNode類(lèi)的函數(shù)38 3.1.3坐標(biāo)系簡(jiǎn)介41 3.1.4實(shí)例:通過(guò)節(jié)點(diǎn)控制屏幕中的全體渲染對(duì)象43 3.2導(dǎo)演類(lèi)46 3.2.1CCDirector類(lèi)的成員數(shù)據(jù)46 3.2.2CCDirector類(lèi)的函數(shù)47 3.2.3實(shí)例:CCDirector類(lèi)的使用48 3.3場(chǎng)景類(lèi)50 3.3.1如何新建一個(gè)場(chǎng)景50 3.3.2場(chǎng)景的切換52 3.3.3場(chǎng)景間切換的動(dòng)畫(huà)54 3.4布景層類(lèi)56 3.4.1CCLayer類(lèi)的函數(shù)58 3.4.2顏色布景層類(lèi)CCLayerColor59 3.4.3多層布景層類(lèi)CCLayerMultiplex61 3.4.4菜單類(lèi)CCMenu63 3.4.5控件類(lèi)及其子類(lèi)65 3.5精靈類(lèi)69 3.5.1CCSprite類(lèi)的成員數(shù)據(jù)及函數(shù)70 3.5.2貼圖類(lèi)CCTexture2D71 3.5.3精靈批處理類(lèi)CCSpriteBatchNode72 3.5.4精靈幀類(lèi)CCSpriteFrame73 3.5.5精靈幀緩存類(lèi)CCSpriteFrameCache73 3.5.6實(shí)例:精靈類(lèi)及其相關(guān)類(lèi)的使用74 3.6攝像機(jī)類(lèi)79 3.6.1CCCamera類(lèi)的成員數(shù)據(jù)80 3.6.2CCCamera類(lèi)的函數(shù)80 3.6.3實(shí)例:CCCamera類(lèi)的使用80 3.7容器類(lèi)81 3.7.1CCMutableArray和CCArray81 3.7.2CCMutableDictionary和CCDictionary83 3.8拖動(dòng)漸隱效果類(lèi)CCMotionStreak84 3.9繪制圖形86 3.10時(shí)間調(diào)度88 3.11本章小結(jié)89 第4章Cocos2D—x中的動(dòng)作、特效與動(dòng)畫(huà)90 4.1動(dòng)作類(lèi)90 4.1.1CCAction類(lèi)的主要成員數(shù)據(jù)和函數(shù)90 4.1.2基本動(dòng)作91 4.1.3攝像機(jī)動(dòng)作102 4.1.4基本樣條動(dòng)作104 4.1.5緩沖動(dòng)作108 4.1.6組合動(dòng)作111 4.1.7跟隨動(dòng)作113 4.1.8可調(diào)整速度動(dòng)作114 4.1.9動(dòng)作延時(shí)116 4.1.10改變動(dòng)作執(zhí)行對(duì)象116 4.1.11函數(shù)回調(diào)動(dòng)作117 4.1.12過(guò)程動(dòng)作119 4.2動(dòng)作管理類(lèi)121 4.2.1CCActionManager類(lèi)的主要函數(shù)122 4.2.2CCActionManager類(lèi)的使用122 4.3網(wǎng)格動(dòng)作123 4.3.1Cocos2D—x中的網(wǎng)格123 4.3.2網(wǎng)格動(dòng)作124 4.3.3清除網(wǎng)格126 4.4動(dòng)畫(huà)126 4.4.1Cocos2D—x中與動(dòng)畫(huà)相關(guān)的類(lèi)126 4.4.2實(shí)例:Cocos2D—x中的動(dòng)畫(huà)127 4.4.3使用plist配置文件實(shí)現(xiàn)動(dòng)畫(huà)130 4.5本章小結(jié)133 第5章Cocos2D—x中的菜單項(xiàng)和文本渲染系統(tǒng)134 5.1菜單項(xiàng)134 5.1.1標(biāo)簽菜單項(xiàng)134 5.1.2精靈菜單項(xiàng)135 5.1.3觸發(fā)器菜單項(xiàng)135 5.1.4實(shí)例:菜單項(xiàng)的使用136 5.2文本渲染類(lèi)138 5.2.1CCLableAtlas類(lèi)139 5.2.2CCLabelTTF類(lèi)140 5.2.3CCLabelBMFont類(lèi)143 5.2.4生成FNT配置文件的工具144 5.3本章小結(jié)145 第6章Cocos2D—x中的事件處理機(jī)制146 6.1觸屏事件146 6.1.1觸點(diǎn)類(lèi)CCTouch146 6.1.2單/多點(diǎn)觸摸函數(shù)147 6.1.3加入觸摸事件148 6.1.4單點(diǎn)觸摸實(shí)例:主角隨手指移動(dòng)151 6.1.5多點(diǎn)觸摸實(shí)例:縮放功能的實(shí)現(xiàn)154 6.2加速度傳感器事件156 6.2.1CCAccelerometerDelegate類(lèi)的函數(shù)156 6.2.2實(shí)例:加速度傳感器事件的使用157 6.3按鍵事件159 6.3.1CCKeypadDelegate類(lèi)的函數(shù)159 6.3.2實(shí)例:按鍵事件的使用159 6.4獲得用戶(hù)虛擬鍵盤(pán)輸入161 6.4.1CCIMEDelegate類(lèi)的函數(shù)161 6.4.2CCTextFieldTTF類(lèi)的函數(shù)161 6.4.3實(shí)例:獲得用戶(hù)輸入162 6.5滾動(dòng)列表類(lèi)163 6.5.1CCListView類(lèi)及其相關(guān)類(lèi)的函數(shù)163 6.5.2實(shí)例:滾動(dòng)列表類(lèi)的使用164 6.6本章小結(jié)167 第7章Cocos2D—x中的瓦片地圖集168 7.1瓦片地圖集及編輯器168 7.1.1瓦片地圖的種類(lèi)及用途168 7.1.2Tiled地圖編輯器169 7.1.3用Tiled地圖編輯器編輯地圖170 7.1.4添加精靈層173 7.1.5Tiled地圖編輯器數(shù)據(jù)文件173 7.1.6瓦片地圖集類(lèi)CCTMXTiledMap174 7.1.7地圖層類(lèi)CCTMXLayer175 7.1.8地圖精靈組類(lèi)CCTMXObjectGroup176 7.2如何在Cocos2D—x中使用地圖176 7.2.1新建地圖類(lèi)并在地圖中顯示177 7.2.2普通視角地圖獲得對(duì)應(yīng)位置圖素178 7.2.345度角地圖獲得對(duì)應(yīng)位置圖素179 7.2.4GID值實(shí)例:種樹(shù)180 7.2.5地圖屬性數(shù)據(jù)的使用182 7.2.6在地圖中加入精靈182 7.2.7精靈層的使用186 7.3貼圖地圖類(lèi)CCTileMapAtlas188 7.4本章小結(jié)189 第8章Cocos2D—x中的聲音、存儲(chǔ)和網(wǎng)絡(luò)190 8.1聲音190 8.1.1Cocos2D—x在不同平臺(tái)下支持的聲音190 8.1.2SimpleAudioEngine類(lèi)的常用函數(shù)191 8.1.3實(shí)例:SimpleAudioEngine類(lèi)的使用191 8.2游戲存檔194 8.2.1CCUserDefault類(lèi)的常用函數(shù)195 8.2.2實(shí)例:CCUserDefault類(lèi)的使用195 8.3網(wǎng)絡(luò)連接197 8.3.1cURL基礎(chǔ)知識(shí)198 8.3.2libcurl基礎(chǔ)知識(shí)198 8.3.3實(shí)例:cURL的使用200 8.4本章小結(jié)200 第9章可視化場(chǎng)景編輯器202 9.1CocosBuilder簡(jiǎn)介202 9.2CocosBuilder編輯器的使用202 9.2.1CocosBuilder菜單操作202 9.2.2對(duì)象屬性編輯206 9.3CocosBuilder的使用210 9.3.1CocosBuilder在Cocos2D—x中使用的相關(guān)類(lèi)210 9.3.2實(shí)例:CocosBuilder在Cocos2D—x中的使用212 9.4本章小結(jié)218 第10章Cocos2D—x中的物理引擎219 10.1物理引擎219 10.1.1什么是物理引擎219 10.1.2物理引擎的作用219 10.1.3Box2D和Chipmunk的對(duì)比220 10.2Box2D物理引擎220 10.2.1Box2D引擎中的重要概念221 10.2.2Box2D的使用步驟221 10.2.3在Cocos2D—x中使用Box2D221 10.3在Cocos2D—x中使用Chipmunk229 10.4本章小結(jié)233 第三部分實(shí)戰(zhàn)篇 第11章縱版射擊游戲:喵星戰(zhàn)爭(zhēng)236 11.1縱版射擊游戲的特點(diǎn)236 11.2喵星戰(zhàn)爭(zhēng)簡(jiǎn)介237 11.2.1喵星戰(zhàn)爭(zhēng)的游戲規(guī)則237 11.2.2喵星戰(zhàn)爭(zhēng)的游戲框架和界面237 11.3喵星戰(zhàn)爭(zhēng)主游戲模塊組成元素的實(shí)現(xiàn)239 11.3.1主角小貓的實(shí)現(xiàn)239 11.3.2敵人狗博士的實(shí)現(xiàn)244 11.3.3魚(yú)骨子彈的實(shí)現(xiàn)247 11.3.4試管子彈的實(shí)現(xiàn)248 11.3.5游戲分?jǐn)?shù)的實(shí)現(xiàn)248 11.4游戲主模塊的實(shí)現(xiàn)251 11.5游戲主菜單的實(shí)現(xiàn)256 11.6關(guān)于界面的實(shí)現(xiàn)259 11.7本章小結(jié)260 第12章橫版動(dòng)作游戲:蘿莉快跑261 12.1橫版動(dòng)作游戲的特點(diǎn)261 12.2蘿莉快跑簡(jiǎn)介262 12.2.1蘿莉快跑的游戲規(guī)則262 12.2.2蘿莉快跑的游戲框架和界面262 12.3蘿莉快跑主游戲模塊組成元素的實(shí)現(xiàn)264 12.3.1主角蘿莉的實(shí)現(xiàn)264 12.3.2星星的實(shí)現(xiàn)268 12.3.3地圖的實(shí)現(xiàn)269 12.4游戲主模塊的實(shí)現(xiàn)273 12.5游戲主菜單的實(shí)現(xiàn)277 12.6關(guān)于界面的實(shí)現(xiàn)279 12.7本章小結(jié)280 第四部分高級(jí)篇 第13章粒子系統(tǒng)282 13.1什么是粒子系統(tǒng)282 13.1.1粒子系統(tǒng)的特點(diǎn)283 13.1.2粒子系統(tǒng)的構(gòu)成283 13.2Cocos2D—x中的粒子系統(tǒng)283 13.2.1粒子系統(tǒng)基類(lèi)CCParticleSystem285 13.2.2放射式粒子系統(tǒng)CCParticleSystemQuad285 13.3在Cocos2D—x中使用粒子系統(tǒng)287 13.3.1新建一個(gè)粒子系統(tǒng)CCParticleSystemQuad類(lèi)287 13.3.2直接使用CCParticleSystemQuad類(lèi)的子類(lèi)創(chuàng)建粒子系統(tǒng)289 13.3.3使用粒子編輯器創(chuàng)建粒子系統(tǒng)290 13.3.4“清理”粒子系統(tǒng)291 13.4支持Cocos2D—x的粒子編輯器291 13.4.1Windows粒子編輯器Cocos2dParticleEditor292 13.4.2粒子編輯器ParticleDesigner296 13.5本章小結(jié)303 第14章游戲中常用算法在Cocos2D—x中的實(shí)現(xiàn)304 14.1A星算法304 14.1.1啟發(fā)式搜索算法原理304 14.1.2什么是A星搜索305 14.1.3A星算法在Cocos2D—x中的實(shí)現(xiàn)306 14.2碰撞檢測(cè)318 14.2.1碰撞檢測(cè)的基本思想319 14.2.2碰撞檢測(cè)在Cocos2D—x中的實(shí)現(xiàn)320 14.3本章小結(jié)326 第15章內(nèi)存管理與性能優(yōu)化327 15.1Cocos2D—x中的內(nèi)存管理327 15.1.1Cocos2D—x內(nèi)存管理的原則327 15.1.2Cocos2D—x中的圖片處理328 15.2Cocos2D—x對(duì)圖片渲染的控制330 15.2.1CCRenderTexture的使用330 15.2.2Cocos2D—x中繪制方法的對(duì)比332 15.3Cocos2D—x中處理圖片的方法333 15.3.1高清圖片的處理333 15.3.2抗鋸齒處理334 15.3.3Mipmap處理335 15.3.4獲得貼圖數(shù)和大小337 15.4多語(yǔ)言混編Cocos2D—x337 15.4.1Cocos2D—x中調(diào)用Objective—C337 15.4.2Cocos2D—x中調(diào)用Java338 15.5Cocos2D—x的調(diào)試339 15.5.1VisualStudio中的調(diào)試方法339 15.5.2Eclipse中的調(diào)試方法339 15.5.3Xcode中的調(diào)試方法342 15.6Android中畫(huà)面的縮放問(wèn)題346 15.6.1等比例縮放346 15.6.2非等比例縮放346 15.7本章小結(jié)348 第16章Cocos2D的分支Cocos2D—HTML5349 16.1認(rèn)識(shí)HTML5349 16.2如何使用Cocos2D—HTML5350 16.2.1搭建Cocos2D—HTML5的開(kāi)發(fā)環(huán)境351 16.2.2Cocos2D—HTML52.0版本的新特性355 16.2.3Cocos2D—HTML5的HelloWorld項(xiàng)目介紹355 16.3Cocos2D—x的未來(lái)363 16.4本章小結(jié)363 附錄Cocos2D—x中常見(jiàn)的宏365
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 動(dòng)作:可組合精靈的動(dòng)作(如移動(dòng)、旋轉(zhuǎn)和縮放等),使精靈動(dòng)起來(lái)。 特效:包括波浪、旋轉(zhuǎn)和透鏡等特性。 平面地圖:支持平面地圖和45度角地圖。 轉(zhuǎn)換:從一個(gè)場(chǎng)景移動(dòng)到另外一個(gè)不同的場(chǎng)景。 菜單:創(chuàng)建內(nèi)部菜單,包括主菜單和游戲菜單。 文本渲染:支持文本渲染標(biāo)簽。 文檔:包括編程指南、API參考、視頻教學(xué)和很多簡(jiǎn)單的測(cè)試?yán)印?BSD許可:BSD(Berkly Software Distribution,伯克利軟件套件)開(kāi)源協(xié)議給予使用者很大的自由。使用者可以自由使用、修改源代碼,也可以將修改后的代碼作為開(kāi)源或者專(zhuān)有軟件再次發(fā)布。 基于OpenGL:支持硬件加速。 2012年6月,Cocos2D—x發(fā)布了2.0版本(本書(shū)成書(shū)之時(shí)的最新版本是2.01版本,本書(shū)的示例也將使用2.01版本)。 Cocos2D—x的2.0以上版本采用OpenGL ES的2.0分支,支持CocosBuilder編輯器,并且支持一些擴(kuò)展類(lèi),包括CCControlExtension、CCNotification、CCListView等,還支持JavaScript腳本的編寫(xiě),并且最新版本只支持iOS、Android和Win32三個(gè)平臺(tái)。圖1—9所示是國(guó)外網(wǎng)友為Cocos2D—x制作的廣告,說(shuō)明了Cocos2D—x對(duì)于iOS和Android兩個(gè)主流平臺(tái)的支持。 1.2.3 Cocos2D—x的應(yīng)用 由于跨平臺(tái)的特性,Cocos2D—x得到了諸多開(kāi)發(fā)者的喜愛(ài)。截至2012年4月月底,使用Cocos2D—x開(kāi)發(fā)的游戲有200多個(gè),同時(shí)有很多用Cocos2D—iPhone開(kāi)發(fā)的游戲的移植版本。圖1—10所示為使用Cocos2D—x開(kāi)發(fā)的部分游戲。 開(kāi)發(fā)者也嘗試著使用Cocos2D—x實(shí)現(xiàn)很多不同游戲中的效果。CocoaChina論壇舉辦的特效大賽中,很多特效都基于Cocos2D—x游戲引擎開(kāi)發(fā)。從顯示水波紋效果到塔防游戲例子,從切繩子特效到“憤怒小鳥(niǎo)”太空版效果模擬,Cocos2D—x的“江湖霸主”地位初步顯現(xiàn)。圖1—11所示為部分特效示意圖。偏移量等,如圖7—5所示。 3)選擇完成圖塊后,左下角的部分就顯示了目前的圖塊,選擇相應(yīng)圖塊便可以填充某圖了,如圖7—6所示。 4)可以右鍵選擇圖塊添加屬性,彈出的對(duì)話(huà)框如圖7—7所示,圖塊的數(shù)據(jù)可以在程序中獲得。關(guān)于如何獲得,將在后面詳細(xì)介紹。 5)工具欄中提供了不同工具填充,包括圖章刷、填充、橡皮擦和選擇矩形區(qū)域等。可以使用圖章刷為每個(gè)格填充圖素,填充是批量地填充圖素,橡皮擦可以擦掉之前的填充圖素,如圖7—8所示。 6)屏幕的右上角為圖層編輯部分,如圖7—9所示。
編輯推薦
《Cocos2D-x權(quán)威指南》是資深游戲開(kāi)發(fā)工程師根據(jù)Cocos2D-x的2.0.1版本撰寫(xiě),內(nèi)容全面,系統(tǒng)講解了Cocos2D-x的功能特性、使用方法、技術(shù)要點(diǎn)、開(kāi)發(fā)技巧、最佳實(shí)踐以及性能優(yōu)化,同時(shí)融入了游戲開(kāi)發(fā)的思想;實(shí)戰(zhàn)性強(qiáng),每個(gè)知識(shí)點(diǎn)輔之以便于理解的小案例,而且通過(guò)精心設(shè)計(jì)的兩款游戲案例完美呈現(xiàn)了Cocos2D-x游戲設(shè)計(jì)與開(kāi)發(fā)的完整過(guò)程,極富啟發(fā)性。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版