-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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書號
詳細書籍分類

HTML5 移動游戲開發高級編程

( 簡體 字)
作者:[美]Pascal Rettig 著 類別:1. -> 程式設計 -> 網路編程 -> HTML
譯者:葉斌 譯
出版社:清華大學出版社HTML5 移動游戲開發高級編程 3dWoo書號: 38398
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:4/16/2014
頁數:506
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787302356318
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

自從社交游戲開始把游戲帶給大眾,幫助把這一曾經的亞文化變成一種面向大眾的主流現象之后,游戲界和萬維網就在彼此碰撞中發展著。再在其中投入移動設備,你會看到一種大眾現象驟然出現,隨著人們手中持有的設備越來越多,這一大眾現象也變得越來越重要。
例如,截至撰寫本書之時,一個在網絡上大獲成功的故事就是關于游戲開發廠商Rovio的,這一“憤怒的小鳥”游戲系列創造者的估值約80億美元,幾乎與手機制造巨頭諾基亞(Nokia)價值相當。現在,人們花在手機和平板電腦上的時間比以往任何時候都要多,游戲以及社交網絡占用了這段時間中的相當高的比例,智能手機和平板電腦顯著取代了任天堂和索尼的專用移動游戲設備。借助HTML5,游戲開發者現在擁有了這樣的技術能力,即通過單一代碼庫能影響到更多的人,比以往任何時候能想象得到的都要多。
HTML5移動游戲開發目前還是一項新技術,人們還不知道該如何看待這一技術,這很像是2008年時的智能手機游戲,蘋果公司的應用商店(App Store)就是在這一年推出的。不過,一些重量級的組織已經加入進來,力保HTML5游戲取得成功。其中Facebook在2012年5月推出了它的應用中心(App Center),把基于HTML5的Web應用變成了移動設備上的一等公民,它正在研究一些移動設備上的貨幣化手段,以求不再受制于蘋果公司這種從其應用商店的應用內購買中抽取30%手續費的做法。類似地,諸如AT&T一類的運營商也把Web應用看成一種從Google和蘋果公司那里奪回失去收入的一種手段。
然而,在HTML5的游戲開發宏圖中,一切都不容樂觀。不同設備有著不同的功能、性能水準和屏幕分辨率,在HTML5移動游戲開發這一危險水域航行需要小心把握航向,而這正是本書能發揮作用的地方。本書旨在提供一個使用HTML5構建移動游戲的實用路線圖,內容涵蓋了媒介的可能性和局限性。若說HTML5桌面游戲的開發仍處于起步階段,那么HTML5移動游戲的開發就還處于萌芽狀態。成就一番偉業的可能性觸手可及,但媒介的首記扣殺是否成功仍有待觀察。
在早期階段就涉獵某項技術可帶來顯著好處,使用新技術的幸事之一是噪音水平最低,相比其他已被接受的媒介,制造轟動所需的代價更少。HTML5游戲,特別是移動設備上的這些游戲,其預算僅為普通PC和控制臺游戲所需的數百萬美元的很少一部分。然而,由于萬維網的病毒式擴散本質,它們卻有機會在瞬間創造出巨大的銷量。HTML5移動游戲有著更大的爆炸式增長可能性,因為它們能夠借助鏈接實現實時共享,不需要接受者從應用商店下載一個可能并不適用于所持設備的應用。
本書將開啟一段旅程,帶領你暢游HTML5移動游戲開發這一激動人心的領域所呈現的可能性世界,我希望你揚帆起航,向這個世界進發。
本書讀者對象
本書是為任何想要使用基于標準的無插件技術在瀏覽器中構建交互式游戲的讀者準備的,它把重點放在移動游戲開發上,因為與諸如Flash之類存在競爭的Web技術相比,這是HTML5的優勢所在,不過,你構建出來的游戲同樣可在桌面瀏覽器中運行。
開發HTML5移動游戲需要通過一系列不同的媒介使用一些跨學科技能,若要正確無誤地做到這一點,你需要對JavaScript語言有基本的了解,因為你將要最大限度地利用JavaScript在瀏覽器中構建游戲。本書不會從頭講解JavaScript知識,而是基于你所掌握的JavaScript知識快速構建游戲。
若不是天天都使用JavaScript,那么你可能會發現有些地方的代碼很難理解,但并非就完全沒有希望了——要快速掌握JavaScript,Gouglas Crockford撰寫的JavaScript: The Good Parts(O’Reilly出版,2008年)可以幫助你熟悉該門語言,這本書只有區區180頁,卻產生了重大影響。在遇見書中提到的某些可能不太熟悉的技術時,你還可把此書當成參考資料。
若你是一位桌面游戲開發者,熟悉C++更甚于JavaScript,那么理解書中所談內容是沒有問題的,不過同樣要說明的是,因為相比于C++,JavaScript(盡管有著類C的語法)與Lisp有著更多的共性,所以你可能也會希望查閱一下Crockford的這本書。JavaScript是弱類型、可變方法綁定的,對閉包的支持可能會帶來一些難以理解的地方。
使用Flash構建游戲出身的ActionScript開發者應該會有賓至如歸的感覺,唯一的主要障礙是HTML5游戲開發的連貫性還不如Flash。務必密切留意第7章,因為該章內容說明了如何檢查和調試JavaScript,這樣在游戲出現問題時,你就不會感到束手無策了。一些瀏覽器內置了非常強大的腳本調試器,所以你應該不會太過懷念Flash IDE。
本書內容
本書談論的是使用HTML5創建游戲,這些游戲運行在諸如iOS設備和Android一類兼容HTML5的智能手機上。Windows Phone 7.5支持畫布,因此在某些實例中也是游戲開發針對的目標,但因為它的畫布性能受限,不支持基于標準的多點觸控事件,所以在某些情況下,只能對Windows手機提供有限的支持。
倘若針對的目標是iOS 5.0或更高版本的移動Safari以及Android 4.0或更高版本的Android Chrome,那么你能做到最大限度地利用本書,因為這些設備都擁有最快的JavaScript引擎和硬件加速的畫布支持。許多游戲可以運行在較舊版本的Android上,但性能會受到限制。
本書的組織方式
本書由8部分組成,每一部分都帶著某種專門目的來傳授移動HTML5游戲的開發知識。
第Ⅰ部分:“HTML5潛力初探”通過三章內容傳授如何從頭構建可運行在任何支持畫布的設備上的HTML5移動游戲,展示了這樣的一種基本事實,即在不必加入任何外部庫的情況下,能夠利用哪些資源來快速建立和運行游戲。
第Ⅱ部分:“移動HTML5”回退一步,詳細討論移動設備上的HTML5的情況,同時還討論了兩個庫—— jQuery和Underscore.js—— 本書余下部分內容將用它們來構建游戲。
第Ⅲ部分:“JavaScript游戲開發基礎”首先詳細講解如何檢查和調試游戲,以及如何通過命令行使用Node.js運行JavaScript;接著討論了從頭構建可重用HTML5游戲引擎的過程,展示了把代碼結構化和組織成一些連貫模塊的做法。
第Ⅳ部分:“使用CSS3和SVG構建游戲”繞開畫布,展示如何使用其他兩種技術——CSS3和可伸縮矢量圖(Scalable Vector Graphics,SVG)——在移動設備上構建游戲。第14章還介紹了很受歡迎的JavaScript物理引擎Box2D。
第Ⅴ部分:“HTML5畫布”首先詳細討論canvas標簽,繼而構建一個觸摸友好的2D平臺游戲和一個針對該平臺游戲的用來構建關卡的關卡編輯器。
第Ⅵ部分:“多人游戲”展示如何使用WebSocket創建能夠在多個玩家之間以異步實時方式提供有意義的交互游戲。
第Ⅶ部分:“移動增強”探討如何使用其他一些HTML5系列API來增強游戲,內容涵蓋地理定位和設備方向,以及移動設備上的HTML5聲音狀態。
第Ⅷ部分:“游戲引擎和應用商店”研究一些可用的HTML5游戲引擎的前景——其中既有商用的也有開源的——并幫助你確定合適的引擎,這部分內容還涵蓋了一些支持把硬件加速的HTML5游戲發布到本地移動應用商店中的新興技術。
本書用到的軟件產品和工具
本書例子運行在Windows、OSX或Linux的現代桌面瀏覽器中,術語“現代桌面瀏覽器”指的是Internet Explorer 9或以上版本,以及Safari、Firefox或Chrome的最新版本。
要在移動設備上運行例子,你需要運行iOS 5.0或更高版本的iOS設備,或是運行Android 4.0或更高版本的Android設備,這樣能獲得最佳效果。許多例子可在Android 2.2或更高版本上工作,但性能可能會有所限制。
若在Mac上運行,可借助可隨同XCode一起安裝的iOS模擬器來運行其中的一些例子。遺憾的是,目前的Android模擬器速度太慢,還不能作為很好運行HTML5游戲的測試床。
一些約定
為了幫助你最大限度地從書中汲取知識,以及進一步理解上下文信息,我們使用了一些貫穿全書的約定做法。








