标题：HTML5游戏开发实践指南
基本信息
原书名：Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL  书籍资料
作者： (美)Williams,J.L.    [作译者介绍] 
译者： 黄敏 
丛书名： 华章专业开发者丛书 
出版社：机械工业出版社 
ISBN：9787111380344
上架时间：2012-5-16
出版日期：2012 年5月
开本：16开
页码：202
版次：1-1
所属分类： 计算机
编辑推荐
来自美国硅谷的资深专家亲自执笔，包含大量实例，可操作性极强。
全面讲解HTML5游戏开发所需要掌握的各种最新技术、工具和框架（包含Canvas、SVG、WebGL等），以及开发的思维和方法。
内容简介
计算机书籍
《html5游戏开发实践指南》以实践为导向，全面讲解了html5游戏开发所需掌握的各种最新技术、可以使用的各种工具和框架，以及开发的思维和方法，是系统学习html5游戏开发的最佳选择之一。
《html5游戏开发实践指南》内容全面而且极具前瞻性，不仅重点阐述了html5和javascript的核心技术，而且还仔细讲解了webgl、svg、processingjs、inkscape、raphaljs、phonegap、sgf、coffeescript和node.js等与html5开发相关的各种技术、工具、框架、类库等的功能和使用方法，为html5应用开发者描绘了一幅完整的技术全景图。更为重要的是，它还深入讲解了html5游戏的运作机制、游戏开发与设计的思维和方法、游戏的性能优化方法，及其在各种平台上的发布方法。本书的实战性和可操作性也非常强，包含大量示例，有助于读者对理论知识进行融会贯通。
全书一共11章：第1章详细讲解了canvas等html5的核心技术；第2章首先介绍了如何搭建一个完善的html5开发环境，然后讲解了如何部署html5应用开发需要的web服务器端工具、浏览器端工具以及html5工具；第3章讲解了javascript的核心技术以及jquery框架的使用；第4章探讨了游戏的设计思路和游戏的运行机制；第5～8章以实例的方式讲解了如何通过canvas标签、svg、raphaljs、webgl、three.js、gwt、coffeescript等最新流行的技术和框架来开发游戏；第9章讲解了如何利用现今流行的node.js来构建多人游戏服务器；第10章讲解了在android、ios、windows phone等主流移动平台上开发html5游戏的核心技术和phonegap等移动开发框架；第11章探讨了html5游戏的资源优化以及在各种平台的完整发布过程。 
作译者回到顶部↑本书提供作译者介绍
James L.Williams是硅谷一名经验丰富的开发专家，经常在世界各地讲解有关Java、用户界面和游戏编程方面的内容。他发明了SwingXBuilder（一种利用SwingX组件创建用户界面的特定域语言），同时，他还是Griffon项目（一个使用Groovy构建富应用程序的框架）的联合创始人之一。由他和他的团队构思、编码并实现了运行在SXSW上的教练车产品，因此在StartupBus 2011大赛中获奖。
目录
《html5游戏开发实践指南》 
译者序 
前言 
第1章　html5概述1 
1.1　超越基本的html1 
1.1.1　javascript2 
1.1.2　ajax2 
1.2　填补空白2 
1.2.1　google gears3 
1.2.2　chrome frame3 
1.3　使用websockets和web workers编程4 
1.3.1　websockets4 
1.3.2　web workers4 
1.4　应用程序缓存5 
1.5　数据库api6 
1.5.1　websql api6 
1.5.2　indexeddb api7 
1.6　web storage7 
1.7　定位8 
1.8　提示用户消息10 
.1.8.1　为显示提示请求权限11 
1.8.2　创建提示12 
1.8.3　与提示信息实现交互13 
1.9　媒体元素13 
1.9.1　控制媒体播放14 
1.9.2　处理不支持的格式15 
1.10　绘画api16 
1.10.1　canvas16 
1.10.2　svg16 
1.10.3　webgl16 
1.11　使用microdata传达信息17 
1.12　小结18 
第2章　配置开发环境19 
2.1　开发工具19 
2.1.1　安装java19 
2.1.2　安装eclipse ide和google插件20 
2.1.3　google web toolkit21 
2.2　web服务器端工具和选项22 
2.2.1　google app engine23 
2.2.2　opera unite23 
2.2.3　node.js和ringojs23 
2.3　浏览器端工具24 
2.3.1　chrome开发人员工具24 
2.3.2　chrome扩展程序25 
2.3.3　safari开发人员工具26 
2.3.4　firebug26 
2.4　html5工具27 
2.4.1　processingjs27 
2.4.2　inkscape27 
2.4.3　svg-edit27 
2.4.4　raphal28 
2.5　3d建模工具29 
2.6　小结29 
第3章　javascript概述30 
3.1　什么是javascript30 
3.1.1　javascript基本类型30 
3.1.2　理解算术运算符31 
3.1.3　理解javascript函数31 
3.1.4　first-class对象函数32 
3.1.5　比较运算符33 
3.2　条件和循环语句34 
3.2.1　使用循环控制程序流35 
3.2.2　使用settimeout和setinterval函数实现延迟执行36 
3.3　使用继承和多态创建复杂对象37 
3.4　jquery简介39 
3.4.1　使用选择器操作dom元素40 
3.4.2　jquery事件41 
3.4.3　jquery中的ajax41 
3.4.4　跨站点脚本42 
3.5　json：另一种javascript格式42 
3.6　浏览器外的javascript43 
3.6.1　移动平台43 
3.6.2　将javascript作为中间语言43 
3.6.3　桌面应用中的javascript44 
3.7　服务器端javascript45 
3.8　小结46 
3.9　练习47 
第4章　游戏运行机制48 
4.1　游戏设计48 
4.1.1　撰写基本设计文档48 
4.1.2　确定游戏类型49 
4.1.3　游戏循环50 
4.1.4　获取用户输入50 
4.2　使用高级数据结构实现游戏对象50 
4.2.1　使用set构建唯一数据列表50 
4.2.2　使用链表创建对象图52 
4.3　理解sgf中的api53 
4.3.1　核心api53 
4.3.2　组件api54 
4.3.3　资源api及网络api55 
4.4　使用sgf构建乒乓球游戏55 
4.4.1　设置应用程序56 
4.4.2　绘制游戏配件57 
4.5　碰撞检测和响应59 
4.5.1　理解牛顿三大定律59 
4.5.2　让球动起来61 
4.5.3　高级碰撞检测和粒子系统62 
4.6　通过人工智能增加游戏难度63 
4.6.1　将人工智能应用到乒乓球游戏63 
4.6.2　将人工智能应用到井字棋游戏64 
4.7　小结66 
4.8　练习66 
第5章　使用canvas标签构建游戏67 
5.1　canvas基础67 
5.1.1　绘制路径68 
5.1.2　绘制井字棋游戏的棋子69 
5.2　使用变换绘制canvas中的对象70 
5.2.1　变换规则72 
5.2.2　保存和恢复canvas绘图状态72 
5.3　在canvas中使用图片73 
5.3.1　使用data uri访问图片73 
5.3.2　使用spritesheets访问图片74 
5.3.3　在canvas中绘制图片74 
5.4　使用trident.js创建动画对象75 
5.4.1　创建时间线75 
5.4.2　使用关键帧实现动画76 
5.4.3　使用缓冲函数创建非线性时间线77 
5.4.4　使用spritesheets创建游戏对象动画78 
5.5　在2d空间模拟3d79 
5.5.1　透视投影79 
5.5.2　视差80 
5.5.3　使用javascript创建视差效果80 
5.6　创建copy me游戏82 
5.6.1　绘制游戏对象82 
5.6.2　创建游戏音调82 
5.6.3　在浏览器中播放midi文件84 
5.6.4　同时播放多个音频84 
5.6.5　顺序播放音频85 
5.6.6　绘制游戏文本86 
5.6.7　使用css设置文本字体86 
5.7　小结87 
5.8　练习87 
第6章　使用svg和raphaljs构建游戏88 
6.1　svg概述88 
6.2　使用raphaljs89 
6.2.1　设置游戏开发环境90 
6.2.2　创建游戏板91 
6.2.3　绘制游戏文本92 
6.3　自定义字体92 
6.3.1　设置颜色95 
6.3.2　加载游戏资源96 
6.3.3　将svg文件转换成位图97 
6.4　创建游戏类98 
6.4.1　洗牌99 
6.4.2　绘制及卡片动画100 
6.5　制作高级动画102 
6.5.1　路径102 
6.5.2　moveto和lineto103 
6.5.3　curveto103 
6.5.4　从svg文件中导出路径104 
6.5.5　在路径中使用动画104 
6.6　使用插件扩展raphal105 
6.6.1　添加函数105 
6.6.2　svg滤镜105 
6.7　权衡速度106 
6.8　小结106 
6.9　练习106 
第7章　使用webgl和three.js构建游戏108 
7.1　三维109 
7.2　用材质和光源美化对象110 
7.2.1　了解照明110 
7.2.2　使用材质及着色器111 
7.3　创建第一个three.js场景113 
7.3.1　设置视角113 
7.3.2　观察世界118 
7.4　使用three.js加载3d模型119 
7.5　着色及纹理处理的编程121 
7.6　使用纹理123 
7.7　使用three.js创建游戏125 
7.8　用游戏模拟真实世界126 
7.9　重温粒子系统129 
7.10　创建场景130 
7.11　模型动画设计131 
7.12　3d模型资源131 
7.13　校准游戏132 
7.13.1　用stats.js检查帧速率133 
7.13.2　运用webgl inspector133 
7.14　小结134 
7.15　练习134 
第8章　不使用javascript构建游戏135 
8.1　google web toolkit135 
8.1.1　了解gwt部件及布局136 
8.1.2　使用jsni向gwt展示javascript库137 
8.1.3　raphalgwt138 
8.1.4　使用gwt-html5-media创建声音139 
8.1.5　使用gwt访问绘图api139 
8.2　coffeescript140 
8.2.1　安装coffeescript141 
8.2.2　编译coffeescript文件141 
8.3　coffeescript快速指南142 
8.3.1　基础142 
8.3.2　函数和调用142 
8.3.3　别名、条件语句和循环语句144 
8.3.4　增强的for循环和集合视图144 
8.3.5　类和继承145 
8.4　替代技术146 
8.4.1　cappuccino146 
8.4.2　pyjamas146 
8.5　小结147 
8.6　练习147 
第9章　构建多人游戏服务器148 
9.1　node.js简介148 
9.1.1　使用node包管理器扩展node149 
9.1.2　node的多版本管理149 
9.2　使用expressjs简化web app生成149 
9.2.1　使用url路由满足服务请求150 
9.2.2　会话管理152 
9.2.3　理解expressjs应用程序的结构152 
9.2.4　使用coffeekup定制html模板153 
9.3　使用缓存存储数据155 
9.4　管理c/s通信155 
9.4.1　使用socketio通信156 
9.4.2　使用express安装一个简单的socketio应用程序156 
9.4.3　使用nowjs简化web sockets157 
9.5　调试node应用程序158 
9.6　创建游戏服务器159 
9.6.1　创建游戏大厅159 
9.6.2　使用nowjs groups创建游戏房间160 
9.6.3　管理游戏玩家和在不同的游戏房间中移动161 
9.7　管理游戏162 
9.8　小结163 
9.9　练习163 
第10章　开发移动游戏164 
10.1　选择移动平台164 
10.1.1　ios164 
10.1.2　android164 
10.1.3　webos165 
10.1.4　windows phone 7165 
10.2　flick、tap和swipe：移动手势简介166 
10.3　选择应用程序还是web站点166 
10.4　在移动设备上存储数据168 
10.4.1　从lawnchair中解脱：一种相对容易的数据存储方法168 
10.4.2　开始使用lawnchair169 
10.5　使用jquery和zepto简化客户端脚本170 
10.5.1　使用jquery变种170 
10.5.2　使用zepto.js171 
10.6　使用joapp构建应用程序172 
10.7　选择应用程序框架173 
10.7.1　phonegap173 
10.7.2　深入phonegap api173 
10.7.3　appcelerator titanium175 
10.7.4　深入appcelerator titanium api175 
10.8　使用titanium和phonegap打包android应用程序176 
10.8.1　使用titanium打包应用程序177 
10.8.2　使用phonegap打包应用程序179 
10.9　小结182 
10.10　练习183 
第11章　游戏发布184 
11.1　优化游戏资源184 
11.1.1　使用google closure编译器进行代码小型化184 
11.1.2　使用缓存运行离线程序185 
11.2　服务器的主机服务188 
11.3　在部署node.js的服务器上发布游戏189 
11.4　在chrome web store上发布应用190 
11.4.1　描述应用的元数据191 
11.4.2　部署主机应用191 
11.4.3　部署应用程序包193 
11.4.4　在本地测试应用程序193 
11.4.5　上传应用程序到chrome web store193 
11.4.6　配置应用程序194 
11.4.7　确定使用包应用还是使用chrome主机应用195 
11.5　使用tapjs发布应用197 
11.5.1　创建tapjs应用197 
11.5.2　打包tapjs应用程序199 
11.5.3　将tapjs应用程序发布到facebook199 
11.6　使用kongregate发布游戏201 
11.7　将html5应用程序发布到桌面201 
11.8　小结202 
11.9　练习202