HTML5游戏开发实战

HTML5游戏开发实战

华章科技

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
7.815 评价豆瓣读书
免费试读

作品简介

《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游戏开发实战》以实例为导向,系统介绍网络游戏开发技术,结合具体示例的操作步骤讲解,浅显易懂,适合网络游戏开发人员、管理人员阅读。

Makzan,资深游戏开发专家和HTML5技术工程师,有多年游戏开发经验和丰富的HTML5开发经验,毕业于中国香港大学。42games公司创始人,他对多玩家虚拟世界设计、iOS游戏设计、Flash应用开发、基于Facebook的应用开发,以及以HTML5、CSS3、jQuery为代表的Web开发技术都有非常深入的研究,实战经验丰富。此外,他还是知名的技术作家和培训讲师,还著有《Flash Multiplayer VirtualWorlds》,曾经担任中国澳门计算机培训中心的课程讲师。

吕定平,资深软件开发工程师,从事系统软件开发和手机游戏开发多年,实战经验丰富。现就职于Cocos2d-X开源游戏引擎组织,从事Cocos2d-HTML5游戏引擎框架的开发以及将游戏移植到HTML5框架的工作,并参与过多款游戏的开发与移植。目前主要研究与手机游戏和WebGL图形开发相关的技术,致力于提高HTML5游戏的开发效率和运行效率。

陈升想,HTML5中文网(html5china.com)创始人,HTML5技术布道者,致力于HTML5技术在中国的推广与普及,现就职于Cocos2d-X开源游戏引擎组织,专注于Cocos2d-HTML5游戏引擎框架的开发及《捕鱼达人》HTML5版本的移植。曾在国外从事网页设计及UI设计工作,之后转向HTML5游戏研发领域,开发并移植过多款HTML5游戏。

