-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Cocos2D應用開發實踐指南:利用Cocos2D、Box2D和Chipmunk開發iOS游戲

( 簡體 字)
作者:(美)Rod Strougo Ray Wenderlich類別:1. -> 程式設計 -> 手機程式 -> Cocos2d
譯者:
出版社:機械工業出版社Cocos2D應用開發實踐指南:利用Cocos2D、Box2D和Chipmunk開發iOS游戲 3dWoo書號: 35971
詢問書籍請說出此書號!

缺書
NT售價: 495

出版日:6/1/2013
頁數:469
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111425076
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

你想成為一個游戲開發者嗎?

為iPhone或iPad開發游戲可以獲得極大樂趣。這是少數幾件能讓你找回童年感覺的事情之一。似乎每個人都有關于游戲的創意,還有比iPhone和iPad更好的開發平臺嗎?

游戲開發涵蓋廣泛的計算機科學技能—圖形、音頻、網絡,有時讓人應接不暇而失去信心,這是阻礙大部分人真正著手開發游戲的原因。當首次開始時,能自如運用Objective-C語言可能已經是一個艱巨的任務,尤其是看到OpenGL ES、OpenAL和其他低層游戲應用程序接口時,會感到更加困難。

為iPhone和iPad開發游戲不需如此困難,的確如此。對于簡化2D游戲開發任務,沒有比Cocos2D更有遠見的做法了。

我們不再需要為制作iPhone游戲而不得以使用低層OpenGL編程API,同時你不需要是數學或物理專家。當前有一個更快捷、更方便的途徑—使用流行且免費的開源游戲開發框架Cocos2D。Cocos2D非常有趣且易于使用,使用它你可以跳過低層細節,專注于使游戲與眾不同。

本書教授如何使用Cocos2D制作自己的游戲,現在就引導你一步步領略制作一個真正的蘋果應用軟件商店(App Store)游戲的過程!本書中編寫的游戲名為“Space Viking”,講述了一個厲害的維京海盜被傳送到陌生星球的故事。在游戲制作過程中,可以獲得使用Cocos2D框架所有重要元素的直接經驗,并了解到每個元素如何相互協作而成為一個完整的游戲。

下載游戲

你可以從蘋果應用軟件商店下載Space Viking游戲:http://itunes.apple.com/us/app/ space-vikings/id400657526mt=8。這個游戲是免費的,所以繼續并且下載游戲,開始運行游戲,看看你是否足夠厲害,可以將游戲打通關。

這部史詩般教程將向你展示如何使用Cocos2D制作一款真正的游戲。書中有許多代碼可供實踐,與此同時我們會解釋每個步驟。當你讀完本書并完成相應的編碼后,你將完成一個完整的游戲。最棒的是,你將獲得制作自己的游戲項目所需的知識和信心。

書中每一章會詳細介紹游戲中的一個特定組件,以及支撐它所需的技術,不管是瓷片地圖編輯器(tile map editor),還是我們用Cocos2D、Box2D及Chipmunk創建的一些特效。在完成功能和技術介紹后,該章還會詳細介紹如何在Space Viking游戲中實現該組件。這種理論與實踐相結合的方式填補了其他游戲開發書籍的空白。

Cocos2D是什么

Cocos2D(www.cocos2d-iphone.org)是一個開源的、基于Objective-C開發語言的、專注于iOS和Mac OS X平臺的2D游戲開發框架,可以為 iPhone、iPad、iPod Touch、Mac等硬件設備開發游戲。Cocos2D既可以作為庫文件導入Xcode創建的項目中,也可以在使用Cocos2D模板創建新游戲時自動添加進去。

Cocos2D框架使用OpenGL ES類庫進行圖形渲染,讓用戶在目標設備上獲得圖形處理器(GPU)的極高速度和性能。Cocos2D框架還有許多其他特性和能力,通過本書你會逐漸了解到。

Cocos2D起初是一個用于2D游戲編寫的Python框架。2008年年底,它被移植到iPhone平臺,并使用Objective-C重寫。現在已被廣泛移植到Ruby、Java(Android)和Mono(C#/.NET)上。

注意 Cocos2D有一個充滿活力的、積極的支持者與貢獻者社區。Cocos2D論壇(www.cocos2d-iphone.org/forum)非常活躍,是學習和解決問題的一個非常優秀的資源,同時該論壇積極跟蹤著Cocos2D的最新發展。

為什么應該使用Cocos2D

Cocos2D框架可使開發者避免糾纏于低層API,集中精力在游戲項目核心上。App Store這個市場流動性很強,經常發生變化。快速創建游戲原型并將其開發出來是在App Store獲得商業成功的關鍵,而Cocos2D是避免陷入學習OpenGL ES或OpenAL的泥潭,快速開發游戲項目的最佳工具。

Cocos2D也同樣自帶大量工具類,例如TextureCache(紋理緩存),它能自動緩存圖形,支持游戲快速平滑播放。 TextureCache在后臺運行,是許多你甚至不用知道如何使用的Cocos2D功能中的一個,這些功能對你是顯而易見的。其他有用的工具包括字體渲染、精靈表(sprite sheet)、強大的聲音系統等。

Cocos2D是一個極佳的原型開發工具,能幫助你在一小時內(無論如何不會超過你閱讀第2章所花費的時間)快速開發出屬于你的游戲。你閱讀本書是因為你想要為iPhone、iPad設備開發游戲,而毫無疑問,使用Cocos2D是達到此目的的最快方式。

Cocos2D關鍵特性

你仍然不確定Cocos2D是否合適?好吧,看看這些可以使你在制作下一個游戲時輕松許多的Cocos2D的驚人特性。

動作

動作(Action)是Cocos2D中最強大的功能之一。動作可以讓你輕松地移動、縮放、控制精靈和其他對象。舉個例子,在5秒內平滑地移動太空貨運飛船,在屏幕上向右前進400像素的距離,需要的所有代碼如下:



就是這樣,只有兩行代碼!圖P.1闡釋了作用于太空貨運飛船的moveAction。



圖P.1 闡釋了作用于太空貨運飛船精靈的moveAction的效果

在Cocos2D中有許多內置動作:旋轉、縮放、跳躍、閃爍、淡入淡出、著色、動畫序列等。也可以把一些動作串聯在一起,并且用很少的代碼調用自定義回調得到很棒的效果。

內置字體支持

Cocos2D使得文本的處理變得很方便,這對于游戲的菜單系統、分數顯示、調試,以及更多功能十分重要。Cocos2D包含嵌入TrueType字體支持,也包含一個快速位圖字體渲染系統,所以只需要幾行代碼就可以在屏幕上顯示文本。

龐大的特效庫

Cocos2D包含一個強大的粒子系統,可以很方便地為游戲添加諸如煙霧、火焰、雨滴和雪花等很酷的特效。Cocos2D也內置了諸如翻轉、漸現漸隱等游戲中屏幕間轉換的特效。

理想的瓷片地圖游戲支持

Cocos2D包含對瓷片地圖(tile-mapped)游戲的內置支持,當擁有一個由微小的可復用圖片組成的巨大游戲世界時,這是非常有用的。Cocos2D也使得來回移動攝像機(camera)以滾動背景或層變得很方便。最后,Cocos2D也支持視差滾動,從而賦予游戲3D深度錯覺和透視效果。

音頻/聲音支持

Cocos2D中的聲音引擎允許你方便地使用OpenAL的強大威力,而不用關心低層API。使用Cocos2D聲音引擎,只需要一行代碼即可播放背景音樂或音效。

兩個強大的物理引擎

Cocos2D捆綁了兩個強大的物理引擎,Box2D和Chipmunk,它們對游戲來說都是很棒的。使用這兩個物理引擎,你可以為游戲營造前所未有的真實感,并創建出全新的游戲類型—而不需要是一個數學大師。

重要概念

在開始之前,重要的是確保你熟悉關于Cocos2D和游戲編程通用的一些重要概念。

精靈

可以看到術語“精靈”(sprite)經常使用在游戲開發中。精靈是一個可以獨立于其他圖像在屏幕上移動的圖像,可以是玩家角色、敵人,或者是用于背景中的一張大圖。實際上,精靈主要由PNG或PVRTC格式的圖像文件構成。一旦被加載到內存中,精靈通過iPhone GPU轉換成紋理,渲染到屏幕上。

單例

單例(singleton)是一個特殊類型的Objective-C類,它只有一個實例。一個例子是,iPhone應用委托類(Application Delegate class),或Cocos2D中的Director類。在代碼中調用一個單例實例時,無論是哪個類調用它,總是會獲取到這個類的唯一一個實例對象。

OpenGL ES

OpenGL ES是一個移動版本(ES表示嵌入式系統,Embedded System)的開放圖形語言(Open Graphics Language, OpenGL)。它是你在iPhone或iPad上將0和1發送給GPU的最常用語言。OpenGL ES是在iPhone或iPad上渲染圖形的最快方式,由于它的起源,它是一個低層的應用程序編程接口。如果你是一個游戲開發新手,會覺得OpenGL ES很難學習,但是幸運的是使用Cocos2D不需要了解OpenGL ES。

在iPhone和iPad上,支持兩個版本的OpenGL ES,即OpenGL ES 1.1和2.0。Cocos2D中計劃支持OpenGL ES 2.0,但當前只支持1.1版本。

語言和屏幕分辨率

Cocos2D由Objective-C語言編寫而成,與編寫Cocoa Touch類庫和主要的Apple iOS API的語言相同。在Objective-C中,了解一些基本的內存管理技術是很重要的,因為它是讓你在iOS平臺上成為一個高效游戲開發者的基礎。Cocos2D支持從最早期的iPhone到iPad再到iPhone 4上的視網膜屏(retina)顯示,支持所有設備的原生分辨率。

2D與3D

要想跑得先學會走。游戲開發也是如此,在潛心于3D游戲的更深層概念之前,要學習如何制作2D游戲。在Cocos2D中有一些3D特效和轉換,例如一個3D聲波特效和一個軌道攝像機移動,然而,大部分功能是面向2D游戲和圖形的。

Cocos2D是為2D游戲設計的(因此名字中有2D字眼),所以本書中的指南和例子也是2D的。如果想要制作3D游戲,你要考慮不同的框架,例如Unity、Unreal Engine(虛幻引擎),或直接使用OpenGL。

本書背后的游戲:Space Viking

本書將帶你體驗為iPhone和iPad創建一個全功能的基于Cocos2D的游戲的全過程。在本書中創建的游戲名為Space Viking。如果想要現在嘗試一下游戲,可以在App Store(http://itunes.apple.com/us/app/id400657526)下載一個游戲的免費版本,并且在iPhone、iPod touch或iPad上安裝它。

當然,如果你更有耐心,可以在學完本書后,構建屬于自己的游戲,并且在設備上加載它。沒有比有能力測試自己構建的游戲更美妙的學習經歷了。

你不僅可以學到如何構建游戲,還可以回過頭去,調整一下代碼以改變相關的事情,去看看對游戲體驗有哪些具體影響。好東西只給善于等待的人。

本書將教你如何使用Cocos2D的全部特性和能力,但更為重要的是,如何把它們應用于真正的游戲中。在學完本書后,你將擁有在App Store發布游戲的必要知識和經驗。從構建Space Viking游戲學得的概念適用于從動作到解謎等不同種類的游戲。

Space Viking的故事

每個游戲都從創意開始,用角色和故事情節將其轉化成游戲。這里是Space Viking的故事。

在未來,地球上的人類后裔被迫殖民到太陽系之外的行星。為了創造氣候宜人的環境,龐大的星際機器在北歐和格陵蘭島采掘巨大的冰塊,橫跨星系運送到這些星球。科學家們不清楚,在這些冰塊的一塊中包裹著北歐海盜Ole,他在億萬年前,在擊敗入侵蠻族回家的路上跌入了冰冷的河水中,被裝在一個冰冷的墳墓中過了許多世紀,由于外星太陽的溫暖,Ole在幾千年后蘇醒—距離家鄉幾光年之外,如圖P.2所示。

你開始扮演維京海盜Ole,并且與外星人戰斗在陌生的世界中,希望找到一條路讓Ole回到他的故鄉和時代。

使用屏幕左側的拇指游戲操縱桿,控制Ole左右移動。右側是跳躍和攻擊按鍵。開始Ole只使用雙拳。在后來的關卡(level)Ole找到了他信賴的木槌,在物理關卡使用加速計控制Ole。

Space Viking是一個動作冒險類游戲,動作是其重點。我們的目標是從無到有創建一個真正的游戲,所以可以學習到不只是Cocos2D的知識,還有如何在一個全功能的游戲中使用它。游戲創意來自概念藝術家、圖形藝術家Eric Stevens和其他一些資深游戲玩家,在開發早期我們共同討論了這個游戲創意。

Space Viking由許多關卡構成,每個關卡展示Cocos2D或游戲類型的一部分。例如,第一關是一個橫向滾動的生死戰(beat抏m up),第四關是一個小車競速關卡,這個關卡展示了來自Box2D和Chipmunk引擎的游戲物理效果。我們希望你可以在完成本書后,復用Space Viking游戲的一部分,制作自己的游戲!沒錯,你可以自由地復用本書中的代碼來構建自己的游戲。

本書的組織結構

本書的目標是隨著構建Space Viking游戲講解關于使用Cocos2D開發游戲的知識(了解更多關于探索和維京海盜Ole的故事)。我們將從一個簡單的關卡和一些基本的游戲機制開始,通過努力提升以創建使用物理系統和粒子系統的關卡,最終到本書末尾完成游戲。

首先學習Cocos2D的基礎知識,用Ole的基本的奔跑和跳躍移動創建一個小的關卡。第二部分展示如何為Space Viking添加動畫序列(animation)、動作、特效和文字。第三部分游戲更進一步,添加更多關卡和場景、聲音和滾動的游戲體驗。在第四部分中,用Box2D和Chipmunk物理引擎把真實感帶到游戲中。最終在第五部分中,學習如何添加粒子系統、添加高分榜、連接到社交網絡,以及調試優化Space Viking以為未來構建游戲找出最佳實踐。

本書中有17章和一個附錄,每章處理創建Space Viking的一個特定部分。

第一部分

學習如何安裝Cocos2D并且開始使用它創建Space Viking。

學習如何為Ole和他的敵人添加動畫序列,并讓他們運動。

□ 第1章

本章介紹如何在Xcode中安裝Cocos2D框架和模板,以及一些方便游戲開發的配套工具。這些工具都可以免費使用,并且有助于創建Cocos2D使用的元素。

□ 第2章

這里創建了Space Viking的基礎,這個游戲貫穿全書。起初只是一個基本的Cocos2D模板,并且添加英雄(維京海盜Ole)到屏幕上。在本章的第二部分,添加處理觸摸輸入的方法,包括來回移動Ole,并使他跳躍。

□ 第3章

在本章中,通過給Ole在屏幕上移動時添加動畫序列,學習如何讓游戲看起來更具有真實性。

□ 第4章

在本章中,學習如何實現簡單的碰撞檢測,以及添加第一個敵人到Space Viking游戲中,這樣Ole可以開始戰斗以離開這個星球!

第二部分

學習如何為Ole的戰斗創建更復雜的敵人,在此過程中學習Cocos2D動作和特效。使用Cocos2D文本功能,完成一個現場的、屏幕上的調試系統。

□ 第5章

動作是Cocos2D中的一個關鍵概念—是來回移動對象、使它們變大或者消失等的簡單方式。在本章中,通過添加道具和武器到關卡實踐它們(動作),并學習其他一些重要的Cocos2D能力,例如特效和調度器(scheduler)。

□ 第6章

大部分游戲中都有文字,Space Viking也不例外。在本章中,學習使用Cocos2D中不同的可用方法,將文字添加到游戲中。

第三部分

學習如何通過添加菜單、使用聲音和滾動,來擴展已經構建完整的Space Viking游戲關卡。

□ 第7章

幾乎所有的游戲都不止一個“屏幕”(screen,或稱“場景”(scene),在Cocos2D中稱為場景),通常至少是主菜單、主游戲場景、關卡完成和致謝場景。在本章中,通過在Space Viking中實現它們來學習如何創建多場景。

□ 第8章

在游戲中添加音效和音樂,可以大大提升游戲體驗。Cocos2D使用CocosDenshion聲音引擎使這變得十分簡單,所以本章中,嘗試一下它!

□ 第9章

大部分游戲都有一個單一屏幕不能容納的世界,所以這個世界需要隨著玩家的移動而滾動。正確處理這個問題是一個技巧,所以本章展示如何轉換一個“生死戰”為橫向滾動(sidescroller),使用Cocos2D瓷片地圖以提高效率。

第四部分

Box2D和Chipmunk物理引擎包含在Cocos2D中,可用來為游戲添加驚人的特效,例如重力、逼真的碰撞,甚至人偶動畫(ragdoll)效果。在這個部分將為Space Viking添加一些基于物理(physics-based)的從簡單到高級的關卡。

□ 第10章

正如Cocos2D可以使你在不了解OpenGL低層細節的情況下,很容易地為iPhone制作游戲一樣,利用Box2D你可以很容易地為游戲對象添加物理效果,而不必是一個數學專家。在本章中,通過創建一個對象根據重力移動的有趣的解謎游戲,來學習如何開始使用Box2D。

□ 第11章

在本章中,通過啟動橫向滾動小車競速游戲,展示了一些Box2D可以處理的純粹的物體。在此過程中,你將學習如何模擬任意形狀的圖形、添加物理形體的關節移動約束,以及更多內容!

□ 第12章

在本章中,通過添加要躲避的尖刺和史詩般的關底戰,為小車競速關卡添加更多令人驚嘆的效果。將學習關節、如何檢測碰撞,以及如何為敵人添加邏輯。

□ 第13章

Cocos2D自帶的第二個物理引擎名為Chipmunk,與Box2D相似。本章展示了如何使用Chipmunk引擎,將其與Box2D進行比較,以及通過制作一個銀河戰士風格的逃逸關卡,幫讀者獲得直接的實踐經驗。

第五部分

學習如何快速創建粒子系統并將其添加到游戲中,如何為在線高分榜和成就系統整合蘋果游戲中心(Apple抯 Game Center),以及一些性能主題和技巧以使游戲運行得更快。

□ 第14章

使用Cocos2D的粒子系統可以為游戲添加一些令人驚嘆的特效—極其簡單!在本章中,將學習如何使用粒子系統為Space Viking添加一些特效,例如飛船尾焰。

□ 第15章

利用蘋果游戲中心,可以十分方便地為游戲添加成就系統和高分榜,對玩家來說會有更多的樂趣,也可能會幫助提高銷量。本章介紹如何在Space Viking中一步步設置。

□ 第16章

在本章中,將學習如何解決優化中要面對的一些常見挑戰和問題,以及最大程度優化和完善Cocos2D游戲。你可以獲得最常用的調試性能問題的經驗和解決方案。

□ 第17章

最后一章回顧了所學的知識,并且介紹下一步的方向:3D,在其他平臺(例如Android)使用Cocos2D以及更多高級的游戲開發主題。

□ 附錄

附錄提供了一個Cocos2D中將要使用的主要類的概述。

此時你已經完成了本書的閱讀,將擁有從頭制作一個很棒的游戲的實際經驗!可以采用所學到的概念(甚至是一些代碼),把自己的游戲變成現實。

本書的讀者

本書的讀者包括那些遲遲不愿進行游戲開發的開發人員,因為他們認為學習會很漫長、很復雜。許許多多的開發者有編寫游戲的意愿,但是不清楚從哪里入手游戲開發或Cocos2D框架。本書是一本指南,引導你從非常初級的Cocos2D使用到運用Box2D和Chipmunk物理引擎中的高級物理概念。

本書是針對有興趣在包括iPhone、iPad和iPod touch等iOS設備上創建游戲的開發者。本書假定讀者對Objective-C、Cocoa Touch和Xcode工具有基本的了解。不需要了解任何低級應用程序接口(Core Audio、OpenGL ES等),因為這些都是在Cocos2D內部使用的。

本書的目標讀者

如果你已經在為其他平臺的iPhone開發應用程序,但是想要從功能應用轉移到游戲,那么本書很適合你。本書基于讀者已掌握的開發知識,通過介紹術語、技術和必要的工具,以及一個真實的游戲實現例子,引領讀者步入游戲開發的世界。

非本書的目標讀者

如果讀者已經理解創建一個游戲必要的工作流,或者有一個堅定的游戲創意必須要為3D圖形使用OpenGL ES,那么本書不適合這樣的讀者。

我們期望,在閱讀本書之前,讀者已經熟悉了Objective-C、C、Xcode和Interface Builder。雖然本書中所描述的實現已經盡可能簡單,對C語言的使用也是最低限度的,但這些語言的堅實基礎是必備的。

以下書籍可以幫助提供通讀本書的必要背景知識:



這些書和其他能在網絡上找到的資源,將幫助讀者學習更多在Mac和iPhone上編程的方法,讓讀者更深入地了解Objective-C語言和Cocoa框架的知識。

源碼、視頻指南和論壇

獲取信息不局限于本書。還有完整的(也包括Space Viking的全部源代碼)源碼和視頻指南(可以在http://cocos2Dbook.com下載)可幫助讀者掌握每章介紹的概念。

貫穿全書有大量的代碼和習題,所以假定讀者已經獲取了蘋果開發工具,例如Xcode和iPhone SDK。所有這些工具都可以從蘋果iPhone開發中心下載:http://developer.apple.com/iphone。

在閱讀本書時,如果想與同行交流,可以訪問本書的論壇http://cocos2dbook.com/forums/。

致謝

如果沒有以下這些人的辛勤工作、熱心投入以及全力支持,本書不會完成:

首先,感謝我們的編輯Chuck Toporek及其助手Olivia Basegio。Chuck在完成本書的過程中給予了我們太多的耐心幫助和鼓勵(盡管我們兩個都是第一次寫書),并協調管理了把一個簡單的Word文檔變成讀者今天手中所捧的這本書的全部工作。Olivia在整本書編寫過程中,對成員間的工作協調以及技術評審有著巨大的貢獻。再次感謝你們使本書得以問世!

另一位我要感謝的人是Addison-Wesley公司的Chuti Prasertsith,他為本書精心設計了封面。

衷心感謝Cocos2D的主開發者兼協調者Ricardo Quesada(也被稱為Riq),以及其他的Cocos2D貢獻者,如Steve Oldmeadow及其他同仁。如若沒有Riq團隊的苦心經營和他們的奉獻精神,便不會有Cocos2D今天所擁有的完善框架和社區,更不會有這本書的誕生。同時,我們相信Cocos2D已經給很多人的生活帶來了顛覆性的改變,使他們夢想擁有專屬于自己游戲的愿望得以實現。Riq把Cocos2D作為他的全職工作,如果你想感謝他為本書所做出的辛勤付出,可以登錄www.cocos2d-iphone.org/store為他捧場。Riq也出售他的游戲Sapus Tongue的源代碼,以及一個名為Level-SVG的優秀物理編輯器。想了解更多的內容,請登錄 www.sapusmedia.com。

感謝Erin Catto(Box2D首席開發者)和Scott Lembcke(Chipmunk首席開發者)在非凡的物理引擎庫上的工作。如Riq對Cocos2D所做出的貢獻一樣,Erin和Scott的團隊使無數程序員得以更加輕松快捷地寫好一款很炫酷的基于物理的游戲。Erin和Scott極其投入地專注于對物理庫和社區的支持與維護,并抽出時間來評審本書中物理引擎相關的章節。如果你想為Erin或者Scott在物理引擎庫上的辛勤工作捐款,可以訪問以下鏈接:www.box2d.org和http://code.google.com/p/chipmunk-physics。

十分感謝Cocos2D聲音引擎CocosDenshion的首席開發者Steve Oldmeadow。Steve評審了音頻章節。Steve的付出使很多游戲開發者可以快速輕松地為他們的游戲添加音樂和音效。

Eric Stevens是美國杰出藝術家、兼職游戲插畫家。他和我們緊密合作,制作了游戲中的所有音效(包括Ole蘇醒)。Eric維護著插畫站點http://imagedesk.org,你可以在美國西南部的幾個畫廊上以及http://ericstevensart.com看到他的作品。

音樂家Mike Weiser為Space Viking游戲制作了搖滾聲軌和音效。我們認為音樂使Space Viking游戲與一般游戲有巨大的不同,真正給了我們期許的音樂氣氛。特別感謝Andrew Peplinski的維京海盜呼嚕聲和Rulon Brown帶來的在游戲開始時聽到的和聲。Mike為許多流行的iOS游戲制作了音樂,可以在www.mikeweisermusic.com了解更多他的作品。

萬分感謝我們的技術審校:Farim Farook、Marc Hebert、Mark Hurley、Mike Leonardi,以及Nick Waynik。這些工作伙伴及時地糾正在整個過程中我們正要犯下的愚鈍錯誤,并為我們提供了很多的意見,這促使我們更好地完成了全書的每一章,非常感謝你們,我的伙伴們!

我們每一個人心中都還有很多感謝的話想說。

Rod Strougo的致謝

十分感謝我的妻子和家人在我全身心投入此書的寫作中時,對我能夠如此耐心。曾經有無數個夜晚,我埋頭在辦公室里,寫作、編輯以及寫代碼。假如沒有Agata的支持和理解,這本書將不可能存在。我的大兒子Alexander在這本書完成的過程中,也扮演著十分重要的角色,他協助完成了Space Viking的測試工作,我的孩子Anton在我完成最后一章的時候出生了。Agata,感謝你所給予我的所有鼓勵、愛和支持。我還要感謝Ray的參與,Ray完成了Box2D、Chipmunk和Game Center章節的編寫。Ray非常出色地完成了對Box2D和 Chipmunk的深度覆蓋,并為Space Viking增添了很多有趣的關卡。

Ray Wenderlich的致謝

首先,十分感謝我的妻子,也是我最好的朋友,Vicki Wenderlich,感謝她在我寫作本書的整個過程中對我一如既往的支持,給我鼓勵并提供寶貴意見。沒有她的幫助,我今天無法制作iOS應用,它們不可能像現在這樣出色!此外,也要感謝我的家人。你們信任我,伴我走過作為一名iOS獨立開發者的起起伏伏,支持我一路走來。非常感謝你們!

最后,感謝我的iOS教程博客www.raywenderlich.com的所有讀者和支持者。沒有你們的關注、鼓勵和支持,我將失去繼續完成教程的動力,也許將會和出版此書的機會失之交臂。萬分感謝你們,讓這本書的出版成為現實,同時我也希望你們都能喜歡這本書。
內容簡介:

App Store中非常多極為流行的游戲都使用了Cocos2D框架。如果玩過Tiny Wings、Angry Birds、Mega Jump、Trainyard或Super Turbo Action Pig,那你就已經玩過使用Cocos2D或Box2D技術的游戲。Cocos2D的優美之處在于它的簡潔。在開始開發一個iOS游戲時,開發人員非常容易變得不知所措,尤其是在看到OpenGL ES、OpenAL和其他一些低層API時更是如此。為iPhone和iPad編寫游戲不用如此復雜,Cocos2D可以使游戲開發變得有趣且簡單。
本書將為你呈現構建Space Viking游戲(在App Store上是免費的,是一個利用Cocos2D、Box2D和Chipmunk設計的2D橫向滾動游戲)的整個過程,隨著這個游戲的構建,你將學到任何需要了解的Cocos2D知識,這樣就可以創建下一個殺手級的iOS游戲。
現在就從App Store下載Space Viking免費版,在創建游戲的同時幫Ole找到回家的路。

在構建Space Viking游戲的過程中,你將學習如何:
安裝和配置Cocos2D,使它可以與Xcode 4一起工作;
用Cocos2D構建一個完整的2D動作冒險游戲;
為游戲添加動畫序列和移動;
構建游戲主菜單場景以訪問不同關卡;
使用Cocos2D調度器確認正確的事件在正確的時間發生;
使用瓷片地圖用可復用的圖像構建可以滾動的游戲關卡;
用Cocos2D聲音引擎CocosDenshin添加音頻和音效;
用Box2D和Chipmunk物理引擎添加重力和碰撞;
用粒子系統為游戲添加驚人的特效;
使用暗示和技巧讓游戲獲得最佳性能。
目錄:

本書贊譽
譯者序
前言
第一部分 Cocos2D初接觸
第1章 你好,Cocos2D 1
1.1 下載和安裝Cocos2D 2
1.1.1 下載Cocos2D 2
1.1.2 安裝Cocos2D模板 3
1.2 創建你的第一個Cocos2D應用HelloWorld 3
1.2.1 查看Cocos2D模板 4
1.2.2 構建Cocos2D HelloWorld項目 4
1.2.3 使HelloWorld更上一層樓 6
1.2.4 添加移動 7
1.3 為更好奇的讀者:理解Cocos2D HelloWorld 8
1.3.1 場景和節點 8
1.3.2 開始 10
1.3.3 進一步探索Cocos2D源代碼 14
1.4 安裝CCHelloWorld到iPhone或iPad上 15
1.4.1 讓Xcode為你做所有事情 16
1.4.2 為iPhone或iPad構建應用 17
1.5 小結 17
1.6 習題 17
第2章 你好,Space Viking 18
2.1 創建Space Viking項目 18
2.2 創建Space Viking類對象 19
2.3 創建背景層 20
2.4 GamePlayer層:把維京海盜Ole加入游戲中 23
2.5 GameScene類:把層與場景連接起來 25
2.6 Cocos2D Director 26
2.7 添加運動 27
2.7.1 導入JoyStick類 28
2.7.2 添加JoyStick和按鍵 28
2.7.3 將JoyStick運動應用于維京海盜Ole 31
2.8 紋理圖集 35
2.8.1 紋理和紋理圖集的技術細節 36
2.8.2 創建場景1紋理圖集 38
2.8.3 添加場景1紋理圖集到Space Viking 41
2.9 為更好奇的讀者:測試CCSpriteBatchNode 41
2.10 在iPhone 3G和老舊設備上調校性能 43
2.11 小結 43
2.12 習題 43
第3章 Cocos2D動畫和動作概述 45
3.1 Cocos2D中的動畫 45
3.2 Space Viking設計基礎 49
3.3 Cocos2D動作和動畫基礎 52
3.4 使用屬性列表文件存儲動畫數據 53
3.5 組織、常量和通用協議 55
3.5.1 創建常量文件 56
3.5.2 通用協議文件 57
3.6 GameObject和GameCharacter類 59
3.6.1 創建GameObject 59
3.6.2 創建GameCharacter類 64
3.7 小結 66
3.8 習題 66
第4章 簡單碰撞檢測和第一個敵人 67
4.1 創建RadarDish和Viking類 67
4.1.1 創建RadarDish類 67
4.1.2 創建Viking類 72
4.2 最終步驟 86
4.3 小結 92
4.4 習題 92
第二部分 更多敵人和更多樂趣
第5章 更多動作、特效和Cocos2D調度器 93
5.1 道具 94
5.1.1 Mallet道具 94
5.1.2 Health道具 96
5.1.3 空間貨運飛船 98
5.2 敵人機器人 100
5.3 添加PhaserBullet 111
5.4 GameplayLayer和Viking更新 114
5.5 為更好奇的讀者:Cocos2D中的特效 118
5.5.1 Space Viking中有趣的特效 118
5.5.2 運行EffectsTest 120
5.5.3 將精靈和對象恢復正常 120
5.6 小結 121
5.7 習題 121
第6章 文字、字體和書面語 122
6.1 CCLabelTTF類 122
6.2 理解錨點和對齊 123
6.3 CCLabelBMFont 125
6.4 使用Glyph Designer字體設計器 125
6.5 使用Hiero字體構建工具 126
6.6 為更好奇的讀者:實時調試 129
6.6.1 更新EnemyRobot 129
6.6.2 更新GameplayLayer 132
6.6.3 文字調試器的其他應用 133
6.7 小結 133
6.8 習題 133
第三部分 從關卡到游戲
第7章 主菜單、關卡完成和致謝場景 135
7.1 Cocos2D中的場景 135
7.2 GameManager概述 136
7.3 Cocos2D中的菜單 144
7.4 場景組織與圖像 144
7.5 創建主菜單 146
7.5.1 創建MainMenuScene 146
7.5.2 MainMenuLayer類 147
7.6 其他菜單和GameplayLayer 153
7.6.1 導入Intro、LevelComplete、Credits和Options場景及層 153
7.6.2 GameplayLayer 153
7.6.3 修改SpaceVikingApp-Delegate類 155
7.7 為更好奇的讀者:IntroLayer類和LevelComplete類 156
7.8 小結 157
7.9 習題 157
第8章 添加音效 158
8.1 CocosDenshion概述 158
8.2 導入并設置音頻文件 158
8.2.1 為Space Viking添加音頻 159
8.2.2 音頻常量 159
8.3 同步異步加載音頻的比較 161
8.3.1 同步加載音頻 161
8.3.2 異步加載音頻 163
8.3.3 添加音頻到GameManager 163
8.4 添加SoundEngine到GameObject 174
8.5 為EnemyRobot添加聲音 177
8.6 為Ole添加音效 180
8.7 為菜單場景添加音樂 185
8.7.1 為Gameplay添加音樂 185
8.7.2 為MainMenu添加音樂 185
8.8 為更好奇的讀者:如果你需要更多音頻控制 185
8.9 小結 186
8.10 習題 186
第9章 當世界變得更大:添加滾動 187
9.1 為更廣闊的世界添加邏輯 188
9.2 創建更廣闊的世界 190
9.2.1 創建第2個游戲場景 191
9.2.2 創建滾動層 197
9.3 與視差層一起滾動 203
9.4 無限制滾動 206
9.4.1 創建滾動層 206
9.4.2 創建平臺場景 214
9.5 瓷片地圖 216
9.5.1 安裝Tiled工具 217
9.5.2 創建瓷片地圖 218
9.5.3 Cocos2D壓縮TileMap類 220
9.5.4 添加TileMap到ParallaxNode 222
9.6 小結 224
9.7 習題 225
第四部分 物 理 引 擎
第10章 基礎游戲物理學:用Box2D增加現實性 227
10.1 開始 227
10.1.1 關于死亡的瘋狂夢想 229
10.1.2 創建新場景 229
10.1.3 添加Box2D文件到你的項目 231
10.1.4 Box2D單位 235
10.2 你好,Box2D 236
10.2.1 創建Box2D對象 237
10.2.2 Box2D調試繪制 240
10.2.3 整合所有元素 241
10.2.4 創建地面 243
10.3 基礎Box2D交互和裝飾 245
10.3.1 拖動對象 247
10.3.2 質量、密度、摩擦力和彈性 251
10.3.3 用精靈裝飾Box2D形體 254
10.4 制作一個Box2D解謎游戲 261
10.5 小結 271
10.6 習題 271
第11章 中級游戲物理學:建模、競速和跨越 272
11.1 開始 272
11.1.1 添加資源文件 272
11.1.2 創建基本的Box2D場景 273
11.2 用Box2D創建一個小車 283
11.2.1 用Box2D創建一個定制圖形 284
11.2.2 使用Vertex Helper工具 285
11.2.3 用Box2D旋轉關節添加輪子 288
11.3 讓小車移動和跳躍 291
11.3.1 利用加速計使小車移動 292
11.3.2 讓它可滾動 294
11.3.3 力和沖量 302
11.3.4 固定傾卸臺 302
11.3.5 讓小車跳躍 303
11.3.6 更靈敏的轉向 306
11.4 小結 307
11.5 習題 307
第12章 高級游戲物理學:更真實的物體 308
12.1 關節和人偶:帶Ole回到場景 308
12.1.1 限制旋轉關節 309
12.1.2 使用柱狀關節 310
12.1.3 如何在恰當地點創建多個形體和關節 311
12.1.4 添加Ole:實現 313
12.2 添加障礙物和橋梁 318
12.2.1 添加橋梁 318
12.2.2 添加尖刺 321
12.2.3 添加改良的主循環 325
12.3 關底戰斗 326
12.3.1 危險的挖掘機 334
12.3.2 最后一擊:添加通關后電影序幕 340
12.4 小結 344
12.5 習題 344
第13章 Chipmunk物理引擎(不需要Alvin) 345
13.1 Chipmunk引擎是什么 345
13.2 Chipmunk引擎入門 347
13.2.1 添加Chipmunk引擎到你的項目中 351
13.2.2 創建基本的Chipmunk引擎場景 354
13.3 添加精靈并使它們移動 361
13.3.1 通過直接設置速度跳躍 366
13.3.2 通過設置表面速度移動地面 367
13.3.3 地面碰撞檢測 367
13.3.4 Chipmunk引擎裁判器和法線 368
13.3.5 碰撞檢測實現 368
13.3.6 移動和跳躍實現 372
13.4 Chipmunk引擎和約束 376
13.4.1 旋轉平臺 378
13.4.2 樞軸、彈簧和普通平臺 380
13.5 偉大的逃脫 385
13.5.1 跟隨Ole 385
13.5.2 布局平臺 387
13.5.3 Ole動畫序列 387
13.5.4 音樂和音效 391
13.5.5 添加背景 392
13.5.6 添加贏/輸條件限制 393
13.6 小結 394
13.7 習題 394
第五部分 粒子系統、游戲中心和性能
第14章 粒子系統:創建火焰、雪花、冰和更多 395
14.1 內置粒子系統 396
14.1.1 運行內置粒子系統 396
14.1.2 在沙漠中降雪 397
14.2 粒子設計器入門 398
14.3 為Space Viking創建并添加粒子系統 401
14.4 小結 406
14.5 習題 406
第15章 游戲中心的成就系統和高分榜 407
15.1 什么是游戲中心 407
15.2 為你的應用啟用游戲中心 409
15.2.1 獲取iOS開發者賬號 409
15.2.2 為應用創建一個應用程序ID 409
15.2.3 在iTunes里注冊你的應用 412
15.2.4 啟用游戲中心支持 415
15.3 游戲中心身份驗證 416
15.3.1 確定游戲中心可用 416
15.3.2 嘗試給玩家進行驗證 416
15.3.3 如果驗證狀態發生變化則告知 417
15.3.4 實現 418
15.4 配置成就系統 423
15.4.1 添加成就系統到iTunesConnect 423
15.4.2 成就系統如何工作 425
15.5 實現成就系統 426
15.5.1 創建游戲狀態類 426
15.5.2 為加載和保存數據創建幫助函數 429
15.5.3 修改GCHelper以發送成就數據 431
15.5.4 在Space Viking中使用GameState和GCHelper 436
15.5.5 在應用中顯示成就 440
15.6 設置并實現高分榜 442
15.6.1 在iTunes Connect里設置高分榜 442
15.6.2 高分榜的工作原理 443
15.6.3 實現高分榜 444
15.6.4 在游戲中顯示高分榜 445
15.7 小結 448
15.8 習題 448
第16章 性能優化 449
16.1 CCSprite與CCSpriteBatchNode比較 449
16.1.1 測試性能差別 453
16.1.2 對紋理和紋理圖集的建議 453
16.2 復用CCSprite 455
16.3 Cocos2D分析器 457
16.4 用Instruments發現性能瓶頸 459
16.4.1 時間分析器 460
16.4.2 OpenGL Driver Instrument 461
16.5 小結 464
16.6 習題 464
第17章 結束語 465
17.1 展望未來 466
17.2 Android及其他平臺 466
17.3 最后的思考 467
附錄 Cocos2D的主要類 468
序: