图书介绍

HTML5 canvas开发详解 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

HTML5 canvas开发详解 第2版
  • (美)STEVE FULTON,JEFF FULTON著;任旻,罗泽鑫译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115351487
  • 出版时间:2014
  • 标注页数:642页
  • 文件大小:83MB
  • 文件页数:667页
  • 主题词:超文本标记语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

HTML5 canvas开发详解 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 HTML5 Canvas简介1

1.1 什么是HTML52

1.2 基础的HTML5页面3

1.2.1 <!doctype html>3

1.2.2 <html lang=“en”>3

1.2.3 <meta charset=“UTF-8”>4

1.2.4 <title>...</title>4

1.2.5 一个简单的HTML5页面4

1.3 本书使用的基础HTML页面5

1.3.1 <div>5

1.3.2 <canvas>6

1.4 文档对象模型(DOM)和Canvas7

1.5 JavaScript和Canvas7

JavaScript放置的位置及其理由7

1.6 HTML5 Canvas版“Hello World!”8

1.6.1 为Canvas封装JavaScript代码9

1.6.2 将Canvas添加到HTML页面中10

1.6.3 检测浏览器是否支持Canvas10

1.6.4 获得2D环境11

1.6.5 drawScreen()函数12

1.7 用console.log调试15

1.8 2D环境及其当前状态16

1.9 HTML5 Canvas对象17

1.10 第二个示例:猜字母18

1.10.1 游戏如何工作18

1.10.2 “猜字母”游戏的变量18

1.10.3 initGame()函数19

1.10.4 eventKeyPressed()函数20

1.10.5 drawScreen()函数21

1.10.6 导出Canvas到图像23

1.10.7 最终的游戏代码23

1.11 动画版本的Hello World23

1.11.1 一些必要的属性24

1.11.2 动画循环25

1.11.3 使用globalAlpha属性设置alpha透明度26

1.11.4 清除并显示背景26

1.11.5 更新globalAlpha属性26

1.11.6 绘制文字27

1.11.7 HTML5 Canvas实现无障碍访问:子dom29

1.12 内容预告31

第2章 在Canvas上绘图32

2.1 本章基本文件设置32

2.2 基本矩形33

2.3 Canvas状态34

2.3.1 什么不属于状态35

2.3.2 如何保存和恢复Canvas状态35

2.4 使用路径创建线段35

2.4.1 设置路径的开始和结束35

2.4.2 动态绘图36

2.4.3 高级线段绘制举例37

2.5 高级路径方法38

2.5.1 弧线38

2.5.2 贝塞尔曲线40

2.5.3 Canvas裁切区域41

2.6 在画布上合成42

2.7 简单画布变换45

2.7.1 旋转和平移变换45

2.7.2 缩放变换50

2.7.3 缩放和旋转组合变换51

2.8 用颜色和渐变填充对象53

2.8.1 基本填充颜色设置53

2.8.2 填充渐变形状54

2.9 用图案填充形状63

2.10 创建阴影65

2.11 清除画布的方法67

2.11.1 简单填充67

2.11.2 重置画布的宽和高67

2.11.3 重新设置画布的clearRect函数67

2.12 检查一个点是否在当前路径68

2.13 绘制一个焦点环69

2.14 内容预告69

第3章 HTML5 Canvas的文本API70

3.1 显示基本文本70

3.1.1 基本文本显示71

3.1.2 在Text Arranger中处理基本文本71

3.1.3 HTML表单和画布之间的通信72

3.1.4 使用measureText72

3.1.5 fillText和strokeText74

3.2 设置文本字体77

3.2.1 字体大小、磅重和样式基础77

3.2.2 在文本编辑器中处理字体大小和外观77

3.2.3 字体颜色82

3.2.4 字体基线和对齐84

3.2.5 Text Arranger 2.0版87

3.3 文本和Canvas上下文87

3.3.1 全局alpha和文本87

3.3.2 全局阴影和文本89

3.4 文本渐变和图案91

3.4.1 文本线性渐变91

3.4.2 文本径向渐变93

3.4.3 文本图像图案93

