内容简介
《HTML5 Canvas游戏开发实战》主要讲解使用HTML5Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。在书中,除了介绍了HTML5Canvas的基础API之外,还重点阐述了如何在JavaScript中运用面向对象的编程思想来进行游戏开发。
《HTML5 Canvas游戏开发实战》在介绍每个游戏开发的过程时,都会包括游戏分析、开发过程、代码解析和小结等相关内容,以帮助读者了解每种类型游戏开发的详细步骤,让读者彻底掌握各种类型游戏的开发思想。最后,还通过数据对比分析,指导读者提升程序的性能,写出高效的代码,从而开发出运行流畅的游戏。
目录
- html5 canvas游戏开发实战
- 前言
- 第一部分准备工作篇
- 第1章准备工作/2
- 1.1html5介绍/2
- 1.1.1什么是html5/2
- 1.1.2html5的新特性/2
- 1.2canvas简介/5
- 1.2.1canvas标签的历史/5
- 1.2.2canvas的定义和用法/6
- 1.2.3如何使用canvas来绘图/6
- 1.2.4canvas的限制/7
- 1.3开发与运行环境的准备/7
- 1.3.1浏览器的支持/7
- 1.3.2准备一个本地的服务器/8
- 1.4开发工具的选择/8
- 1.5测试与上传代码/12
- 1.6javascript中的面向对象/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.2canvas画布的导出功能/79
- 3.4小结/81
- 第4章lufylegend开源库件/82
- 4.1lufylegend库件简介/82
- 4.1.1工作原理/82
- 4.1.2库件使用流程/83
- 4.2图片的加载与显示/84
- 4.2.1图片显示举例/84
- 4.2.2lbitmapdata对象/86
- 4.2.3lbitmap对象/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.1box2d简介/229
- 9.2box2dweb在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鼠标关节(mousejoint)/254
- 9.6力/254
- 9.7碰撞检测/256
- 9.8镜头移动/260
- 9.9做一个简单的物理游戏/263
- 9.10小结/267
- 第10章开发网络游戏/268
- 10.1http通信/268
- 10.1.1如何实现http通信/268
- 10.1.2http通信的弊端/275
- 10.2socket通信/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.2drawimage和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
刚在购书中心从头到尾粗略翻看了一遍,书很薄,代码量占据了很多,似乎不值得细读。