補充欄
以與此類似的方式放置一些與當前討論有關的解說。
本書以兩種不同風格顯示代碼:
● 使用沒有突出處理的monofont字體類型來顯示大部分的代碼例子。
● 使用粗體來強調當前上下文中特別重要的代碼。
源代碼
在讀者學習本書中的示例時,可以手動輸入所有代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從本書合作站點http://www.wrox.com/或www.tupwk. com.cn/downpage上下載。登錄到站點http://www.wrox.com/,使用Search工具或使用書名列表就可以找到本書。接著單擊Download Code鏈接,就可以獲得所有的源代碼。既可以選擇下載一個大的包含本書所有代碼的ZIP文件,也可以只下載某個章節中的代碼。




在下載代碼后,只需用解壓縮軟件對其進行解壓縮即可。另外,也可以進入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代碼下載主頁,查看本書和其他Wrox圖書的所有代碼。記住,可以使用書中列出的程序清單的編號容易地找到所要尋找的代碼,如“程序清單0-1”。

當為大多數可下載的源代碼文件命名時,我們會使用這些清單中的數值。對于那些很少的沒有用它自己的清單數值命名的程序清單,它們都與文件名匹配,所以很容易就可以在下載的源代碼文件中找到它們。
勘誤表
盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。
要在網站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書,然后在本書的細目頁面上,單擊Book Errata鏈接。在這個頁面上可以查看Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列表還包括每本書的勘誤表,網址是www.wrox.com/misc-pages/ booklist.shtml。
如果在Book Errata頁面上沒有看到你找出的錯誤,請進入www.worx.com/contact/ techsupport.shtml,填寫表單,發電子郵件,我們就會檢查你的信息,如果是正確的,就在本書的勘誤表中粘貼一個消息,我們將在本書的后續版本中采用。
p2p.wrox.com
P2P郵件列表是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個基于Web的系統,用于傳送與Wrox圖書相關的信息和相關技術,與其他讀者和技術用戶交流。該論壇提供了訂閱功能,當論壇上有新帖子時,會給你發送你選擇的主題。Wrox作者、編輯和其他業界專家和讀者都會在這個論壇上進行討論。
在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發自己的應用程序時,也可以從這個論壇中獲益。要加入這個論壇,必須執行下面的步驟:
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀其內容,單擊Agree按鈕。
(3) 提供加入論壇所需的信息及愿意提供的可選信息,單擊Submit按鈕。
(4) 然后就可以收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。