3.4.4 在Text Arranger中处理渐变和图案94

3.5 宽度、高度、缩放和toDataURL()回顾97

3.5.1 动态调整画布尺寸97

3.5.2 动态缩放画布99

3.5.3 Canvas对象的toDataURL()方法100

3.6 最终版的Text Arranger102

3.7 渐变动画112

3.8 Canvas里文本的未来115

3.8.1 CSS文本116

3.8.2 文本的无障碍访问116

3.9 内容预告116

第4章 Canvas图像117

4.1 本章的基本文件设置117

4.2 图像基础118

4.2.1 预下载图像119

4.2.2 使用drawImage()函数在画布上显示图像119

4.2.3 调整画布上图像的大小121

4.2.4 将部分图像复制到画布122

4.3 简单的帧式动画124

4.3.1 创建动画帧计数器124

4.3.2 创建一个计时循环124

4.3.3 改变拼板显示125

4.4 高级帧式动画126

4.4.1 检查拼图126

4.4.2 创建动画数组126

4.4.3 选择拼板显示127

4.4.4 在拼板中循环127

4.4.5 绘制拼板127

4.4.6 在整个画布上移动图像128

4.5 在图像上应用旋转变换130

4.5.1 画布变换基础130

4.5.2 为变换的图像设置动画133

4.6 创建一个拼板网格136

4.6.1 定义拼板地图136

4.6.2 用Tiled创建拼板地图136

4.6.3 在画布上显示地图138

4.7 通过大图片深入了解绘图属性141

4.7.1 为图像创建一个窗口142

4.7.2 绘制图像窗口142

4.7.3 修改图片容器的属性143

4.7.4 缩放图像144

4.7.5 平移图片146

4.7.6 同时对图片进行移动和缩放147

4.8 像素操作148

4.8.1 操作画布像素的API148

4.8.2 应用程序拼板印章149

4.9 画布间的复制156

4.10 使用像素检测物体碰撞158

4.10.1 碰撞的对象159

4.10.2 如何检测物体碰撞160

4.10.3 检查两个物体的重叠部分160

4.11 内容预告165

第5章 数学、物理与动画166

5.1 直线移动166

5.1.1 两点间移动:线段距离168

5.1.2 按照矢量移动173

5.2 撞墙反弹177

5.2.1 单个球反弹178

5.2.2 多球撞墙反弹181

5.2.3 可动态调整画布大小的多球碰撞反弹187

5.2.4 多球反弹和碰撞191

5.2.5 有摩擦力的多球碰撞反弹203

5.3 曲线和圆弧运动210

5.3.1 匀速圆周运动210

5.3.2 简单螺旋运动212

5.3.3 3次贝赛尔曲线运动215

5.3.4 移动图像220

5.3.5 创建立方贝塞尔曲线环224

5.4 简单重力、弹力及摩擦力228

5.4.1 简单重力228

5.4.2 带反弹的简单重力232

5.4.3 重力反弹及应用简单弹力234

5.4.4 简单重力、弹力及摩擦力的综合237

5.5 缓冲240

5.5.1 缓冲结束(飞船着陆)240

5.5.2 缓冲开始(起飞)244

5.6 Box2D和画布247

5.6.1 下载Box2dWeb247

5.6.2 Box2D的工作原理248

5.6.3 Box2D的Hello World248

5.6.4 引入框架库248

5.6.5 创建Box2dWeb世界249

5.6.6 Box2dWeb中的单位249

5.6.7 在Box2D中定义墙250

5.6.8 创建小球251

5.6.9 b2debugDraw渲染与Canvas渲染的对比252

5.6.10 drawScreen()函数252

5.6.11 重温反弹球255

5.6.12 转换为Canvas256

5.7 与Box2D交互258

5.7.1 创建箱子259

5.7.2 渲染箱子260

5.7.3 增加互动效果260

5.7.4 创建箱子261

5.7.5 处理小球261

5.8 关于Box2D的更多内容267

5.9 内容预告267

第6章 在画布中融合HTML5视频268

6.1 HTML5中对视频的支持268

6.1.1 Theora+Vorbis=.ogg268

6.1.2 H.264+$$$=.mp4269

6.1.3 VP8+Vorbis=.webm269

6.1.4 结合3种视频格式270

6.2 转换视频格式270

6.3 HTML5视频的基本实现方法271

6.3.1 普通的视频嵌入方法272

6.3.2 添加视频控制器并设置播放方式273

6.3.3 调整视频的宽度和高度274

6.4 使用JavaScript预加载视频279

6.5 视频与画布282

6.5.1 在HTML5 Canvas上显示视频282

6.5.2 HTML5的视频属性288

6.6 在画布上使用视频的示例292

6.6.1 使用currentTime属性创建视频事件292

6.6.2 在画布上旋转视频296

6.6.3 在画布上制作视频拼图302

6.6.4 在画布上创建视频控制器315

6.7 回顾动画效果之移动视频324

6.8 使用JavaScript录制视频329

6.8.1 网络RTC多媒体捕捉接口及数据流接口329

6.8.2 例1:播放视频329

6.8.3 例2:在Canvas上播放视频并截图332

6.8.4 例3:创建视频拼图334

6.9 移动端HTML5视频的支持状况336

6.10 内容预告336

第7章 使用音频337

7.1 <audio>标签337

7.2 音频格式338

7.2.1 支持的音频格式338

7.2.2 音频转换工具Audacity338

7.2.3 示例:使用所有3种音频格式339

7.3 Audio标签的属性、函数和事件340

7.3.1 音频函数340

7.3.2 重要的音频属性341

7.3.3 重要的音频事件341

7.3.4 加载并播放音频342

7.3.5 在画布上显示属性信息343

7.4 不使用Audio标签播放声音346

7.4.1 使用JavaScript动态创建audio元素346

7.4.2 查找支持的音频格式347

7.4.3 播放声音348

7.4.4 不使用标签349

7.5 创建画布音频播放器352

7.5.1 在Canvas中创建自定义用户控件352

7.5.2 加载按钮资源353

7.5.3 设置音频播放器的值354

7.5.4 鼠标事件355

7.5.5 滑动播放指示器356

7.5.6 播放/暂停按钮:检测单击并获取位置357

7.5.7 循环/不循环切换按钮359

7.5.8 单击并拖动音量滑块360

7.6 音频案例:太空掠夺者游戏368

7.6.1 应用程序中不同的声音——事件声音369

7.6.2 迭代369

7.6.3 太空掠夺者游戏框架369

7.6.4 第一次迭代:使用单个对象播放声音378

7.6.5 第二次迭代:创建无限个动态声音对象378

7.6.6 第三次迭代:创建一个声音池380

7.6.7 第四次迭代:重用预加载的声音382

7.7 Web Audio API386

7.7.1 什么是Web Audio API386

7.7.2 使用Web Audio API开发太空掠夺者386

7.8 内容预告389

第8章 Canvas游戏(上)390

8.1 为什么用HTML5开发游戏390

8.1.1 Canvas与Flash比较390

8.1.2 Canvas提供的新特性391

8.2 游戏的基本HTML5文件391

8.3 游戏的设计393

8.4 游戏图形:使用路径绘制393

8.4.1 所需的资源393

8.4.2 使用路径绘制游戏的主角394

8.5 Canvas上的动画396

8.5.1 游戏定时器循环396

8.5.2 玩家飞船的状态变化397

8.6 对游戏图形应用形状变换399

Canvas的栈399

8.7 游戏图形变换401

8.7.1 使玩家飞船绕中心旋转401

8.7.2 使用Alpha通道实现飞船淡入403

8.8 游戏物体的物理算法和动画405

8.8.1 移动玩家飞船405

8.8.2 使用键盘控制玩家飞船407

8.8.3 设置玩家飞船的最大速度411

8.9 基本游戏框架412

8.9.1 游戏状态机412

8.9.2 更新/渲染的重复周期416

8.9.3 帧率计数器对象原型419

8.10 整合所有元素420

8.10.1 Geo Blaster游戏架构420

8.10.2 Geo Blaster全局游戏变量423

8.11 玩家对象424

8.12 Geo Blaster游戏的算法425

8.12.1 逻辑显示对象数组425

8.12.2 级别难度控制427

8.12.3 关卡和游戏结束427

8.12.4 奖励玩家另外的飞船429

8.12.5 应用碰撞检测429

8.13 GeoBlaster Basic的完整源代码431

8.14 陨石对象原型432

8.15 在网格上使用A算法查找最短路径434

8.15.1 什么是A算法434

8.15.2 在更大的地图上使用A440

8.15.3 可穿过对角线的A*寻路算法444

8.15.4 在带权值节点的地图里使用A*寻路算法448

8.15.5 带权值及穿越对角线功能的A*寻路算法452

8.15.6 让游戏角色顺着A最短路径移动459

8.15.7 坦克斜穿过墙壁463

8.16 内容预告472

第9章 Canvas游戏(下)474

9.1 扩展版的Geo Blaster474

9.1.1 Geo Blaster的图片表475

9.1.2 渲染其他游戏对象480

9.1.3 添加声音485

9.1.4 用对象池管理对象实例490

9.1.5 添加步长定时器492

9.2 在运行时创建动态的图片表494

9.3 简单的基于区块的游戏498

9.3.1 微型坦克迷宫的介绍499

9.3.2 游戏中用到的图片表500

9.3.3 游戏区域501

9.3.4 玩家502

9.3.5 敌人503

9.3.6 目标504

9.3.7 爆炸效果504

9.3.8 回合制游戏的流程和状态机504

9.3.9 简单区块移动逻辑概述508

9.3.10 渲染逻辑概述510

9.3.11 自定义简单人工智能概述511

9.3.12 微型坦克迷宫的完整游戏代码512

9.4 为基于区块的游戏世界添加滚动效果512

9.4.1 第一步:将用于绘制屏幕的区块放在一个图片表中513

9.4.2 第二步:用二维数组表示游戏世界513

9.4.3 第三步:将基于区块的世界绘制在画布上513

9.4.4 粗糙滚动与精确滚动514

9.4.5 camera对象514

9.4.6 world对象515

9.4.7 精确滚动时行和列的缓冲区515

9.4.8 粗糙滚动的完整代码示例521

9.4.9 精确滚动的完整代码示例525

9.5 内容预告530

第10章 在移动设备上开发531

10.1 第一个应用程序531

10.1.1 代码532

10.1.2 查看BSBingo.html的代码537

10.1.3 应用程序代码540

10.1.4 针对浏览器修改游戏541

10.1.5 在真实设备上测试游戏544

10.2 触屏版的Retro Blaster游戏546

10.3 将触屏版Retro Blaster移动化548

10.3.1 开发全屏游戏548

10.3.2 触摸移动事件550

10.3.3 触屏版Retro Blaster的完整代码555

10.4 超越Canvas555

10.5 内容预告555

第11章 进一步探索557

11.1 使用WebGL实现3D效果557

11.1.1 WebGL是什么557

11.1.2 测试WebGL558

11.1.3 学习更多WebGL的知识558

11.1.4 WebGL应用示例558

11.1.5 进一步探索WebGL564

11.1.6 WebGL的JavaScript类库564

11.2 使用ElectroServer 5实现多人应用程序566

11.2.1 安装ElectroServer566

11.2.2 套接字服务器程序的基础架构568

11.2.3 ElectroServer程序的基础架构569

11.2.4 使用ElectroServer创建聊天程序570

11.2.5 在Google Chrome中测试应用程序576

11.2.6 进一步探索ElectroServer577

11.2.7 这只是冰山一角579

11.3 为Canvas创建一个简单对象框架579

11.3.1 创建一个支持拖放的应用程序580

11.3.2 应用程序设计580

11.4 Windows 8应用与HTML5 Canvas592

11.5 HTML5.1与Canvas Level 2中有什么596

11.5.1 HTML5.1 Canvas Context596

11.5.2 Canvas Level2597

11.6 总结597

附录 完整代码列表599

热门推荐