赠书:HTML5 Canvas 2d 编程必读的两本经典

这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide(斧子演示,www.axeslide.com)。在这个领域也积累了一些 经验,希望有机会和大家分享。今天是要给大家推荐两本这方面的书,同时会送一本书给大家。


要介绍的第一本书是我学习Canvas开发的入门书——《HTML5 Canvas核心技术:图形、动画与游戏开发》。 此书作者David Geary,中文版译者为爱飞翔,由机械工业出版社出版。

我相信这本书,不仅是我个人,很多学习Html5 Canvas开发的同学都是把它当做案头必备。 这本书是HTML5 Canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的经典、五星级畅销书、资深技术专家David Geary力作。它不仅全面讲解了canvas元素的API,以及如何利用Canvas进行图形绘制、动画制作、物理效果模拟、碰撞检测、游戏开发、移动应用开发,还包含大量实例,可操作性极强。 我们在开发斧子演示的时候,从基本的绘图,图片,视频,音频处理,到动画、文本处理, 所有核心开发内容都能从这本书中获取知识和灵感。 

《HTML5 Canvas核心技术:图形、动画与游戏开发》共分11章。第1章介绍了canvas元素及如何在网络应用程序中使用它;第2章深入研究了如何使用Canvas的API进行绘制;第3章告诉读者如何绘制并操作Canvas中的文本;第4章专门讲解图像、图像的操作及视频处理;第5章介绍如何实现平滑的动画效果;第6章讲解如何用JavaScript语言来实现精灵;第7章展示了如何在动画中模拟物理效果;第8章介绍了进行碰撞检测所用的技术;第9章以一个简单但是高效的游戏引擎开始,提供了游戏制作所需的全部支持功能;第10章讨论了实现自定义控件的通用方法;第11章专门讲述如何实现基于Canvas的手机应用程序。


上面的书已经成为经典,接下来的这本,即将成为经典。同样是大牛David Geary的力作——《HTML5 2D游戏编程核心技术》。

此书由机械工业出版社出版,目前你在网上和实体书店还买不到这本书,不过我已经提前拿到了,并且仔细 阅读了几天。

相对于上一本书,此书可作为Html5 Canvas编程的进阶书来读,同时可以作为HTML5游戏编程 的入门宝典来长期翻阅。

大师与普通人的区别,不仅仅在于能力的高低,更重要的是能把知识讲明白,真正做到传道、 授业、解惑。 这本书做到了。

本书是为希望使用HTML5进行2D游戏开发,且具备一定JavaScript编程经验的开发人员而准备的。在本书中,笔者从零开始完整讲解了一个复杂的横向卷轴平台视频游戏的开发过程,并将该视频游戏命名为“Snail Bait”。在开发过程中,笔者没有使用任何第三方图形框架或游戏框架,因此读者将从本书中学会以编程方式实现平滑动画、sprite爆炸、开发人员后门程序、游戏难易度设计等所有内容。如果读者正在使用某个游戏框架开发游戏,那么本书对于帮助读者理解游戏框架内部的工作原理也同样大有裨益。

 出于教学目的,Snail Bait游戏仅实现了一个关卡,然而它却具备了街机风格游戏的全部特点。Snail Bait游戏在滚动的背景上同时操作多个动画对象,即sprite对象,在播放游戏背景音乐的同时添加多种音频效果。sprite对象具备多种行为,包括但不限于跑动、跳跃、飞行、闪光、弹跳、来回移动、爆炸、碰撞、平台着陆、从游戏画面底部跌落等。

另外,Snail Bait游戏还实现了多个特色功能。例如,一个可以减慢或加快游戏整体速度的时间系统;游戏加载过程动画;当游戏主角失去生命时,震动游戏画面的特殊效果;模拟烟雾和燃烧的粒子系统等。当游戏窗口失去焦点时,Snail Bait游戏会暂停运行,而当游戏窗口重新获得焦点时,Snail Bait游戏会以一个倒计时动画作为开始,以便玩家有时间来恢复对游戏的控制。

虽然没有使用游戏框架或图形框架,但是Snail Bait游戏使用Node.js和socket.io技术实现了将游戏中的一些指标数据发送到服务器端、高分存储和检索,并在游戏窗口顶部显示高分榜等功能。当游戏运行缓慢时,Snail Bait游戏还将显示警告信息。而当按下“Ctrl+D”组合键启动游戏时,Snail Bait游戏将启动开发人员后门程序,从而赋予操作人员特殊权限,例如修改时间轴的流动,或者显示sprite对象碰撞检测矩形以及其他功能等。

当Snail Bait游戏检测到自己运行在移动设备上时,将通过调用触摸事件处理句柄、调整游戏窗口大小来重新配置自身,以便适应移动设备的屏幕大小及控制方式。

游戏编程一直以来是我练习编程技能的最佳训练方法。因为哪怕一个小小的游戏,你也要考虑 程序的架构,考虑分层和解耦,考虑消息传递,考虑绘图,考虑动画,考虑网络,考虑性能, 考虑交互,多媒体处理,多线程等等。游戏编程,往往需要我们在某一方面做到极致,对编程者 的磨练是相当大的。从一个小游戏的编写中,我们能系统学习很多知识和技巧。

