HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。在本书中,除了介绍了HTML5 Canvas的基础API之外,还重点阐述了如何在JavaScript中运用面向对象的编程思想来进行游戏开发。
本书在介绍每个游戏开发的过程时,都会包括游戏分析、开发过程、代码解析和小结等相关内容,以帮助读者了解每种类型游戏开发的详细步骤,让读者彻底掌握各种类型游戏的开发思想。最后,还通过数据对比分析,指导读者提升程序的性能,写出高效的代码,从而开发出运行流畅的游戏。
HTML5 Canvas游戏开发实战 目录:
前  言 
第一部分 准备工作篇 
第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 
 
 

HTML5 Canvas游戏开发实战 PDF扫描版的更多相关文章

  1. HTML5移动Web开发实战 PDF扫描版​

    <HTML5移动Web开发实战>提供了应对这一挑战的解决方案.通过阅读本书,你将了解如何有效地利用最新的HTML5的那些针对移动网站的功能,横跨多个移动平台.全书共分10章,从移动Web. ...

  2. HTML5 Canvas游戏开发(三)lufylegend开源库件(上)

    lufylegend可以解决HTML5开发游戏中会遇到的一些问题: 1.各种浏览器对于JavaScript和HTML的解析是不一致的. 2.手机浏览器和PC浏览器的区别. 3.JavaScript并非 ...

  3. HTML5 Canvas游戏开发(四)lufylegend开源库件(下)

    一.文本 LTextField对象是lufylegend库件中专门用于显示文本信息的一个对象. 1.文本属性 创建的文本框对象不会自动加入可视化对象列表中.只有手动调用addChild()方法才能使它 ...

  4. HTML5 Canvas游戏开发(二)高级功能

    一.变形 1.放大和缩小 scale(X,Y)函数. 当使用该函数时,其起始坐标值也被放大或缩小.当X.Y为负值时,可以实现翻转. 2.平移变换 translate(X,Y)函数. 表示水平方向向左移 ...

  5. HTML5 Canvas游戏开发(一)基础知识

    一.绘制基本图形 在每次用canvas画布时,都有几步是“套路” 1.在HTML中创建Canvas画布: <canvas id="mycanvas" width=" ...

  6. iOS cocos2d 2游戏开发实战(第3版)书评

    2013是游戏爆发的一年,手游用户也是飞速暴增.虽然自己不做游戏,但也是时刻了解手机应用开发的新动向.看到CSDN的"写书评得技术图书赢下载分"活动,就申请了一本<iOS c ...

  7. HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版​

    <html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...

  8. HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版​

    HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...

  9. HTML5游戏开发进阶指南 中文pdf扫描版​

    HTML5游戏开发进阶指南介绍了HTML5游戏开发的一般过程和技巧.全书共分12章,第1章介绍了本书相关的HTML5的诸多新特性,包括在canvas上绘图.播放声音等,另外还引入了子画面页的概念:第2 ...

随机推荐

  1. C#去除数组空格

    static void Main(string[] args) { "}; Console.WriteLine("输出带有空字符串的数组:"); foreach (str ...

  2. FTP for win7

    In Windows 7, you can share files on home network easily using Home Group but creating an FTP server ...

  3. (转)winform pictureBox后台显示图片

    本文转载自:http://blog.csdn.net/meizhiyun/article/details/8639002 1.获取本地程序图片 方法一 pictureBox1.BackgroundIm ...

  4. AngularJS:教程

    ylbtech-AngularJS:教程 1.返回顶部 1. AngularJS 教程 AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序(S ...

  5. PHP面向对象深入研究之【组合模式与装饰模式】

    组合模式 定义:组合模式定义了一个单根继承体系,使具有截然不同职责的集合可以并肩工作. 一个军队的案例, <?php abstract class Unit { // 个体 abstract f ...

  6. Box2D学习blog

    http://www.ladeng6666.com/blog/category/box2d/

  7. 缓存 memcached 与 redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  8. 可重复使用Tab切换代码和纯js代码

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 基于FORM组件学生管理系统【中间件】

    目的:实现学生,老师,课程的增删改查 models.py from django.db import models # Create your models here. class UserInfo( ...

  10. Sql Server 2005如何导入DBF文件?

    提问者采纳   select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DA ...