HTML5游戏开发实战

《HTML5游戏开发实战》
基本信息
原书名:HTML5 Games Development by Example: Beginner's Guide
作者: (美)Makzan   
译者: 吕定平 陈升想
出版社:机械工业出版社
ISBN:9787111391760
上架时间:2012-7-27
出版日期:2012 年7月
开本:16开
页码:1
版次:1-1
所属分类: 计算机
zcover.jpg
 
更多关于 》》》《 HTML5游戏开发实战(华章程序员书库)
内容简介
书籍
计算机书籍
  《html5游戏开发实战》是一本经典的html5游戏开发教程,它清晰而全面地展示了如何使用最新的html5和css3标准来构建各种常见类型的游戏。本书实战性非常强,围绕纸牌游戏、绘图游戏、物理游戏和多人游戏精心组织了6个富有趣味性和技术性的游戏案例。如果动手实践这些案例,不仅能掌握各种类型游戏的开发思路和设计方法,而且还能掌握html5和css3技术中与游戏开发相关的理论知识。本书共分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游戏开发实战》以实例为导向,系统介绍网络游戏开发技术,结合具体示例的操作步骤讲解,浅显易懂,适合网络游戏开发人员、管理人员阅读。
目录
《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

图书信息来源于: 中国互动出版网

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16566727/viewspace-738754/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16566727/viewspace-738754/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5 CANVAS游戏开发实战(PDF和源代码) 第一部分 准备工作篇 第1章 准备工作 / 2 1.1 html5介绍 / 2 1.1.1 什么是html5 / 2 1.1.2 html5的新特性 / 2 1.2 canvas简介 / 5 1.2.1 canvas标签的历史 / 5 1.2.2 canvas的定义和用法 / 6 1.2.3 如何使用canvas来绘图 / 6 1.2.4 canvas的限制 / 7 1.3 开发与运行环境的准备 / 7 1.3.1 浏览器的支持 / 7 1.3.2 准备一个本地的服务器 / 8 1.4 开发工具的选择 / 8 1.5 测试与上传代码 / 12 1.6 javascript中的面向对象 / 13 1.6.1 类 / 13 1.6.2 静态类 / 16 .1.6.3 继承 / 16 1.7 小结 / 17 第二部分 基础知识篇 第2章 canvas基本功能 / 20 2.1 绘制基本图形 / 20 2.1.1 画线 / 20 2.1.2 画矩形 / 22 2.1.3 画圆 / 24 2.1.4 画圆角矩形 / 26 2.1.5 擦除canvas画板 / 27 2.2 绘制复杂图形 / 28 2.2.1 画曲线 / 28 2.2.2 利用clip在指定区域绘 图 / 30 2.2.3 绘制自定义图形 / 31 2.3 绘制文本 / 32 2.3.1 绘制文字 / 32 2.3.2 文字设置 / 33 2.3.3 文字的对齐方式 / 38 2.4 图片操作 / 41 2.4.1 利用drawimage绘制图片 / 41 2.4.2 利用getimagedata和putimagedata绘制图片 / 45 2.4.3 利用createimagedata新建像素 / 47 2.5 小结 / 49 第3章 canvas高级功能 / 50 3.1 变形 / 50 3.1.1 放大与缩小 / 50 3.1.2 平移 / 53 3.1.3 旋转 / 54 3.1.4 利用transform矩阵实现多样化的变形 / 56 3.2 图形的渲染 / 65 3.2.1 绘制颜色渐变效果的图形 / 65 3.2.2 颜色合成之globalcompositeoperation属性 / 67 3.2.3 颜色反转 / 69 3.2.4 灰度控制 / 70 3.2.5 阴影效果 / 71 3.3 自定义画板 / 72 3.3.1 画板的建立 / 72 3.3.2 canvas画布的导出功能 / 79 3.4 小结 / 81 第4章 lufylegend开源库件 / 82 4.1 lufylegend库件简介 / 82 4.1.1 工作原理 / 82 4.1.2 库件使用流程 / 83 4.2 图片的加载与显示 / 84 4.2.1 图片显示举例 / 84 4.2.2 lbitmapdata对象 / 86 4.2.3 lbitmap对象 / 87 4.3 层的概念 / 88 4.4 使用lgraphics对象绘图 / 90 4.4.1 绘制矩形 / 90 4.4.2 绘制圆 / 91 4.4.3 绘制任意多边形 / 92 4.4.4 使用canvas的原始绘图函数进行绘图 / 93 4.4.5 使用lsprite对象进行绘图 / 94 4.4.6 使用lgraphics对象绘制图片 / 95 4.5 文本 / 101 4.5.1 文本属性 / 101 4.5.2 输入框 / 102 4.6 事件 / 103 4.6.1 鼠标事件 / 103 4.6.2 循环事件 / 104 4.6.3 键盘事件 / 105 4.7 按钮 / 106 4.8 动画 / 108 4.9 小结 / 113 第三部分 开发实战篇 第5章 从简单做起—“石头剪子布”游戏 / 116 5.1 游戏分析 / 116 5.2 必要的javascript知识 / 117 5.2.1 随机数 / 117 5.2.2 条件分支 / 117 5.3 分层实现 / 117 5.4 各个层的基本功能 / 119 5.4.1 基本画面显示 / 119 5.4.2 结果层的显示 / 126 5.4.3 控制层的显示 / 127 5.5 出拳 / 129 5.6 结果判定 / 131 5.7 小结 / 137 第6章 开发“俄罗斯方块”游戏 / 138 6.1 游戏分析 / 138 6.2 必要的javascript知识 / 138 6.3 游戏标题画面显示 / 139 6.4 向游戏里添加方块 / 141 6.5 控制方块的移动 / 152 6.5.1 键盘事件 / 152 6.5.2 触屏事件 / 155 6.6 方块的消除和得分的显示 / 157 6.7 小结 / 160 第7章 开发“是男人就下一百层”游戏 / 161 7.1 游戏分析 / 161 7.2 游戏标题画面显示 / 161 7.3 读取图片与背景显示 / 162 7.4 添加一个静止的地板 / 167 7.5 添加游戏主角 / 170 7.5.1 让游戏主角出现在画面上 / 170 7.5.2 通过键盘事件来控制游戏主角的移动 / 177 7.5.3 通过触屏事件来控制游戏主角的移动 / 178 7.6 添加多种多样的地板 / 179 7.6.1 会消失的地板 / 179 7.6.2 带刺的地板 / 181 7.6.3 带有弹性的地板 / 182 7.6.4 向左和向右移动的地板 / 184 7.7 游戏数据的显示 / 187 7.8 游戏结束与重开 / 190 7.9 小结 / 192 第8章 开发射击类游戏 / 193 8.1 游戏分析 / 193 8.2 添加一架可控飞机 / 194 8.2.1 添加一个飞机类 / 194 8.2.2 可控飞机类 / 197 8.3 为飞机添加多样化的子弹 / 203 8.3.1 建立一个子弹类 / 203 8.3.2 单发子弹 / 205 8.3.3 多发子弹 / 207 8.3.4 环形子弹 / 208 8.3.5 反向子弹 / 209 8.4 添加敌机 / 209 8.4.1 建立一个敌机类 / 210 8.4.2 建立一个敌机boss类 / 214 8.5 碰撞检测 / 217 8.5.1 飞机与子弹的碰撞 / 217 8.5.2 我机与敌机的碰撞 / 220 8.6 子弹的变更 / 221 8.6.1 建立一个弹药类 / 222 8.6.2 弹药与我机的碰撞 / 223 8.7 飞机生命值的显示 / 225 8.8 游戏胜利与失败判定 / 226 8.9 小结 / 228 第9章 开发物理游戏 / 229 9.1 box2d简介 / 229 9.2 box2dweb在lufylegend库件中的使用 / 229 9.3 创建各种各样的物体 / 234 9.3.1 矩形物体 / 234 9.3.2 圆形物体 / 237 9.3.3 多边形物体 / 239 9.4 响应鼠标拖拽物体 / 242 9.5 关节(joint) / 243 9.5.1 距离关节(b2distancejointdef) / 243 9.5.2 旋转关节(b2revolutejointdef) / 245 9.5.3 滑轮关节(b2pulleyjointdef) / 247 9.5.4 移动关节(b2prismaticjoint) / 248 9.5.5 齿轮关节(b2gearjoint) / 250 9.5.6 悬挂关节(b2linejoint) / 252 9.5.7 焊接关节(b2weldjoint) / 253 9.5.8 鼠标关节(mouse joint) / 254 9.6 力 / 254 9.7 碰撞检测 / 256 9.8 镜头移动 / 260 9.9 做一个简单的物理游戏 / 263 9.10 小结 / 267 第10章 开发网络游戏 / 268 10.1 http通信 / 268 10.1.1 如何实现http通信 / 268 10.1.2 http通信的弊端 / 275 10.2 socket通信 / 275 10.2.1 区分socket通信和http通信 / 276 10.2.2 服务器端 / 276 10.2.3 客户端 / 281 10.3 利用websocket实现简单的聊天室 / 283 10.4 做一款多人在线的坦克大战 / 293 10.4.1 服务器 / 293 10.4.2 客户端 / 293 10.5 小结 / 307 第四部分 技能提高篇 第11章 提高效率的分析 / 310 11.1 绘图时使用小数的影响 / 310 11.2 drawimage和putimagedata的效率比较 / 311 11.3 区域更新和图片大小对绘图效率的影响 / 311 11.4 图片格式对绘图效率的影响 / 313 11.5 优化代码以提高整体效率 / 314 11.5.1 使用位运算 / 314 11.5.2 少用math静态类 / 316 11.5.3 优化算法 / 319 11.6 小结 / 322

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值