加入論壇后,就可以發送新信息,回應其他用戶的帖子。可以隨時在Web上閱讀信息。如果希望某個論壇給自己發送新信息,可以在論壇列表中單擊該論壇對應的Subscribe to this Forum圖標。
對于如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作原理,以及許多針對P2P和Wrox圖書的常見問題解答。要閱讀FAQ,可以單擊任意P2P頁面上的FAQ鏈接。

內容簡介:

  熱切期望進入如火如荼的移動游戲世界? HTML5移動游戲開發高級編程  將助你實現夢想。這本精品書籍面向有興趣為所有移動和觸摸屏設備創建游戲的開發人員,以你現有的HTML5和JavaScript知識為基礎,分步講解如何使用HTML5構建單玩家和多玩家移動游戲。本書涵蓋構建HTML5游戲的標準模式、構建方法的選擇(CSS3、SVG或畫布)以及流行的游戲引擎和框架等主題。最重要的是,你可修改和擴展本書提供的6個基礎游戲的代碼,最終開發出自己的游戲。

目錄:

第Ⅰ部分 HTML5潛力初探
第1章 先飛后走,先難后易 3
1.1 引言 3
1.2 用500行代碼構建一個完整游戲 4
1.2.1 了解游戲 4
1.2.2 結構化游戲 4
1.2.3 最終實現的游戲 5
1.3 添加HTML和CSS樣板代碼 5
1.4 畫布入門 6
1.4.1 訪問上下文 7
1.4.2 在畫布上繪制 7
1.4.3 繪制圖像 8
1.5 創建游戲的結構 10
1.5.1 構建面向對象的JavaScript 10
1.5.2 利用鴨子類型 11
1.5.3 創建三個基本對象 11
1.6 加載精靈表 11
1.7 創建Game對象 13
1.7.1 實現Game對象 13
1.7.2 重構游戲代碼 16
1.8 添加滾動背景 16
1.9 插入標題畫面 20
1.10 添加主角 22
1.10.1 創建PlayerShip對象 22
1.10.2 處理用戶輸入 23
1.11 小結 24
第2章 從玩具到游戲 25
2.1 引言 25
2.2 創建GameBoard對象 25
2.2.1 了解GameBoard對象 26
2.2.2 添加和刪除對象 26
2.2.3 遍歷對象列表 27
2.2.4 定義面板的方法 29
2.2.5 處理碰撞 29
2.2.6 將GameBoard添加到
游戲中 30
2.3 發射導彈 31
2.3.1 添加炮彈精靈 31
2.3.2 連接導彈和玩家 32
2.4 添加敵方飛船 33
2.4.1 計算敵方飛船的移動 33
2.4.2 構造Enemy對象 34
2.4.3 移動和繪制Enemy對象 35
2.4.4 將敵方飛船添加到面板上 36
2.5 重構精靈類 37
2.5.1 創建一個通用的Sprite類 38
2.5.2 重構PlayShip 38
2.5.3 重構PlayerMissile 39
2.5.4 重構Enemy 40
2.6 處理碰撞 40
2.6.1 添加對象類型 41
2.6.2 讓導彈和敵方飛船碰撞 41
2.6.3 讓敵方飛船和玩家碰撞 42
2.6.4 制造爆炸 43
2.7 描述關卡 44
2.7.1 設置敵方飛船 44
2.7.2 設置關卡數據 45
2.7.3 加載和結束一關游戲 46
2.7.4 實現Level對象 47
2.8 小結 49
第3章 試飛結束,向移動進發 51
3.1 引言 51
3.2 添加觸摸控件 51
3.2.1 繪制控件 52
3.2.2 響應觸摸事件 54
3.2.3 在移動設備上測試 56
3.3 最大化游戲界面 57
3.3.1 設置視口 57
3.3.2 調整畫布尺寸 58
3.3.3 添加到iOS主屏幕 60
3.4 添加得分 61
3.5 使之成為公平的戰斗 62
3.6 小結 65
第Ⅱ部分 移動HTML5
第4章 移動設備上的HTML5 69
4.1 引言 69
4.2 HTML5的發展簡史 70
4.2.1 了解HTML5“不同尋常”的成長歷程 70
4.2.2 期待HTML6?HTML7?不,僅HTML5足矣 70
4.2.3 關于規范 71
4.2.4 區分HTML5家族和HTML5 71
4.3 恰當地使用HTML5 72
4.3.1 嘗試HTML5 72
4.3.2 嗅探瀏覽器 72
4.3.3 確定功能而非瀏覽器 74
4.3.4 漸進增強 75
4.3.5 彌補差距的膩子腳本 76
4.4 從游戲角度考慮HTML5 76
4.4.1 畫布 77
4.4.2 CSS3/DOM 77
4.4.3 SVG 78
4.5 從移動角度考慮HTML5 79
4.5.1 了解一些新的API 79
4.5.2 即將登場的WebAPI 80
4.6 調查移動瀏覽器的前景 80
4.6.1 WebKit:市場霸主 80
4.6.2 Opera:依然在埋頭苦干 81
4.6.3 Firefox:Mozilla的移動產品 81
4.6.4 WP7上的Internet
Explorer 9 81
4.6.5 平板電腦 81
4.7 小結 82
第5章 了解一些有用的庫 83
5.1 引言 83
5.2 了解JavaScript庫 84
5.3 從jQuery談起 84
5.3.1 將jQuery添加到頁面 84
5.3.2 了解$操作符 85
5.3.3 操縱DOM 86
5.3.4 創建回調 87
5.3.5 綁定事件 89
5.3.6 發起Ajax調用 92
5.3.7 調用遠程服務器 92
5.3.8 使用Deferred 93
5.4 使用Underscore.js 94
5.4.1 訪問Underscore 94
5.4.2 使用集合 94
5.4.3 使用實用函數 95
5.4.4 鏈式調用Underscore方法 96
5.5 小結 96
第6章 成為一個良好的移動市民 97
6.1 引言 97
6.2 響應設備的能力 97
6.2.1 最大化實際使用面積 98
6.2.2 調整出合適的畫布尺寸 98
6.3 處理瀏覽器的尺寸調整、滾動和縮放 100
6.3.1 處理尺寸調整 100
6.3.2 防止滾動和縮放 101
6.3.3 設置視口 102
6.3.4 去除地址欄 103
6.4 配置iOS主屏幕應用 105
6.4.1 把游戲變成Web應用可行的 105
6.4.2 添加啟動畫面 105
6.4.3 配置主屏幕圖標 106
6.5 考慮移動設備的性能 107
6.6 適應有限的帶寬和存儲 108
6.6.1 為移動設備優化 108
6.6.2 移動設備好則一切皆好 108
6.6.3 縮減JavaScript 109
6.6.4 設置正確的頭域內容 109
6.6.5 經由CDN提供 110
6.7 借助應用緩存的完全離線運行 111
6.7.1 創建代碼清單文件 111
6.7.2 檢查瀏覽器是否在線 113
6.7.3 監聽更高級的行為 113
6.7.4 最后的警告 113
6.8 小結 114
第Ⅲ部分 JavaScript游戲 開發基礎
第7章 了解HTML5游戲開發環境 117
7.1 引言 117
7.2 選擇編輯器 118
7.3 探討Chrome開發者工具 118
7.3.1 激活開發者工具 118
7.3.2 審查元素 118
7.3.3 查看頁面資源 120
7.3.4 跟蹤網絡傳輸 121
7.4 調試JavaScript 123
7.4.1 查看Console選項卡 123
7.4.2 運用Script選項卡 125
7.5 分析和優化代碼 127
7.5.1 運行性能分析 127
7.5.2 真正進行游戲優化 129
7.6 在移動設備上調試 131
7.7 小結 132
第8章 在命令行上運行JavaScript 133
8.1 引言 133
8.2 了解Node.js 134
8.3 安裝Node 134
8.3.1 在Windows上安裝Node 135
8.3.2 在OS X上安裝Node 135
8.3.3 在Linux上安裝Node 135
8.3.4 追蹤最新版的Node 136
8.4 安裝和使用Node模塊 136
8.4.1 安裝模塊 136
8.4.2 診斷代碼 136
8.4.3 縮減代碼 137
8.5 創建自己的腳本 137
8.5.1 創建package.json文件 138
8.5.2 使用服務器端畫布 139
8.5.3 創建可重用的腳本 140
8.6 編寫一個精靈地圖生成器 141
8.6.1 使用Futures模塊 142
8.6.2 自上而下進行編碼 143
8.6.3 加載圖像 144
8.6.4 計算畫布的尺寸 146
8.6.5 在服務器端畫布上繪制圖像 147
8.6.6 更新和運行腳本 148
8.7 小結 149
第9章 自建Quintus引擎(1) 151
9.1 引言 151
9.2 創建可重用HTML5引擎的框架 152
9.2.1 設計基本的引擎API 152
9.2.2 著手編寫引擎代碼 153
9.3 添加游戲循環 155
9.3.1 構建更好的游戲循環
定時器 155
9.3.2 將已優化的游戲循環添加
到Quintus 156
9.3.3 測試游戲循環 158
9.4 添加繼承 159
9.4.1 在游戲引擎中使用繼承 159
9.4.2 將傳統繼承添加至JavaScript 160
9.4.3 運用Class的功能 163
9.5 支持事件 164
9.5.1 設計事件API 164
9.5.2 編寫Evented類 165
9.5.3 填寫Evented方法 165
9.6 支持組件 168
9.6.1 設計組件API 168
9.6.2 實現組件系統 169
9.7 小結 172
第10章 自建Quintus引擎(2) 173
10.1 引言 173
10.2 訪問游戲容器元素 173
10.3 捕捉用戶輸入 176
10.3.1 創建輸入子系統 176
10.3.2 自建輸入模塊 177
10.3.3 處理鍵盤事件 179
10.3.4 添加小鍵盤控件 180
10.3.5 添加游戲手柄控件 183
10.3.6 繪制屏幕輸入 186
10.3.7 完善和測試輸入 188
10.4 加載資產 190
10.4.1 定義資產類型 191
10.4.2 加載特定資產 192
10.4.3 完善加載器 194
10.4.4 添加預加載支持 197
10.5 小結 198
第11章 自建Quintus引擎(3) 199
11.1 引言 199
11.2 定義精靈表 200
11.2.1 創建SpriteSheet類 200
11.2.2 跟蹤和加載精靈表 201
11.2.3 測試SpriteSheet類 202
11.3 添加精靈 203
11.3.1 編寫Sprite類 203
11.3.2 引用精靈、屬性和資產 205
11.3.3 運用Sprite對象 205
11.4 使用場景設置舞臺 209
11.4.1 創建Quintus.Scenes模塊 210
11.4.2 編寫Stage類 210
11.4.3 豐富場景功能 214
11.5 完成Blockbreak游戲的編寫 217
11.6 小結 219
第Ⅳ部分 使用CSS3和SVG 構建游戲
第12章 使用CSS3構建游戲 223
12.1 引言 223
12.2 選定場景圖 223
12.2.1 目標受眾 224
12.2.2 交互方法 224
12.2.3 性能需求 224
12.3 實現DOM支持 225
12.3.1 考慮DOM的特性 225
12.3.2 自建Quintus的DOM模塊 225
12.3.3 創建一致的移動方法 226
12.3.4 創建一致的過渡方法 229
12.3.5 實現DOM精靈類 230
12.3.6 創建DOM舞臺類 232
12.3.7 替換畫布的等價類 234
12.3.8 測試DOM功能 234
12.4 小結 235
第13章 制作一個CSS3 RPG游戲 237
13.1 引言 237
13.2 創建滾動的區塊地圖 237
13.2.1 了解性能問題 238
13.2.2 實現DOM區塊地圖類 238
13.3 構建RPG游戲 242
13.3.1 創建HTML文件 242
13.3.2 設置游戲 243
13.3.3 添加區塊地圖 245
13.3.4 創建一些有用的組件 247
13.3.5 添加玩家 250
13.3.6 添加迷霧、敵人和
戰利品 251
13.3.7 使用精靈擴展區塊地圖 255
13.3.8 添加血槽和HUD 258
13.4 小結 262
第14章 使用SVG和物理引擎
構建游戲 263
14.1 引言 263
14.2 了解一些SVG基礎知識 264
14.2.1 在頁面上顯示SVG 264
14.2.2 了解基本的SVG元素 265
14.2.3 變形SVG元素 269
14.2.4 應用筆畫和填充 270
14.2.5 超越基礎 272
14.3 通過JavaScript使用SVG 273
14.3.1 創建SVG元素 273
14.3.2 設置和讀取SVG特性 274
14.4 將SVG支持添加到
Quintus 275
14.4.1 創建SVG模塊 275
14.4.2 添加SVG精靈 276
14.4.3 創建SVG舞臺類 278
14.4.4 測試SVG類 280
14.5 使用Box2D添加物理支持 283
14.5.1 了解物理引擎 283
14.5.2 實現world組件 284
14.5.3 實現physics組件 287
14.5.4 將物理支持添加到
例子中 290
14.6 創建一個大炮射擊游戲 292
14.6.1 設計游戲 292
14.6.2 構建所需的精靈 292
14.6.3 收集用戶輸入并完成游戲編寫 295
14.7 小結 296
第Ⅴ部分 HTML5畫布
第15章 了解HTML5的杰出畫布 301
15.1 引言 301
15.2 畫布標簽入門 302
15.2.1 了解CSS和像素尺寸 302
15.2.2 提取渲染上下文 305
15.2.3 通過畫布創建圖像 305
15.3 在畫布上進行繪制 307
15.3.1 設置填充和筆畫樣式 307
15.3.2 設置筆畫細節 309
15.3.3 調整不透明度 310
15.3.4 繪制矩形 310
15.3.5 繪制圖像 311
15.3.6 繪制路徑 311
15.3.7 在畫布上渲染文本 313
15.4 使用畫布變形矩陣 314
15.4.1 了解基本的變形 315
15.4.2 保存、恢復和重置變形矩陣 316
15.4.3 繪制雪花 316
15.5 應用畫布效果 319
15.5.1 添加陰影 319
15.5.2 使用合成效果 319
15.6 小結 321
第16章 實現動畫 323
16.1 引言 323
16.2 構建動畫地圖 323
16.2.1 確定動畫API 324
16.2.2 編寫動畫模塊 325
16.2.3 測試動畫 329
16.3 添加畫布視口 331
16.4 實現視差效果 334
16.5 小結 336
第17章 運用像素 337
17.1 引言 337
17.2 回顧2D物理學 338
17.2.1 了解力、質量和加速度 338
17.2.2 為炮彈建模 339
17.2.3 換成迭代解 340
17.2.4 抽取可重用類 341
17.3 實現Lander游戲 342
17.3.1 自建游戲 342
17.3.2 構建飛船 343
17.3.3 精確到像素級 345
17.3.4 運用ImageData對象 346
17.3.5 制造爆炸 350
17.4 小結 354
第18章 創建一個2D平臺動作游戲 355
18.1 引言 355
18.2 創建區塊層 356
18.2.1 編寫TileLayer類 356
18.2.2 試用TileLayer代碼 358
18.2.3 優化繪制 360
18.3 處理平臺動作游戲的碰撞 361
18.3.1 添加2d組件 362
18.3.2 計算平臺動作游戲的碰撞 364
18.3.3 使用PlatformStage拼接 366
18.4 構建游戲 368
18.4.1 自建游戲 368
18.4.2 創建敵人 369
18.4.3 添加子彈 371
18.4.4 創建玩家 372
18.5 小結 375
第19章 構建一個畫布編輯器 377
19.1 引言 377
19.2 使用Node.js提供游戲服務 377
19.2.1 創建package.json文件 378
19.2.2 設置Node以提供靜態資產 378
19.3 創建編輯器 379
19.3.1 修改平臺動作游戲代碼 380
19.3.2 創建編輯器模塊 382
19.3.3 添加觸摸和鼠標事件 385
19.3.4 選擇區塊 387
19.4 添加關卡保存支持 389
19.5 小結 390
第Ⅵ部分 多 人 游 戲
第20章 構建在線社交游戲 393
20.1 引言 393
20.2 了解基于HTTP的多玩家
游戲 394
20.3 設計一個簡單的社交游戲 394
20.4 集成Facebook 395
20.4.1 生成Facebook應用 395
20.4.2 創建Node.js服務器 396
20.4.3 添加登錄視圖 399
20.4.4 測試Facebook身份驗證 401
20.5 連接數據庫 402
20.5.1 在Windows上安裝MongoDB 402
20.5.2 在OS X上安裝MongoDB 403
20.5.3 在Linux上安裝MongoDB 403
20.5.4 通過命令行連接MongoDB 403
20.5.5 將MongoDB集成到游戲 405
20.6 完成Blob Clicker的編寫 407
20.7 推送至托管服務 410
20.8 小結 412
第21章 實現實時交互 413
21.1 引言 413
21.2 了解WebSocket 413
21.3 在瀏覽器中使用原生
WebSocket 415
21.4 使用Socket.io:支持回退的WebSocket 417
21.4.1 創建涂鴉應用的
服務器端 417
21.4.2 添加涂鴉應用的客戶端 419
21.5 用Socket.io構建一個多人乒乓球游戲 421
21.5.1 處理延時 422
21.5.2 防止作弊 422
21.5.3 部署實時應用 422
21.5.4 創建自動匹配的
服務器端 423
21.5.5 構建乒乓球游戲的前端 426
21.6 小結 431
第22章 構建非傳統風格的游戲 433
22.1 引言 433
22.2 創建一個Twitter應用 433
22.3 將Node應用連接至Twitter 435
22.3.1 發送第一條推文 435
22.3.2 監聽用戶的信息流 436
22.4 隨機生成單詞 437
22.5 創建Twitter上的Hangman游戲 438
22.6 小結 443
第Ⅶ部分 移 動 增 強
第23章 通過地理位置定位 447
23.1 引言 447
23.2 地理定位入門 447
23.3 一次性獲取位置 448
23.4 在地圖上標出位置 450
23.5 監視位置隨時間的變化 451
23.6 繪制交互式地圖 452
23.7 計算兩點間的距離 454
23.8 小結 454
第24章 查詢設備的方向和加速 455
24.1 引言 455
24.2 考查設備的方向 455
24.3 設備方向事件入門 456
24.3.1 檢測和使用事件 457
24.3.2 了解事件數據 457
24.4 試用設備方向 458
24.4.1 創建一個玩球的場所 458
24.4.2 添加方向控制 460
24.4.3 處理瀏覽器的旋轉 461
24.5 小結 462
第25章 播放音效:移動設備的罩門 463
25.1 引言 463
25.2 使用audio標簽 463
25.2.1 把audio標簽用于簡單
播放 464
25.2.2 處理不同的受支持格式 464
25.2.3 了解移動設備音頻的局限性 465
25.3 構建一個簡單的桌面音效引擎 465
25.3.1 將audio標簽用于游戲音效 466
25.3.2 添加一個簡單的音效系統 466
25.3.3 將音效添加到Block Break
游戲 468
25.4 構建一個移動音效系統 469
25.4.1 使用音效精靈 469
25.4.2 生成精靈文件 472
25.4.3 將音效精靈添加到游戲 473
25.5 展望HTML5音頻的未來 474
25.6 小結 474
第Ⅷ部分 游戲引擎和應用商店
第26章 使用HTML5游戲引擎 477
26.1 引言 477
26.2 回顧HTML5引擎的歷史 477
26.2.1 使用商用引擎 478
26.2.2 Impact.js 479
26.2.3 Spaceport.io 480
26.2.4 IDE引擎 480
26.3 使用開源引擎 481
26.3.1 Crafty.js 481
26.3.2 LimeJS 482
26.3.3 EaselJS 484
26.4 小結 487
第27章 瞄準應用商店 489
27.1 引言 489
27.2 為Google的Chrome Web
Store打包應用 490
27.2.1 創建托管應用 490
27.2.2 創建打包應用 492
27.2.3 發布應用 492
27.3 使用CocoonJS加速應用 493
27.3.1 準備把游戲載入
CocoonJS 493
27.3.2 在Android上測試
CocoonJS 495
27.3.3 構建云端應用 495
27.4 使用AppMobi的XDK和
DirectCanvas構建應用 496
27.4.1 了解DirectCanvas 496
27.4.2 安裝XDK 496
27.4.3 創建應用 497
27.4.4 修改Alien Invasion以
使用DirectCanvas 497
27.4.5 在設備上測試應用 502
27.5 小結 502
第28章 挖掘下一個熱點 503
28.1 引言 503
28.2 使用WebGL實現3D 503
28.3 使用Web Audio API獲得
更好的聲音訪問 504
28.4 使用全屏API擴大游戲
畫面 505
28.5 使用屏幕方向API鎖定設備
屏幕 505
28.6 使用WebBTC添加實時
通信 505
28.7 追蹤其他即將出現的本地化
功能 506
28.8 小結 506
附錄A 資源 507


序: