HTML5 canvas开发详解(第2版)(异步图书出品) PDF下载 公众号 其他格式

手机扫码免费下载

纠错留言

#电子书截图

HTML5 canvas开发详解(第2版)(异步图书出品)截图

#电子书简介

Steve Fulton和Jeff Fulton各自在交互式娱乐开发领域均有16年以上的工作经验。Steve是Matel Toys公司数字游戏软件开发部的高级经理。Jeff是Producto工作室的CTO。他们两人还培养了一大批忠实粉丝,他们在8bitrocket.com上了解有关Flash、Sliverlight以及HTML5 Canvas的新闻、故事、博客和教程。
第1章HTML5 Canvas简介1
1.1什么是HTML52
1.2基础的HTML5页面36
1.4文档对象模型(DOM)和Canvas7
1.5JavaScript和Canvas7
JavaScript放置的位置及其理由7
1.6HTML5 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.5drawScreen()函数12
1.7用console.log调试15
1.82D环境及其当前状态16
1.9HTML5 Canvas对象17
1.10第二个示例:猜字母18
1.10.1游戏如何工作18
1.10.2“猜字母”游戏的变量18
1.10.3initGame()函数19
1.10.4eventKeyPressed()函数20
1.10.5drawScreen()函数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.7HTML5 Canvas实现无障碍访问:子dom29
1.12内容预告31
第2章在Canvas上绘图32
2.1本章基本文件设置32
2.2基本矩形33
2.3Canvas状态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.3Canvas裁切区域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.3HTML表单和画布之间的通信72
3.1.4使用measureText72
3.1.5fillText和strokeText74
3.2设置文本字体77
3.2.1字体大小、磅重和样式基础77
3.2.2在文本编辑器中处理字体大小和外观77
3.2.3字体颜色82
3.2.4字体基线和对齐84
3.2.5Text 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.3Canvas对象的toDataURL()方法100
3.6最终版的Text Arranger102
3.7渐变动画112
3.8Canvas里文本的未来115
3.8.1CSS文本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.33次贝赛尔曲线运动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.6Box2D和画布247
5.6.1下载Box2dWeb247
5.6.2Box2D的工作原理248
5.6.3Box2D的Hello World248
5.6.4引入框架库248
5.6.5创建Box2dWeb世界249
5.6.6Box2dWeb中的单位249
5.6.7在Box2D中定义墙250
5.6.8创建小球251
5.6.9b2debugDraw渲染与Canvas渲染的对比252
5.6.10drawScreen()函数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.1HTML5中对视频的支持268
6.1.1Theora + Vorbis = .ogg268
6.1.2H.264 + $$$ = .mp4269
6.1.3VP8 + Vorbis = .webm269
6.1.4结合3种视频格式270
6.2转换视频格式270
6.3HTML5视频的基本实现方法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.2HTML5的视频属性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标签337
7.2音频格式338
7.2.1支持的音频格式338
7.2.2音频转换工具Audacity338
7.2.3示例:使用所有3种音频格式339
7.3Audio标签的属性、函数和事件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.7Web 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.1Canvas与Flash比较390
8.1.2Canvas提供的新特性391
8.2游戏的基本HTML5文件391
8.3游戏的设计393
8.4游戏图形:使用路径绘制393
8.4.1所需的资源393
8.4.2使用路径绘制游戏的主角394
8.5Canvas上的动画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.1Geo Blaster游戏架构420
8.10.2Geo Blaster全局游戏变量423
8.11玩家对象424
8.12Geo Blaster游戏的算法425
8.12.1逻辑显示对象数组425
8.12.2级别难度控制427
8.12.3关卡和游戏结束427
8.12.4奖励玩家另外的飞船429
8.12.5应用碰撞检测429
8.13Geo Blaster Basic的完整源代码431
8.14陨石对象原型432
8.15在网格上使用A*算法查找最短路径434
8.15.1什么是A*算法434
8.15.2在更大的地图上使用A*440
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.1Geo 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.5camera对象514
9.4.6world对象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.1WebGL是什么557
11.1.2测试WebGL558
11.1.3学习更多WebGL的知识558
11.1.4WebGL应用示例558
11.1.5进一步探索WebGL564
11.1.6WebGL的JavaScript类库564
11.2使用ElectroServer 5实现多人应用程序566
11.2.1安装ElectroServer566
11.2.2套接字服务器程序的基础架构568
11.2.3ElectroServer程序的基础架构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.4Windows 8应用与HTML5 Canvas592
11.5HTML5.1与Canvas Level 2中有什么596
11.5.1HTML5.1 Canvas Context596
11.5.2Canvas Level2597
11.6总结597

附录完整代码列表59
《HTML5 canvas开发详解(第2版)》是HTML5 Canvas的畅销图书,在上一版的基础之上,针对Canvas和HTML5技术的全新变动进行了更新。《HTML5 canvas开发详解(第2版)》通过讲解如何开发交互式多媒体应用,引导读者学习HTML5 Canvas,其内容包括HTML5 Canvas简介、在Canvas上绘图、Canvas的文本API、Canvas图像、Canvas中的数学、物理知识以及由其实现的动画效果、整合操作视频和音频、使用位图和tile表格开发游戏、开发Web应用,以及WebGL和ElectroServer5的使用等内容。
《HTML5 canvas开发详解(第2版)》包含了大量清晰、可重用的代码示例,适合各个层级的Web开发人员阅读,而且无论他们当前使用的是Flash、Silverlight,还是HTML与JavaScript,都可以通过本书迅速掌握HTML5 Canvas。
  • 评论列表(0

留言评论