
《HTML5 Canvas核心技术:图形、动画与游戏开发》源代码
- 大小:17.4 MB
- 类型:游戏开发
- 格式:PDF
- 热度:631
- 作者:David、Geary
- 更新:2022-04-21 08:41:40

为网友们分享了游戏开发类书籍配套资源,介绍了关于HTML5、Canvas、游戏开发、游戏开发方面的内容,本书是由机械工业出版社出版,已被731人关注,由马寄波测试纠错,目前本书在游戏开发类综合评分为:8.7分。
全书共分9章,第1章介绍了canvas元素及如何在网络应用程序中使用它;第2章深入研究了如何使用Canvas的API进行绘制;第3章告诉读者如何绘制并操作canvas中的文本;第4章专门讲解图像、图像的操作及视频处理;第5章介绍如何实现平滑的动画效果;第6章讲解如何用JavaScript语言来实现精灵;第7章展示了如何在动画中模拟物理效果;第8章介绍了进行碰撞检测所用的技术;第9章以一个简单但是高效的游戏引擎开始,提供了游戏制作所需的全部支持功能;第10章讨论了实现定制控件的通用方法;第11章专门讲述如何实现基于Canvas的手机应用程序。
HTML5是一个富有活力的前沿领域,虽说早在2008年年初就发布了第1份草案,然而该标准的流行则是2010年之后的事情了。
HTML5技术的兴起有多方面的原因。其中比较重要的一点就是,1999年制定的HTML4.01标准在十几年后已经无法满足急速增长的网络开发需求了。与传统的“服务器-客户端”架构相比,越来越多的开发者开始选择以网页的形式来制作应用软件与游戏。这样做能够降低维护成本,将原来更新客户端所花的精力投入到网页程序的完善之上,以便更加及时地满足新出现的客户需求。如此一来,怎样弥补网页程序在图形绘制、设备底层功能调用、文件访问、影音播放等方面的劣势,就成为制定新标准时必须考虑的问题了。HTML5标准新增的各类API能够很好地应对这些状况。
此外,近年来日益兴起的移动开发也引发了人们对HTML5技术的关注。在传统的开发方式中,我们必须移植出版本繁多的客户端,以应对那些操作系统、屏幕大小、硬件配置各不相同的手机及平板电脑。如果我们将这种开发流程以HTML5应用的形式统一起来,那么就可以省去在各种设备之间进行移植所带来的问题。
不论是在传统的桌面操作系统之上,还是在新兴的移动设备之中,各大浏览器厂商都在努力适应新的HTML5标准,力求提供一套功能丰富而且外观统一的API。尽管HTML5标准仍在不停地更新之中,但是其基本开发思路已经受到众多开发者及用户的肯定。所以说,在HTML5标准最终定型之前,提前学习新标准,及早推出开发成本适中而且产品内容丰富的各类HTML5网络应用软件与游戏,不仅可以提高自身的技术能力,还可以把握软件市场的走向,总体来看,是一项明智的抉择。
网络应用开发是一项外延很广的领域,在企业级开发中,我们要学习各种服务器通信技术、软件架构及开发框架,而在另外一些实用软件及游戏的开发中,则又需要投入大量时间进行网页前端的美化。从开发者学习知识的角度看,如果将HTML、JavaScript、CSS等制作网络应用程序所需的技术分开研究,则难以把握它们之间的联系,本书的出现正好解决了这个问题。选择Canvas为切入点是恰到好处的,因为在各类网络应用软件与游戏中,都要或多或少地用到与绘制相关的功能。如果能够将网页开发常用的HTML、JavaScript、CSS等技术有机地结合起来,那么就可以充分地发挥Canvas在绘图方面的优势,制作出效果可与原生应用程序相媲美的产品来。
研究Canvas的另一个好处是,我们在学习它的同时,还能掌握与之相关的各项实用技术,诸如图形与曲线的编辑、文本的绘制与输入、图像滤镜,等等。在学习这些技术的过程中,读者将会逐步掌握如何通过JavaScript代码来动态地运用Canvas所提供的各项功能。本书后半部分集中讲解了Canvas的几项重要用途,包括动画与精灵、游戏物理学、碰撞检测、游戏开发,等等。借助一个精美的弹珠台游戏,作者将这些重要技术详细而深入地讲解了一番,学习这部分内容将有助于提高图形开发及游戏制作的水平。
全书最后不仅演示了如何实现圆角矩形、滚动条、滑动条及图像查看器等自定义控件,而且还教给大家实现这些自定义控件所遵循的流程,使我们能够用相似的办法实现一大批符合自己需求的新控件来。此外,作者还详细介绍了如何让开发出来的应用程序能够更好地运行于各类移动设备之上。
本书作者清晰而又透彻的行文风格,不仅把图形绘制、动画制作、游戏开发、自定义控件、移动开发等几项重要知识讲解得十分精彩,而且还启迪了我们的开发思路。读完全书之后,大家更需要思考如何利用JavaScript程序,将类似Canvas这样的新兴技术与传统的HTML、CSS结合起来,开发出更加丰富灵活的网络应用程序来。
在本书的翻译过程中,我得到了机械工业出版社华章公司各位编辑及工作人员的帮助,在此表示由衷的感谢。
本书由爱飞翔翻译,王鹏、舒亚林及张军也参与了部分翻译工作。译者非常愿意与诸位朋友通过微博(weibo.com/eastarlee)或电子邮件(eastarstormlee@gmail.com)探讨各类HTML5技术问题。由于水平有限,错误和不当之处在所难免,敬请广大读者批评指正。
封面图
目录
- 译者序
- 前言
- 第1章基础知识1
- 1.1canvas元素1
- 1.1.1canvas元素的大小与绘图表面的大小4
- 1.1.2canvas元素的API5
- 1.2Canvas的绘图环境6
- 1.2.12d绘图环境6
- 1.2.2Canvas状态的保存与恢复8
- 1.3本书程序清单的规范格式9
- 1.4开始学习HTML510
- 1.4.1规范10
- 1.4.2浏览器11
- 1.4.3控制台与调试器11
- 1.4.4性能13
- 1.5基本的绘制操作15
- 1.6事件处理18
- 1.6.1鼠标事件18
- 1.6.2键盘事件22
- 1.6.3触摸事件23
- 1.7绘制表面的保存与恢复23
- 1.8在Canvas中使用HTML元素25
- 1.9打印Canvas的内容32
- 1.10离屏canvas35
- 1.11基础数学知识简介37
- 1.11.1求解代数方程37
- 1.11.2三角函数38
- 1.11.3向量运算39
- 1.11.4根据计量单位来推导等式42
- 1.12总结44
- 第2章绘制45
- 2.1坐标系统46
- 2.2Canvas的绘制模型47
- 2.3矩形的绘制48
- 2.4颜色与透明度50
- 2.5渐变色与图案52
- 2.5.1渐变色52
- 2.5.2图案54
- 2.6阴影57
- 2.7路径、描边与填充60
- 2.7.1路径与子路径63
- 2.7.2剪纸效果64
- 2.8线段69
- 2.8.1线段与像素边界70
- 2.8.2网格的绘制71
- 2.8.3坐标轴的绘制72
- 2.8.4橡皮筋式的线条绘制74
- 2.8.5虚线的绘制79
- 2.8.6通过扩展CanvasRenderingContext2D来绘制虚线80
- 2.8.7线段端点与连接点的绘制81
- 2.9圆弧与圆形的绘制83
- 2.9.1arc()方法的用法83
- 2.9.2以橡皮筋式辅助线来协助用户画圆85
- 2.9.3arcTo()方法的用法86
- 2.9.4刻度仪表盘的绘制88
- 2.10贝塞尔曲线93
- 2.10.1二次方贝塞尔曲线93
- 2.10.2三次方贝塞尔曲线95
- 2.11多边形的绘制97
- 2.12高级路径操作102
- 2.12.1拖动多边形对象102
- 2.12.2编辑贝塞尔曲线107
- 2.12.3自动滚动网页,使某段路径所对应的元素显示在视窗中115
- 2.13坐标变换116
- 2.13.1坐标系的平移、缩放与旋转116
- 2.13.2自定义的坐标变换119
- 2.14图像合成123
- 2.15剪辑区域128
- 2.15.1通过剪辑区域来擦除图像128
- 2.15.2利用剪辑区域来制作伸缩式动画133
- 2.16总结135
- 第3章文本137
- 3.1文本的描边与填充137
- 3.2设置字型属性141
- 3.3文本的定位144
- 3.3.1水平与垂直定位144
- 3.3.2将文本居中146
- 3.3.3文本的度量147
- 3.3.4绘制坐标轴旁边的文本标签148
- 3.3.5绘制数值仪表盘周围的文本标签151
- 3.3.6在圆弧周围绘制文本152
- 3.4实现文本编辑控件154
- 3.4.1指示文本输入位置的光标154
- 3.4.2在Canvas中编辑文本159
- 3.4.3文本段的编辑163
- 3.5总结174
- 第4章图像与视频175
- 4.1图像的绘制176
- 4.1.1在Canvas之中绘制图像176
- 4.1.2drawImage()方法的用法177
- 4.2图像的缩放179
- 4.3将一个Canvas绘制到另一个Canvas之中183
- 4.4离屏canvas186
- 4.5操作图像的像素189
- 4.5.1获取图像数据189
- 4.5.2修改图像数据195
- 4.6结合剪辑区域来绘制图像208
- 4.7以图像制作动画211
- 4.8图像绘制的安全问题216
- 4.9性能216
- 4.9.1对比drawImage(HTMLImage)、drawImage(HTMLCanvas)与putImageData()的绘图效率217
- 4.9.2在Canvas中绘制另一个Canvas与绘制普通图像之间的对比;在绘制时缩放图像与保持原样之间的对比217
- 4.9.3遍历图像数据218
- 4.10放大镜222
- 4.10.1使用离屏canvas224
- 4.10.2接受用户从文件系统中拖放进来的图像225
- 4.11视频处理227
- 4.11.1视频格式227
- 4.11.2在Canvas中播放视频229
- 4.11.3视频处理230
- 4.12总结234
- 第5章动画235
- 5.1动画循环235
- 5.1.1通过requestAnimationFrame()方法让浏览器来自行决定帧速率237
- 5.1.2Internet Explorer浏览器对requestAnimationFrame()功能的实现241
- 5.1.3可移植于各浏览器平台的动画循环逻辑241
- 5.2帧速率的计算248
- 5.3以不同的帧速率来执行各种任务249
- 5.4恢复动画背景250
- 5.4.1利用剪辑区域来处理动画背景250
- 5.4.2利用图块复制技术来处理动画背景252
- 5.5利用双缓冲技术绘制动画253
- 5.6基于时间的运动254
- 5.7背景的滚动257
- 5.8视差动画261
- 5.9用户手势264
- 5.10定时动画266
- 5.10.1秒表266
- 5.10.2动画计时器269
- 5.11动画制作的最佳指导原则270
- 5.12总结271
- 第6章精灵272
- 6.1精灵概述273
- 6.2精灵绘制器275
- 6.2.1描边与填充绘制器275
- 6.2.2图像绘制器279
- 6.2.3精灵表绘制器281
- 6.3精灵对象的行为284
- 6.3.1将多个行为组合起来285
- 6.3.2限时触发的行为287
- 6.4精灵动画制作器289
- 6.5基于精灵的动画循环293
- 6.6总结294
- 第7章物理效果295
- 7.1重力295
- 7.1.1物体的下落296
- 7.1.2抛射体弹道运动298
- 7.1.3钟摆运动307
- 7.2时间轴扭曲311
- 7.3时间轴扭曲函数315
- 7.4时间轴扭曲运动317
- 7.4.1没有加速度的线性运动319
- 7.4.2逐渐加速的缓入运动320
- 7.4.3逐渐减速的缓出运动322
- 7.4.4缓入缓出运动323
- 7.4.5弹簧运动与弹跳运动324
- 7.5以扭曲后的帧速率播放动画326
- 7.6总结332
- 第8章碰撞检测333
- 8.1外接图形判别法333
- 8.1.1外接矩形判别法333
- 8.1.2外接圆判别法334
- 8.2碰到墙壁即被弹回的小球336
- 8.3光线投射法337
- 8.4分离轴定理(SAT)与最小平移向量(MTV)340
- 8.4.1使用分割轴定理检测碰撞340
- 8.4.2根据最小平移向量应对碰撞362
- 8.5总结373
- 第9章游戏开发374
- 9.1游戏引擎374
- 9.1.1游戏循环376
- 9.1.2加载图像382
- 9.1.3同时播放多个声音384
- 9.1.4键盘事件385
- 9.1.5高分榜386
- 9.1.6游戏引擎源代码387
- 9.2游戏原型395
- 9.2.1游戏原型程序的HTML代码396
- 9.2.2原型程序的游戏循环399
- 9.2.3游戏原型程序的加载画面400
- 9.2.4暂停画面402
- 9.2.5按键监听器404
- 9.2.6游戏结束及高分榜404
- 9.3弹珠台游戏407
- 9.3.1游戏循环弹珠408
- 9.3.2弹珠精灵410
- 9.3.3重力与摩擦力411
- 9.3.4弹板的移动412
- 9.3.5处理键盘事件413
- 9.3.6碰撞检测416
- 9.4总结425
- 第10章自定义控件 426
- 10.1圆角矩形控件427
- 10.2进度条控件433
- 10.3滑动条控件437
- 10.4图像查看器控件446
- 10.5总结454
- 第11章移动平台开发455
- 11.1移动设备的视窗456
- 11.2媒体特征查询技术461
- 11.2.1媒体特征查询与CSS461
- 11.2.2用JavaScript程序应对媒体特征的变化462
- 11.3触摸事件464
- 11.3.1TouchEvent对象464
- 11.3.2TouchList对象465
- 11.3.3Touch对象466
- 11.3.4同时支持触摸事件与鼠标事件466
- 11.3.5手指缩放468
- 11.4iOS5469
- 11.4.1应用程序图标及启动画面469
- 11.4.2利用媒体特征查询技术设置iOS5系统的应用程序图标及启动画面470
- 11.4.3以不带浏览器饰件的全屏模式运行应用程序471
- 11.4.4应用程序的状态栏471
- 11.5虚拟键盘472
- 11.6总结485
以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。
相关资源
-
《C++从入门到精通》教学视频,素材文件,结果文件
编辑推荐 *零基础、入门级的讲解n 无论读者是否从事计算机相关行业、是否接触过C++、是否使用C++开发过项目,都能从本书中有所收获。n *超多、实用、专业的范例和项目n 本书结合实际工作中的范例,逐一讲解C++的各种知识和技术。以实际开发项目来总结本书所讲内容,帮助读者在实战中掌握知识,轻松拥有项目经验。n *随时检测自己的学习成果n 每章首页都给出了本章要点,以便读者明确学习方向。每章的综合案例根据所在章的知识点精心设计而成
大小:1.1 GBC++配套资源
-
《程序员必会的40种算法》源码,配图
本书致力于利用算法求解实际问题。第1部分介绍算法的核心内容,探讨什么是算法、如何设计算法,同时学习在算法中使用的数据结构。重点讲解排序算法、查找算法和求解图问题的算法。第二部分讨论各种机器学习算法,包括无监督机器学习算法和传统有监督学习算法,详细讨论一些自然语言处理算法和推荐引擎。第三部分讨论更高级的算法概念,重点介绍了密码算法和大规模算法。本书还包含一些案例分析(如天气预测、推文聚类和电影推荐引擎)
大小:467 MB算法配套资源
-
汇编语言教程大全合集
汇编语言是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。汇编语言用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用ADD代表数字逻辑上的加减, MOV代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。但计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成
大小:1.37 MB汇编语言
-
《模具CAD/CAM技术应用》教学大纲
内容简介 《模具CAD/CAM技术应用》以企业实际应用性项目为主线,介绍了综合应用Pro/E、UGNX、PowerMILL、Cimatron、MasterCAM及AutoCAD等计算机辅助设计与制造软件进行模具设计与制造的方法和技巧。《模具CAD/CAM技术应用》共有6个应用项目实例,包括瓶启冲压模具CAD/CAM、水杯注塑模具CAD/CAM、眼镜盒注塑模具CAD/CAM、放大镜注塑模具CAD/CAM、水管直角三通注塑模具CAD/CAM与手机壳注塑模具CAD/CAM等。 《模具CAD/CAM技术应用》既可
大小:43.64 KB模具配套资源
-
《Python高级编程(第2版)》配套彩图
编辑推荐 Python是一门动态编程语言,它简单而又强大,适用于众多领域。尽管编写Python代码比较容易,但是编写高效且易于维护和复用的代码是一个挑战。本书的重点是让你熟悉zui佳实践、有用的工具以及标准,这都是Python专业人士每天使用的。首先,你将了解Python 3.5中新增加的功能以及可以提高生产力的快速技巧。接下来,你将学习使用这个新版本中的高-级且有用的Python语法元素,以及实现元编程的不同方法。本书讲解了代码管理工具、编写清晰文
大小:2.1 MBPython编程配套资源
-
简单粗暴上手TensorFlow2.0
这是一本简明的 TensorFlow 2 入门指导手册,基于 Keras 和即时执行模式(Eager Execution),力图让具备一定机器学习及 Python 基础的开发者们快速上手 TensorFlow 2。 本手册的所有代码基于 TensorFlow 2.1 和 2.0 正式版。 中文指南:https://tf.wiki/ GitHub链接: https://github.com/snowkylin/tensorflow-handbook 文中的所有示例代码: https://github.com
大小:8.84 MBTensorflow
-
零基础python入门(含课件代码)
本资源是《 零基础python入门 》课程的附带课件,包含PPT讲义和课程代码。是零基础python学习者的福音,手把手教你如何学好python,需要的朋友可下载试试! 目录 第一章:课程介绍及python发展方向 第二章:程序设计与python语言 第三章:案例1 -- 汇率兑换 第四章:案例2 -- 分形树的绘制 第五章:案例3 -- 基础代谢率(BMR)计算 第六章:案例4 -- 52周存钱挑战 第七章:案例5 -- 判断第几天 第八章:案例6 -- 判断密码强弱 第九章:案例7 -- 模拟掷骰子
大小:61 MBpython
-
NutUI v2.3 组件库教程
NutUI是一套京东风格的 Vue2 移动端组件库,开发和服务于移动Web界面的企业级产品。 目录 指南 布局组件 操作反馈 基础组件 导航组件 数据录入 数据展示 业务组件
大小:4.06 MBNutUI教程
下载地址
相关声明: