出版時(shí)間:2012-5 出版社:機(jī)械工業(yè)出版社 作者:威廉姆斯 頁數(shù):202
Tag標(biāo)簽:無
前言
前言: 筆者撰寫本書是為了解一時(shí)之癢,同時(shí)也是由于看到了目前新生的HTML5游戲社區(qū)的發(fā)展?jié)摿?。筆者希望引領(lǐng)讀者,通過最佳實(shí)踐遨游陌生的HTML5領(lǐng)域,并掌握Canvas、WebGL和SVG這些技術(shù)?! ¢_發(fā)人員已經(jīng)認(rèn)識(shí)到HTML5并不僅僅是一個(gè)玩具。他們驚喜地發(fā)現(xiàn):HTML5擁有和精美的桌面應(yīng)用程序一樣豐富的內(nèi)容——例如,雙緩沖區(qū)處理、硬件加速、無須插件支持的瀏覽器內(nèi)置緩存等。而此前,部分開發(fā)人員還認(rèn)為,只有Flash技術(shù)才能提供類似支持??梢钥吹揭环N有趣的轉(zhuǎn)變,即由“一切使用Flash”到“僅當(dāng)使用HTML5無法實(shí)現(xiàn)時(shí)才使用Flash”的技術(shù)趨勢(shì)。 在筆者寫這本書時(shí),HTML5游戲編程環(huán)境已經(jīng)發(fā)展得相當(dāng)成熟。筆者相信這項(xiàng)技術(shù)將會(huì)繼續(xù)發(fā)展下去,同時(shí)期待它將來取得更大進(jìn)展。 本書特點(diǎn) 本書內(nèi)容涵蓋“寬泛”意義上的HTML5技術(shù),這意味著包括HTML5規(guī)范、WebGL、SVG和JavaScript,因?yàn)樗鼈兙c游戲編程相關(guān)。書中各章討論了實(shí)現(xiàn)流行游戲效果背后的數(shù)學(xué)內(nèi)容,并先向讀者說明努力的方向,然后再展示一些代碼示例。對(duì)于那些習(xí)慣使用JavaScript編程的讀者而言,本書有一章講解創(chuàng)建游戲時(shí)使用的其他語言,包括在JavaScript引擎中直接運(yùn)行的語言,能夠被編譯成JavaScript的語言,以及二者混合的語言。近幾個(gè)月,服務(wù)器端JavaScript席卷了編程世界,這意味著在構(gòu)建游戲過程中增加了一個(gè)額外靈活的層次。程序邏輯仍然從自包含的客戶端實(shí)例開始,之后在基本不需要修改代碼的情況下,由服務(wù)器端實(shí)例進(jìn)行擴(kuò)展。本書結(jié)尾部分講解了發(fā)布游戲的具體途徑和方法。開發(fā)人員有多種游戲引擎和開發(fā)庫可選擇。在處理數(shù)據(jù)過程中,書中涉及的所有開發(fā)庫都具有通用性,讀者可通過本書輕松掌握這些知識(shí),并將其用于其他庫中。本書不講解WebGL的底層細(xì)節(jié),而是選擇使用高層庫的方式按需訪問底層API。本書的目的是使讀者迅速上手,而不是講解關(guān)于WebGL的所有內(nèi)容,那需要一整本書的篇章才能講完?! ”緯x者對(duì)象 本書為那些愿意學(xué)習(xí)或使用HTML5及相關(guān)Web技術(shù)開發(fā)交互式游戲的應(yīng)用開發(fā)者而編寫。本書假設(shè)讀者具有一些編程語言知識(shí)和基本的數(shù)學(xué)知識(shí)?! ”緯a示例及練習(xí) 讀者可以訪問http://www.informit.com/title/9780321767363下載各章的代碼示例和練習(xí)答案。另外,也可以訪問Github網(wǎng)站https://github.com/jwill/html5-game-book找到代碼示例?! ≈轮x 對(duì)于本書而言,我有很多人要感謝。首先是在本書出版過程中提供了無法估量的貢獻(xiàn)的Pearson團(tuán)隊(duì)(包括Trina MacDonald、Songlin Qiu和Olivia Basegio),他們使本書更棒,我認(rèn)為他們成功做到了。撰寫本書時(shí),主題在迅速地變化發(fā)展,技術(shù)編輯Romin Irani、Pascal Rettig和Robert Schwentker對(duì)市場(chǎng)走向進(jìn)行了特別的考量,我很高興與他們合作,他們分享我的激情,給予我快速、明確的反饋,驗(yàn)證我的猜想并使我修正偏離的方向。最后,我要感謝的是我的家人和朋友,他們很有耐心而沒有怨言,當(dāng)我疲憊的時(shí)候讓我放松,讓我休息。
內(nèi)容概要
《HTML5游戲開發(fā)實(shí)踐指南》以實(shí)踐為導(dǎo)向,全面講解了HTML5游戲開發(fā)所需掌握的各種最新技術(shù)、可以使用的各種工具和框架,以及開發(fā)的思維和方法,是系統(tǒng)學(xué)習(xí)HTML5游戲開發(fā)的最佳選擇之一。
本書內(nèi)容全面而且極具前瞻性,不僅重點(diǎn)闡述了HTML5和JavaScript的核心技術(shù),而且還仔細(xì)講解了WebGL、SVG、ProcessingJS、Inkscape、RaphalJS、PhoneGap、SGF、CoffeeScript和Node.js等與HTML5開發(fā)相關(guān)的各種技術(shù)、工具、框架、類庫等的功能和使用方法,為HTML5應(yīng)用開發(fā)者描繪了一幅完整的技術(shù)全景圖。更為重要的是,它還深入講解了HTML5游戲的運(yùn)作機(jī)制、游戲開發(fā)與設(shè)計(jì)的思維和方法、游戲的性能優(yōu)化方法,及其在各種平臺(tái)上的發(fā)布方法。本書的實(shí)戰(zhàn)性和可操作性也非常強(qiáng),包含大量示例,有助于讀者對(duì)理論知識(shí)進(jìn)行融會(huì)貫通。
全書一共11章:第1章詳細(xì)講解了Canvas等HTML5的核心技術(shù);第2章首先介紹了如何搭建一個(gè)完善的HTML5開發(fā)環(huán)境,然后講解了如何部署HTML5應(yīng)用開發(fā)需要的Web服務(wù)器端工具、瀏覽器端工具以及HTML5工具;第3章講解了JavaScript的核心技術(shù)以及jQuery框架的使用;第4章探討了游戲的設(shè)計(jì)思路和游戲的運(yùn)行機(jī)制;第5~8章以實(shí)例的方式講解了如何通過Canvas標(biāo)簽、SVG、RaphalJS、WebGL、Three.js、GWT、CoffeeScript等最新流行的技術(shù)和框架來開發(fā)游戲;第9章講解了如何利用現(xiàn)今流行的Node.js來構(gòu)建多人游戲服務(wù)器;第10章講解了在Android、iOS、Windows
Phone等主流移動(dòng)平臺(tái)上開發(fā)HTML5游戲的核心技術(shù)和PhoneGap等移動(dòng)開發(fā)框架;第11章探討了HTML5游戲的資源優(yōu)化以及在各種平臺(tái)的完整發(fā)布過程。
作者簡(jiǎn)介
James
L.Williams是硅谷一名經(jīng)驗(yàn)豐富的開發(fā)專家,經(jīng)常在世界各地講解有關(guān)Java、用戶界面和游戲編程方面的內(nèi)容。他發(fā)明了SwingXBuilder(一種利用SwingX組件創(chuàng)建用戶界面的特定域語言),同時(shí),他還是Griffon項(xiàng)目(一個(gè)使用Groovy構(gòu)建富應(yīng)用程序的框架)的聯(lián)合創(chuàng)始人之一。由他和他的團(tuán)隊(duì)構(gòu)思、編碼并實(shí)現(xiàn)了運(yùn)行在SXSW上的教練車產(chǎn)品,因此在StartupBus
2011大賽中獲獎(jiǎng)。
書籍目錄
譯者序
前言
第1章 HTML5概述
1.1 超越基本的HTML
1.1.1 JavaScript
1.1.2 AJAX2
1.2 填補(bǔ)空白
1.2.1 Google Gears
1.2.2 Chrome Frame
1.3 使用WebSockets和Web Workers編程
1.3.1 WebSockets
1.3.2 Web Workers
1.4 應(yīng)用程序緩存
1.5 數(shù)據(jù)庫API
1.5.1 WebSQL API
1.5.2 IndexedDB API
1.6 Web Storage
1.7 定位
1.8 提示用戶消息
1.8.1 為顯示提示請(qǐng)求權(quán)限
1.8.2 創(chuàng)建提示
1.8.3 與提示信息實(shí)現(xiàn)交互
1.9 媒體元素
1.9.1 控制媒體播放
1.9.2 處理不支持的格式
1.10 繪畫API
1.10.1 Canvas
1.10.2 SVG
1.10.3 WebGL
1.11 使用Microdata傳達(dá)信息
1.12 小結(jié)
第2章 配置開發(fā)環(huán)境
2.1 開發(fā)工具
2.1.1 安裝Java
2.1.2 安裝Eclipse IDE和Google插件
2.1.3 Google Web Toolkit
2.2 Web服務(wù)器端工具和選項(xiàng)
2.2.1 Google App Engine
2.2.2 Opera Unite
2.2.3 Node.js和RingoJS
2.3 瀏覽器端工具
2.3.1 Chrome開發(fā)人員工具
2.3.2 Chrome擴(kuò)展程序
2.3.3 Safari開發(fā)人員工具
2.3.4 Firebug
2.4 HTML5工具
2.4.1 ProcessingJS
2.4.2 Inkscape
2.4.3 SVG-edit
2.4.4 Raphal
2.5 3D建模工具
2.6 小結(jié)
第3章 JavaScript概述
3.1 什么是JavaScript
3.1.1 JavaScript基本類型
3.1.2 理解算術(shù)運(yùn)算符
3.1.3 理解JavaScript函數(shù)
3.1.4 first-class對(duì)象函數(shù)
3.1.5 比較運(yùn)算符
3.2 條件和循環(huán)語句
3.2.1 使用循環(huán)控制程序流
3.2.2 使用setTimeout和setInterval函數(shù)實(shí)現(xiàn)延遲執(zhí)行
3.3 使用繼承和多態(tài)創(chuàng)建復(fù)雜對(duì)象
3.4 JQuery簡(jiǎn)介
3.4.1 使用選擇器操作DOM元素
3.4.2 JQuery事件
3.4.3 JQuery中的AJAX41
3.4.4 跨站點(diǎn)腳本
3.5 JSON:另一種JavaScript格式
3.6 瀏覽器外的JavaScript
3.6.1 移動(dòng)平臺(tái)
3.6.2 將JavaScript作為中間語言
3.6.3 桌面應(yīng)用中的JavaScript
3.7 服務(wù)器端JavaScript
3.8 小結(jié)
3.9 練習(xí)
第4章 游戲運(yùn)行機(jī)制
4.1 游戲設(shè)計(jì)
4.1.1 撰寫基本設(shè)計(jì)文檔
4.1.2 確定游戲類型
4.1.3 游戲循環(huán)
4.1.4 獲取用戶輸入
4.2 使用高級(jí)數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)游戲?qū)ο?br />4.2.1 使用Set構(gòu)建唯一數(shù)據(jù)列表
4.2.2 使用鏈表創(chuàng)建對(duì)象圖
4.3 理解SGF中的API
4.3.1 核心API
4.3.2 組件API
4.3.3 資源API及網(wǎng)絡(luò)API
4.4 使用SGF構(gòu)建乒乓球游戲
4.4.1 設(shè)置應(yīng)用程序
4.4.2 繪制游戲配件
4.5 碰撞檢測(cè)和響應(yīng)
4.5.1 理解牛頓三大定律
4.5.2 讓球動(dòng)起來
4.5.3 高級(jí)碰撞檢測(cè)和粒子系統(tǒng)
4.6 通過人工智能增加游戲難度
4.6.1 將人工智能應(yīng)用到乒乓球游戲
4.6.2 將人工智能應(yīng)用到井字棋游戲
4.7 小結(jié)
4.8 練習(xí)
第5章 使用Canvas標(biāo)簽構(gòu)建游戲
5.1 Canvas基礎(chǔ)
5.1.1 繪制路徑
5.1.2 繪制井字棋游戲的棋子
5.2 使用變換繪制Canvas中的對(duì)象
5.2.1 變換規(guī)則
5.2.2 保存和恢復(fù)Canvas繪圖狀態(tài)
5.3 在Canvas中使用圖片
5.3.1 使用Data URI訪問圖片
5.3.2 使用Spritesheets訪問圖片
5.3.3 在Canvas中繪制圖片
5.4 使用Trident.js創(chuàng)建動(dòng)畫對(duì)象
5.4.1 創(chuàng)建時(shí)間線
5.4.2 使用關(guān)鍵幀實(shí)現(xiàn)動(dòng)畫
5.4.3 使用緩沖函數(shù)創(chuàng)建非線性時(shí)間線
5.4.4 使用Spritesheets創(chuàng)建游戲?qū)ο髣?dòng)畫
5.5 在2D空間模擬3D
5.5.1 透視投影
5.5.2 視差
5.5.3 使用JavaScript創(chuàng)建視差效果
5.6 創(chuàng)建Copy Me游戲
5.6.1 繪制游戲?qū)ο?br />5.6.2 創(chuàng)建游戲音調(diào)
5.6.3 在瀏覽器中播放MIDI文件
5.6.4 同時(shí)播放多個(gè)音頻
5.6.5 順序播放音頻
5.6.6 繪制游戲文本
5.6.7 使用CSS設(shè)置文本字體
5.7 小結(jié)
5.8 練習(xí)
第6章 使用SVG和RaphalJS構(gòu)建游戲
6.1 SVG概述
6.2 使用RaphalJS
6.2.1 設(shè)置游戲開發(fā)環(huán)境
6.2.2 創(chuàng)建游戲板
6.2.3 繪制游戲文本
6.3 自定義字體
6.3.1 設(shè)置顏色
6.3.2 加載游戲資源
6.3.3 將SVG文件轉(zhuǎn)換成位圖
6.4 創(chuàng)建游戲類
6.4.1 洗牌
6.4.2 繪制及卡片動(dòng)畫
6.5 制作高級(jí)動(dòng)畫
6.5.1 路徑
6.5.2 moveto和lineto
6.5.3 curveto
6.5.4 從SVG文件中導(dǎo)出路徑
6.5.5 在路徑中使用動(dòng)畫
6.6 使用插件擴(kuò)展Raphal
6.6.1 添加函數(shù)
6.6.2 SVG濾鏡
6.7 權(quán)衡速度
6.8 小結(jié)
6.9 練習(xí)
第7章 使用WebGL和Three.js構(gòu)建游戲
第8章 不使用JavaScript構(gòu)建游戲
第9章 構(gòu)建多人游戲服務(wù)器
第10章 開發(fā)移動(dòng)游戲
第11章 游戲發(fā)布
章節(jié)摘錄
第1章 HTML5概述 HTML5是HTML下一版本的規(guī)范草案,它突破了其前身,即HTML4 和XHTML技術(shù)。在HTML5中移除了部分元素,同時(shí)HTML5也不再基于舊的文本標(biāo)記標(biāo)準(zhǔn)SGML。HTML5比HTML4在錯(cuò)誤語法方面具有更好的兼容性。同時(shí),還允許不同瀏覽器以相同方式解析和展示格式錯(cuò)誤的文檔。這個(gè)版本的HTML增加了許多值得注意的內(nèi)容,例如,內(nèi)建原生圖片支持以及視聽元素。本章講解HTML5的新增特性和相關(guān)的JavaScript API?! ?.1 超越基本的HTML Tim Berners-Lee發(fā)明的HTML(Hypertext Markup Language,超文本標(biāo)記語言)從1990年至今已有相當(dāng)長一段歷史。雖然所有的進(jìn)步對(duì)于推動(dòng)標(biāo)準(zhǔn)前進(jìn)都至關(guān)重要,但筆者最感興趣的是1996年出現(xiàn)的JavaScript和2005年出現(xiàn)的AJAX。這些新特性使得Web頁面,從一個(gè)表示靜態(tài)單向數(shù)據(jù)的媒體(例如,報(bào)紙和圖書)轉(zhuǎn)變?yōu)橐粋€(gè)允許雙向交流的媒體?! ?.1.1 JavaScript JavaScript(前身為LiveScript,正式名為ECMAScript)由Netscape公司開發(fā)的瀏覽器腳本語言發(fā)展而來。它是一種基于原型的弱類型腳本語言,具有面向?qū)ο蠡蛘呙嫦蚝瘮?shù)的特性。盡管名為JavaScript,也繼承了Java語言的某些方面,但是它與C語言更為相似?! ∽鳛镾un Microsystems公司(現(xiàn)為Oracle公司)和Netscape公司之間,關(guān)于推廣腳本語言和Java Applet技術(shù)市場(chǎng)協(xié)議的一部分,該語言被重命名為JavaScript。JavaScript語言廣泛用于編寫客戶端Web頁面腳本。同時(shí),由于Sun公司已將“JavaScript”名稱注冊(cè)成為商標(biāo),所以微軟公司將發(fā)布的與其兼容的腳本語言命名為JScript,并對(duì)其添加了一些新內(nèi)容,并進(jìn)行了一些修改。 ……
編輯推薦
全面講解HTML 5游戲開發(fā)所需掌握的各種最新技術(shù)、工具和框架,以及開發(fā)的思維和方法;包含應(yīng)用程序?qū)W習(xí)示例的整個(gè)開發(fā)過程,具有極強(qiáng)的實(shí)戰(zhàn)性和可操作性。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
HTML5游戲開發(fā)實(shí)踐指南 PDF格式下載