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