作品目录

  1. 审校者简介
  2. 译者序
  3. 前言
  4. 第1章 HTML5游戏概述
  5. 1.1 探索HTML5新功能
  6. 1.1.1 Canvas
  7. 1.1.2 音频
  8. 1.1.3 GeoLocation
  9. 1.1.4 WebGL
  10. 1.1.5 WebSocket
  11. 1.1.6 本地存储
  12. 1.1.7 离线应用程序
  13. 1.2 探索CSS3新功能
  14. 1.2.1 CSS3转换
  15. 1.2.2 CSS3变换
  16. 1.2.3 CSS3动画
  17. 1.3 HTML5和CSS3新功能的更多细节
  18. 1.4 创建HTML5游戏的好处
  19. 1.4.1 不需要第三方插件
  20. 1.4.2 不需要插件就能支持iOS设备
  21. 1.4.3 突破常规浏览器游戏限制
  22. 1.4.4 创建HTML5游戏
  23. 1.5 HTML5还能做些什么
  24. 1.5.1 《记忆配对》游戏
  25. 1.5.2 Sinuous
  26. 1.5.3 小行星式书签小程序
  27. 1.5.4 Quake 2
  28. 1.5.5 蝌蚪聊天室
  29. 1.5.6 Scrabb.ly
  30. 1.5.7 Aves引擎
  31. 1.6 浏览更多HTML5游戏
  32. 1.7 本书主要涉及哪些游戏
  33. 1.8 总结
  34. 第2章 DOM游戏开发入门
  35. 2.1 准备开发工具
  36. 2.2 为DOM游戏准备HTML文档
  37. 2.2.1 新式HTML5 doctype声明
  38. 2.2.2 页眉和页脚
  39. 2.2.3 JavaScript代码最佳位置
  40. 2.2.4 页面加载完后运行代码
  41. 2.3 设置《乒乓球》游戏元素
  42. 2.3.1 jQuery简述
  43. 2.3.2 jQuery选择器基础知识
  44. 2.3.3 jQuery css函数
  45. 2.3.4 使用jQuery的好处
  46. 2.3.5 使用jQuery操纵DOM游戏元素
  47. 2.3.6 绝对位置的行为
  48. 2.4 获取玩家的键盘输入
  49. 2.4.1 了解按键代码
  50. 2.4.2 让常数更具可读性
  51. 2.4.3 用parseInt函数将字符串转换为数字
  52. 2.4.4 在控制台面板中直接执行JavaScript表达式
  53. 2.4.5 检查控制台窗口
  54. 2.5 支持玩家多键盘同时输入
  55. 2.5.1 更好地声明全局变量
  56. 2.5.2 用setInterval函数创建JavaScript定时器
  57. 2.5.3 理解游戏主循环
  58. 2.6 通过JavaScript间隔移动DOM对象
  59. 2.7 开始碰撞检测
  60. 2.8 动态显示HTML文本
  61. 2.9 总结
  62. 第3章 用CSS3构建《纸牌记忆配对》游戏
  63. 3.1 用CSS3转换和变换模块移动游戏对象
  64. 3.1.1 2D变换函数
  65. 3.1.2 3D变换函数
  66. 3.1.3 用CSS3转换实现样式间过渡
  67. 3.2 创建翻牌效果
  68. 3.2.1 使用jQuery toggleClass函数切换类
  69. 3.2.2 通过z-index控制重叠元素的可见性
  70. 3.2.3 介绍CSS perspective属性
  71. 3.2.4 介绍背面可见性
  72. 3.3 创建《纸牌记忆配对》游戏
  73. 3.3.1 下载纸牌精灵表图像
  74. 3.3.2 设置游戏开发环境
  75. 3.3.3 使用jQuery复制DOM元素
  76. 3.3.4 使用jQuery的子节点过滤器选择首个子元素
  77. 3.3.5 垂直对齐DOM元素
  78. 3.3.6 通过背景位置来使用CSS精灵
  79. 3.4 给配对游戏添加游戏逻辑
  80. 3.4.1 在CSS转换完后执行代码
  81. 3.4.2 翻牌后延迟代码的执行
  82. 3.4.3 在JavaScript中随机化数组
  83. 3.4.4 通过HTML5自定义数据属性保存内部自定义数据
  84. 3.4.5 用JQuery访问自定义数据属性
  85. 3.4.6 制作其他纸牌游戏
  86. 3.5 在游戏中嵌入Web字体
  87. 3.6 总结
  88. 第4章 用Canvas和绘图API构建《解题》游戏
  89. 4.1 介绍HTML5 Canvas元素
  90. 4.2 在Canvas中绘制圆形
  91. 4.2.1 当Web浏览器不支持Canvas时的反馈信息
  92. 4.2.2 用Canvas的arc函数绘制圆和图形
  93. 4.2.3 把角度转换为弧度
  94. 4.2.4 在Canvas中执行路径绘制的操作
  95. 4.2.5 在切换路径样式时先调用BeginPath
  96. 4.2.6 关闭路径
  97. 4.2.7 将画圆功能封装成函数
  98. 4.2.8 在JavaScript中生成随机数
  99. 4.2.9 保存圆的位置
  100. 4.3 在Canvas中画线
  101. 4.4 通过Canvas中的鼠标事件与绘制对象交互
  102. 4.4.1 在Canvas元素中获取鼠标位置
  103. 4.4.2 在Canvas中检测鼠标事件是否发生在圆上
  104. 4.4.3 游戏主循环
  105. 4.4.4 清除Canvas
  106. 4.5 在Canvas中检测线的交点
  107. 4.6 制作《解题》游戏
  108. 4.6.1 定义关卡数据
  109. 4.6.2 判断是否过关
  110. 4.6.3 显示当前关卡和完成进度
  111. 4.7 总结
  112. 第5章 构建大师级Canvas游戏
  113. 5.1 用渐变色来填充图形
  114. 5.1.1 给渐变添加色标
  115. 5.1.2 填充径向渐变色
  116. 5.2 在Canvas中绘制文本
  117. 5.3 在Canvas中绘制图像
  118. 5.3.1 使用drawImage函数
  119. 5.3.2 装点Canvas游戏
  120. 5.4 在Canvas中播放精灵表动画
  121. 5.5 创建多层Canvas游戏
  122. 5.6 总结
  123. 第6章 给游戏添加声音效果
  124. 6.1 给PLAY按钮添加声音效果
  125. 6.1.1 定义audio元素
  126. 6.1.2 播放声音
  127. 6.1.3 暂停声音
  128. 6.1.4 调整音量大小
  129. 6.1.5 使用jQuery的hover事件
  130. 6.1.6 创建Ogg格式的音频以支持Mozilla Firefox
  131. 6.1.7 不同Web浏览器所支持的音频格式
  132. 6.2 构建迷你钢琴音乐游戏
  133. 6.2.1 在HTML5游戏中创建场景
  134. 6.2.2 让音乐播放可视化
  135. 6.2.3 为音乐游戏选择正确的歌曲
  136. 6.2.4 存储和提取歌曲关卡数据
  137. 6.2.5 获取游戏的流逝时间
  138. 6.2.6 创建音乐点
  139. 6.2.7 移动音乐点
  140. 6.3 将PLAY按钮与音乐游戏场景链接起来
  141. 6.4 构建键盘驱动的迷你钢琴音乐游戏
  142. 6.4.1 通过按键来击打三条音乐线
  143. 6.4.2 判断按键是否击中音乐点
  144. 6.4.3 通过给定索引将元素从数组中移除
  145. 6.5 给迷你钢琴游戏添加额外的功能
  146. 6.5.1 根据玩家的表现而调整音乐音量
  147. 6.5.2 从游戏中删除音乐点
  148. 6.5.3 保存最近5个音乐点的成功率计数
  149. 6.5.4 记录音符来得到关卡数据
  150. 6.6 音乐播放完后处理audio事件
  151. 6.7 总结
  152. 第7章 利用本地存储技术保存游戏数据
  153. 7.1 使用HTML5本地存储技术保存数据
  154. 7.1.1 创建游戏结束对话框
  155. 7.1.2 在浏览器中保存成绩
  156. 7.1.3 通过本地存储技术保存和加载数据
  157. 7.1.4 本地存储只保存字符串值
  158. 7.1.5 将本地存储对象看做关联数组
  159. 7.2 在本地存储中保存对象
  160. 7.2.1 在JavaScript中获取当前日期和时间
  161. 7.2.2 使用原生JSON将对象编码成字符串
  162. 7.2.3 从JSON字符串中加载所保存的对象
  163. 7.2.4 在控制台窗口中检测本地存储
  164. 7.3 用一种漂亮的彩带效果来告诉玩家破记录了
  165. 7.4 保存整个游戏的进度
  166. 7.4.1 保存游戏进度
  167. 7.4.2 从本地存储中删除记录
  168. 7.4.3 在JavaScript中复制数组
  169. 7.4.4 恢复游戏进度
  170. 7.5 总结
  171. 第8章 利用WebSocket构建多人游戏——《我画你猜》
  172. 8.1 初试WebSocket Web应用程序
  173. 8.2 安装WebSocket服务器
  174. 8.2.1 安装Node.JS WebSocket服务器
  175. 8.2.2 创建广播连接数的WebSocket服务器
  176. 8.2.3 初始化WebSocket服务器
  177. 8.2.4 在服务器端监听连接事件
  178. 8.2.5 在服务器端获取已连接的客户端数
  179. 8.2.6 向所有已连接的浏览器广播消息
  180. 8.2.7 创建客户端来连接WebSocket服务器并获取总连接数
  181. 8.2.8 建立WebSocket连接
  182. 8.2.9 WebSocket客户端事件
  183. 8.3 使用WebSocket构建聊天室
  184. 8.3.1 向服务器发送消息
  185. 8.3.2 从客户端发送消息到服务器
  186. 8.3.3 在服务器端接收消息
  187. 8.4 通过在服务端广播接收到的消息来创建聊天室
  188. 8.5 使用Canvas和WebSocket制作共享绘图板
  189. 8.5.1 构建本地绘图板
  190. 8.5.2 广播绘图数据给所有已连接的浏览器
  191. 8.5.3 定义用于在客户端与服务器之间进行通信的数据对象
  192. 8.5.4 将画线数据打包成JSON以便于广播
  193. 8.5.5 再现从其他客户端接收到的画线数据
  194. 8.6 构建多人游戏:《我画你猜》
  195. 8.6.1 控制多人游戏的游戏流程
  196. 8.6.2 在服务器端罗列出所有已连接客户端
  197. 8.6.3 在服务器端发送消息给指定的连接
  198. 8.6.4 改进现有游戏
  199. 8.7 用CSS装点《我画你猜》游戏
  200. 8.8 总结
  201. 第9章 用Box2D和Canvas构建物理类汽车游戏
  202. 9.1 安装Box2d JavaScript库
  203. 9.1.1 用b2World创建新的物理世界对象
  204. 9.1.2 用b2AABB定义物理边界
  205. 9.1.3 给物理世界设置重力
  206. 9.1.4 设置Box2D忽略休眠物体
  207. 9.2 在物理世界中创建静态地面
  208. 9.2.1 创建物体形状
  209. 9.2.2 创建物理物体
  210. 9.3 在Canvas上绘制物理世界
  211. 9.4 在物理世界里创建动态的长方形
  212. 9.5 推进物理世界的时间
  213. 9.6 给游戏安装车轮
  214. 9.7 创建物理汽车
  215. 9.8 通过键盘给汽车施加动力
  216. 9.8.1 向物体施加动力
  217. 9.8.2 理解ApplyForce与ApplyImpulse之间的不同点
  218. 9.8.3 给游戏环境添加坡道
  219. 9.9 在Box2D世界检测碰撞
  220. 9.10 重启游戏
  221. 9.11 让游戏支持关卡
  222. 9.12 为Box2D绘制图形轮廓
  223. 9.12.1 使用形状和物体的userData属性
  224. 9.12.2 根据物理物体的状态来绘制每一帧图像
  225. 9.12.3 在Canvas中旋转和翻转图片
  226. 9.13 给游戏添加装饰,让游戏更具趣味性
  227. 9.13.1 用燃料的限制加速
  228. 9.13.2 用CSS3进度条显示剩余燃料
  229. 9.14 总结
  230. 9.14.1 HTML5游戏引擎
  231. 9.14.2 游戏精灵以及贴图
  232. 9.14.3 声音效果
  233. 附录 突击测验答案
载入中
载入中