以上是我极力推荐此书的原因,此书不难,只要你用心,都能看懂,而且作者还配备了视频教程。 更主要的原因是作者写的足够好!


两本经典,各一本送给大家,每人只能得其中一本。参与方式如下:

0. 微信扫描关注 玄魂工作室 (xuanhun521)

1.如果你可以写出HTML5 Canvas 相关的优秀文章,请在微信订阅号本文下面留言投稿给我。如果你的稿件被采纳,我会立即送书一本。

2.随机打赏,并在此文章下留言。我会随机抽取幸运者。


机械工业出版社华章图书在赠书给玄魂工作室的读者之外,还给了我全网最低价的购书优惠, 大家通过我可以以 75折+5元邮费的方式买到这两本书。如果你想购买,直接文章下留言就好。 这是我个人独享的优惠,没有任何中间利润,如果你有更便宜的方式买,也请推荐给我,但不要说三道四,无中生有。

两本书的定价均为 人民币99元。


赠书:HTML5 Canvas 2d 编程必读的两本经典的更多相关文章

  1. HTML5 Canvas 2D library All In One

    HTML5 Canvas 2D library All In One https://github.com/search?q=Javascript+Canvas+Library https://git ...

  2. HTML5 Canvas 2D绘图

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4851774. ...

  3. 开源HTML5 Canvas游戏Runtime发布

    Cantk-Runtime是通用的HTML5 Canvas 2D游戏引擎运行库,让HTML5游戏的性能飞起来.Cantk-Runtime以PhoneGap插件的方式提供,从此结束PhoneGap低性能 ...

  4. HTML5 Canvas绚丽的小球详解

    实例说明: 实例使用HTML5+CSS+JavaScript实现小球的运动效果 掌握Canvas的基本用法 技术要点: 从需求出发 分析Demo要实现的功能 擅于使用HTML5 Canvas 参考手册 ...

  5. HTML5 Canvas(画布)实战编程初级篇:基本介绍和基础画布元素

    欢迎大家阅读HTML5 Canvas(画布)实战编程初级篇系列,在这个系列中,我们将介绍最简单的HTML5画布编程.包括: 画布元素 绘制直线 绘制曲线 绘制路径 绘制图形 绘制颜色,渐变和图案 绘制 ...

  6. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  7. 使用 HTML5 canvas 绘制精美的图形

    HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C “工作草案” — 意味着它仍然处于开发阶段 — 它包含丰富的元素和属性,它们都支持现行的 HT ...

  8. html5 Canvas API

    详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...

  9. HTML5 Canvas 概述

    本文中,我们将探索如何使用HTML5的Canvas API.Canvas API很酷,我们可以通过它来动态创建生成和展示图形,图表,图像以及动画.本文将使用渲染API(rendering API)的基 ...

随机推荐

  1. 【每日一linux命令4】常用参数:

     下面所列的是常见的参数(选项)义: --help,-h                              显示帮助信息 --version,-V                        ...

  2. Windows平台分布式架构实践 - 负载均衡

    概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...

  3. ASP.Net MVC——使用 ITextSharp 完美解决HTML转PDF(中文也可以)

    前言: 最近在做老师交代的一个在线写实验报告的小项目中,有这么个需求:把学生提交的实验报告(HTML形式)直接转成PDF,方便下载和打印. 以前都是直接用rdlc报表实现的,可这次牵扯到图片,并且更为 ...

  4. PAT练习题目录

    点题号就能查看题解了,另外代码也放在了开源中国码云上: 甲级:代码集合:https://git.oschina.net/firstmiki/PAT-Advanced-Level-Practise 10 ...

  5. Java实现FTP文件与文件夹的上传和下载

    Java实现FTP文件与文件夹的上传和下载 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制 ...

  6. Atitit.软件开发的三层结构isv金字塔模型

    Atitit.软件开发的三层结构isv金字塔模型 第一层,Implements 层,着重与功能的实现.. 第二次,spec层,理论层,设计规范,接口,等.流程.方法论 顶层,val层,价值观层,原则, ...

  7. 用C++实现Linux中shell的ls功能

    实现输出当前目录下的文件名 ls功能: 方法一: #include <iostream> #include <algorithm> #include <stdio.h&g ...

  8. 使用PushSharp给iOS应用推送消息

    PushSharp是一个C#编写的服务端类库,用于推送消息到各种客户端,支持iOS(iPhone/iPad).Android.Windows Phone.Windows 8.Amazo.Blackbe ...

  9. 在Ubuntu中搭建.NET开发环境

    Mono简介Mono是Xamarin公司C#和CLR的ECMA标准基于开发的一个开源的.NET实现版本,它是Linux平台上开发.NET应用程序首选.同时其也提供了Xamarin.IOS和Xamari ...

  10. Xamarin.Android之Fragment Walkthrough

    利用Fragment设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上显示的结果: 笔者要郑重声明下,虽然看似是两种不同的显示效果,但是同一个应 ...