《HTML5游戏开发实战》是一本经典的HTML5游戏开发教程,它清晰而全面地展示了如何使用最新的HTML5和CSS3标准来构建各种常见类型的游戏。《HTML5游戏开发实战》实战性非常强,围绕纸牌游戏、绘图游戏、物理游戏和多人游戏精心组织了6个富有趣味性和技术性的游戏案例。如果动手实践这些案例,不仅能掌握各种类型游戏的开发思路和设计方法,而且还能掌握HTML5和CSS3技术中与游戏开发相关的理论知识。《HTML5游戏开发实战》共分9章,第1章介绍HTML5、CSS3,以及相关的JavaScript API 新功能;第2章通过使用DOM和jQuery创建传统游戏;第3章讨论如何用DOM和CSS3来创建游戏;第4章介绍在页面如何通过Canvas来绘制游戏并与之交互;第5章介绍如何在Canvas中绘制渐变效果和加入图像;第6章使用Audio元素给游戏添加声音效果和背景音乐;第7章使用新的本地存储API保存和恢复游戏进度,进一步增强游戏;第8章讨论如何实现多人联网玩游戏;第9章讲解如何把Box2D集成到Canvas游戏中。
《HTML5游戏开发实战》以实例为导向,系统介绍网络游戏开发技术,结合具体示例的操作步骤讲解,浅显易懂,适合网络游戏开发人员、管理人员阅读。
审校者简介
译者序
前言
第1章 HTML5游戏概述1
1.1 探索HTML5新功能1
1.1.1 Canvas2
1.1.2 音频2
1.1.3 GeoLocation2
1.1.4 WebGL2
1.1.5 WebSocket3
1.1.6 本地存储4
1.1.7 离线应用程序4
1.2 探索CSS3新功能5
1.2.1 CSS3转换5
1.2.2 CSS3变换7
1.2.3 CSS3动画7
1.3 HTML5和CSS3新功能的更多细节8
1.4 创建HTML5游戏的好处8
1.4.1 不需要第三方插件9
1.4.2 不需要插件就能支持iOS设备9
1.4.3 突破常规浏览器游戏限制9
1.4.4 创建HTML5游戏9
1.5 HTML5还能做些什么11
1.5.1 《记忆配对》游戏11
1.5.2 Sinuous11
1.5.3 小行星式书签小程序12
1.5.4 Quake 212
1.5.5 蝌蚪聊天室13
1.5.6 Scrabb.ly13
1.5.7 Aves引擎14
1.6 浏览更多HTML5游戏15
1.7 本书主要涉及哪些游戏15
1.8 总结16
第2章 DOM游戏开发入门17
2.1 准备开发工具18
2.2 为DOM游戏准备HTML文档18
2.2.1 新式HTML5 doctype声明19
2.2.2 页眉和页脚20
2.2.3 JavaScript代码最佳位置20
2.2.4 页面加载完后运行代码20
2.3 设置《乒乓球》游戏元素21
2.3.1 jQuery简述23
2.3.2 jQuery选择器基础知识23
2.3.3 jQuery css函数24
2.3.4 使用jQuery的好处25
2.3.5 使用jQuery操纵DOM游戏元素25
2.3.6 绝对位置的行为26
2.4 获取玩家的键盘输入27
2.4.1 了解按键代码29
2.4.2 让常数更具可读性29
2.4.3 用parseInt函数将字符串转换为数字30
2.4.4 在控制台面板中直接执行JavaScript表达式31
2.4.5 检查控制台窗口32
2.5 支持玩家多键盘同时输入32
2.5.1 更好地声明全局变量34
2.5.2 用setInterval函数创建JavaScript定时器35
2.5.3 理解游戏主循环35
2.6 通过JavaScript间隔移动DOM对象35
2.7 开始碰撞检测37
2.8 动态显示HTML文本41
2.9 总结43
第3章 用CSS3构建《纸牌记忆配对》游戏44
3.1 用CSS3转换和变换模块移动游戏对象44
3.1.1 2D变换函数47
3.1.2 3D变换函数48
3.1.3 用CSS3转换实现样式间过渡49
3.2 创建翻牌效果50
3.2.1 使用jQuery toggleClass函数切换类 52
3.2.2 通过z-index控制重叠元素的可见性53
3.2.3 介绍CSS perspective属性53
3.2.4 介绍背面可见性54
3.3 创建《纸牌记忆配对》游戏55
3.3.1 下载纸牌精灵表图像55
3.3.2 设置游戏开发环境56
3.3.3 使用jQuery复制DOM元素61
3.3.4 使用jQuery的子节点过滤器选择首个子元素61
3.3.5 垂直对齐DOM元素62
3.3.6 通过背景位置来使用CSS精灵62
3.4 给配对游戏添加游戏逻辑63
3.4.1 在CSS转换完后执行代码66
3.4.2 翻牌后延迟代码的执行67
3.4.3 在JavaScript中随机化数组67
3.4.4 通过HTML5自定义数据属性保存内部自定义数据68
3.4.5 用JQuery访问自定义数据属性68
3.4.6 制作其他纸牌游戏70
3.5 在游戏中嵌入Web字体70
3.6 总结73
第4章 用Canvas和绘图API构建《解题》游戏74
4.1 介绍HTML5 Canvas元素75
4.2 在Canvas中绘制圆形75
4.2.1 当Web浏览器不支持Canvas时的反馈信息77
4.2.2 用Canvas的arc函数绘制圆和图形78
4.2.3 把角度转换为弧度78
4.2.4 在Canvas中执行路径绘制的操作82
4.2.5 在切换路径样式时先调用BeginPath82
4.2.6 关闭路径83
4.2.7 将画圆功能封装成函数83
4.2.8 在JavaScript中生成随机数85
4.2.9 保存圆的位置85
4.3 在Canvas中画线87
4.4 通过Canvas中的鼠标事件与绘制对象交互90
4.4.1 在Canvas元素中获取鼠标位置93
4.4.2 在Canvas中检测鼠标事件是否发生在圆上93
4.4.3 游戏主循环95
4.4.4 清除Canvas95
4.5 在Canvas中检测线的交点96
4.6 制作《解题》游戏100
4.6.1 定义关卡数据105
4.6.2 判断是否过关105
4.6.3 显示当前关卡和完成进度105
4.7 总结106
第5章 构建大师级Canvas游戏107
5.1 用渐变色来填充图形108
5.1.1 给渐变添加色标109
5.1.2 填充径向渐变色110
5.2 在Canvas中绘制文本112
5.3 在Canvas中绘制图像116
5.3.1 使用drawImage函数120
5.3.2 装点Canvas游戏121
5.4 在Canvas中播放精灵表动画123
5.5 创建多层Canvas游戏127
5.6 总结132
第6章 给游戏添加声音效果134
6.1 给PLAY按钮添加声音效果135
6.1.1 定义audio元素137
6.1.2 播放声音138
6.1.3 暂停声音138
6.1.4 调整音量大小139
6.1.5 使用jQuery 的hover事件139
6.1.6 创建Ogg格式的音频以支持Mozilla Firefox140
6.1.7 不同Web浏览器所支持的音频格式141
6.2 构建迷你钢琴音乐游戏141
6.2.1 在HTML5游戏中创建场景144
6.2.2 让音乐播放可视化144
6.2.3 为音乐游戏选择正确的歌曲149
6.2.4 存储和提取歌曲关卡数据149
6.2.5 获取游戏的流逝时间150
6.2.6 创建音乐点150
6.2.7 移动音乐点151
6.3 将PLAY按钮与音乐游戏场景链接起来152
6.4 构建键盘驱动的迷你钢琴音乐游戏155
6.4.1 通过按键来击打三条音乐线156
6.4.2 判断按键是否击中音乐点157
6.4.3 通过给定索引将元素从数组中移除158
6.5 给迷你钢琴游戏添加额外的功能159
6.5.1 根据玩家的表现而调整音乐音量159
6.5.2 从游戏中删除音乐点161
6.5.3 保存最近5个音乐点的成功率计数162
6.5.4 记录音符来得到关卡数据162
6.6 音乐播放完后处理audio事件164
6.7 总结166
第7章 利用本地存储技术保存游戏数据167
7.1 使用HTML5本地存储技术保存数据168
7.1.1 创建游戏结束对话框168
7.1.2 在浏览器中保存成绩171
7.1.3 通过本地存储技术保存和加载数据172
7.1.4 本地存储只保存字符串值173
7.1.5 将本地存储对象看做关联数组173
7.2 在本地存储中保存对象174
7.2.1 在JavaScript中获取当前日期和时间177
7.2.2 使用原生JSON将对象编码成字符串178
7.2.3 从JSON字符串中加载所保存的对象178
7.2.4 在控制台窗口中检测本地存储179
7.3 用一种漂亮的彩带效果来告诉玩家破记录了180
7.4 保存整个游戏的进度183
7.4.1 保存游戏进度183
7.4.2 从本地存储中删除记录186
7.4.3 在JavaScript中复制数组186
7.4.4 恢复游戏进度187
7.5 总结189
第8章 利用WebSocket构建多人 游戏—《我画你猜》190
8.1 初试WebSocket Web应用程序190
8.2 安装WebSocket服务器192
8.2.1 安装Node.JS WebSocket服务器193
8.2.2 创建广播连接数的WebSocket服务器194
8.2.3 初始化WebSocket服务器195
8.2.4 在服务器端监听连接事件195
8.2.5 在服务器端获取已连接的客户端数196
8.2.6 向所有已连接的浏览器广播消息196
8.2.7 创建客户端来连接WebSocket服务器并获取总连接数196
8.2.8 建立WebSocket连接198
8.2.9 WebSocket客户端事件198
8.3 使用WebSocket构建聊天室199
8.3.1 向服务器发送消息199
8.3.2 从客户端发送消息到服务器201
8.3.3 在服务器端接收消息201
8.4 通过在服务端广播接收到的消息来创建聊天室202
8.5 使用Canvas和WebSocket制作共享绘图板205
8.5.1 构建本地绘图板205
8.5.2 广播绘图数据给所有已连接的浏览器208
8.5.3 定义用于在客户端与服务器之间进行通信的数据对象211
8.5.4 将画线数据打包成JSON以便于广播211
8.5.5 再现从其他客户端接收到的画线数据212
8.6 构建多人游戏:《我画你猜》212
8.6.1 控制多人游戏的游戏流程217
8.6.2 在服务器端罗列出所有已连接客户端218
8.6.3 在服务器端发送消息给指定的连接218
8.6.4 改进现有游戏218
8.7 用CSS装点《我画你猜》游戏219
8.8 总结221
第9章 用Box2D和Canvas构建物理类汽车游戏222
9.1 安装Box2d JavaScript库223
9.1.1 用b2World创建新的物理世界对象226
9.1.2 用b2AABB定义物理边界226
9.1.3 给物理世界设置重力226
9.1.4 设置 Box2D忽略休眠物体227
9.2 在物理世界中创建静态地面227
9.2.1 创建物体形状228
9.2.2 创建物理物体228
9.3 在Canvas上绘制物理世界 229
9.4 在物理世界里创建动态的长方形232
9.5 推进物理世界的时间233
9.6 给游戏安装车轮234
9.7 创建物理汽车235
9.8 通过键盘给汽车施加动力237
9.8.1 向物体施加动力238
9.8.2 理解ApplyForce与ApplyImpulse之间的不同点239
9.8.3 给游戏环境添加坡道239
9.9 在Box2D世界检测碰撞240
9.10 重启游戏242
9.11 让游戏支持关卡244
9.12 为Box2D绘制图形轮廓247
9.12.1 使用形状和物体的userData属性250
9.12.2 根据物理物体的状态来绘制每一帧图像250
9.12.3 在Canvas中旋转和翻转图片251
9.13 给游戏添加装饰,让游戏更具趣味性251
9.13.1 用燃料的限制加速256
9.13.2 用CSS3进度条显示剩余燃料256
9.14 总结257
9.14.1 HTML5 游戏引擎258
9.14.2 游戏精灵以及贴图258
9.14.3 声音效果258
附录 突击测验答案259
《通信协议技术》是OHM通信实用技术系列之一。《通信协议技术》中基于以下三方面介绍通信协议技术:(1)通信协议中怎样利用图像
《水样的春愁:郁达夫精读》内容简介:本书是郁达夫散文和小说的代表作合集,收录了他的名作《故都的秋》《北平的四季》《沉沦》《
《新手学:黑客攻防(入门篇)(超值实用版)》共11章。第1章介绍黑客的基础知识,包括黑客入侵的途径、入侵命令以及入侵的方式。第2章
《职工代表大会实务操作与法律依据》内容简介:针对当前企事业单位民主管理制度职工代表大会召开中经常遇到的问题,按照由宏观到微
Java从入门到精通(第3版)(配光盘)(软件开发视频大讲堂) 本书特色 “软件开发视频大讲堂”丛书系清华社“视频大讲堂”重点大系之一。该大系包括多个子系列,每...
《C++新经典》内容简介:本书是一部C/C++编程语言书,定位在C/C++语言本身的讲解上面。本书包含纸质图书以及教学源代码文件。本书共
今天的人形机器人有着人类的外表,也可以做一些人类所做的简单事情,比如用手拿取东西,双腿行走等。但这还远远不够,类人机器人
ThemobilerevolutionFindouthowtomakethemostofitThisguidefocusesonwhatisamustforal...
计算机图形学 内容简介 本书主要讲述计算机图形学的有关原理、软硬件环境、几何建模和图形处理的基本方法。介绍了计算机图形学的基本概念、发展和应用,计算机图形系统的...
《JavaEE设计模式:Spring企业级开发最佳实践》结合Spring框架讲解了JavaEE设计模式,主要介绍了JavaEE应用程序设计和Spring框架的
基于贝叶斯网络的结构系统可靠性评估方法 内容简介 本书是在作者近几年的研究成果上著作而成的,着眼于VA族元素形成的二维材料体系,采用基于密度泛函理论的性原理研究...
ContentsPrefaceVForewordToTheSecondEditionXiiiAboutTheAccompanyingCd-RomXivOnThe...
《幸福家庭成就优秀孩子》内容简介:本书从寻找幸福、正确认识婚姻与家庭以及家庭的功能入手,让读者懂得并学会用智慧去爱所爱的人
陈宇恒、肖竹、王洪编著的《LTE协议栈与信令分析》首先介绍了LTE系统架构,主要包括网络实体、网络接口、主要协议等,随后深入地
《直觉泵和其他思考工具》内容简介:哲学泰斗倾囊传授77招思维搏击术,助你清醒思考,看破一切套路!陈嘉映、汪丁丁、万维钢诚意推
《Head First Kotlin程序设计》内容简介:本书介绍了Kotlin的基本语法、常用类型、面向对象编程以及一些高阶的知识。在所有的章节中
《诗的时光书:当你老了》内容简介:以被艾略特誉为“当代最伟大的诗人”的叶芝开篇,这本书为读者打开了西方诗歌经典之门。作者精
《漫画肺康复》内容简介:通过图解的形式给广大呼吸系统疾病患者科普如何治疗疾病,改善生活质量。可以看做一本呼吸系统疾病的患者
《3D少儿游戏编程(原书第2版)》内容简介:你知道什么比玩游戏更有趣吗?自己编程!制作自己的在线游戏,即使你完全是一个初学者,
《走进搜索引擎(第2版)》由搜索引擎开发研究领域三位年轻的博士生精心编写,作者们希望将自己对搜索引擎的理解和实际应用相结合,