Canvas 核心技术
最近项目需求中要写较多H5小游戏,游戏本身体量不是很复杂,主要是承载较多业务逻辑,所以决定用canvas来完成游戏部分。之前只是知道H5中有canvas这个东西,也知道它大概是画图的,但具体怎么用,还是一无所知的。在MDN在看了一些相关资料,一口气也看了HTML 5 Canvas 核心技术和HTML5 2D 游戏编程核心技术,对canvas H5 游戏编程有了大致的了解,发现canvas游戏编程其实挺有趣的。目前也在学习webgl相关知识,打算把前端可视化这一块也深入学习。现在先记录一些自己认为canvas比较重要的知识,回顾和再学习。后续在记录webgl相关知识。
主要知识点
本系列主要深入学习canvas 2d编程中相关比较重要和基础的知识,算是对HTML 5 Canvas 核心技术这本书的读后感,大致知识点如下:
- 基础知识,学习如何绘制线段,图形,图片,文本等。
- 动画知识,学习如何用canvas实现简单的动画以及相关影响因素
- 碰撞检测,学习如何检测两个物体在运动过程中是否发生碰撞
- 2D游戏开发,学习用canvas开发2D游戏
- canvas相关小知识点
在学习过程中,最好是自己能动手实现,我就专门建了一个canvas demo的项目,里面都是自己在学习canvas时动手写的一些例子,感兴趣的可以去看看。
项目仓库地址:https://github.com/snayan/can...
demo预览地址:https://blog.snayan.com/canva...
我会按照上面的主要知识点,分篇幅来学习和回顾canvas 相关的核心技术。主要如下:
- canvas核心技术-如何绘制线段
- canvas核心技术-如何绘制图形
- canvas核心技术-如何图片和文本
- canvas核心技术-如何实现简单动画
- canvas核心技术-如何实现复杂动画
- canvas核心技术-如何实现碰撞检测
- canvas核心技术-如何实现一个简单的2D游戏引擎
- canvas核心技术-宽高,渐变,绘制真正1px线段
- canvas核心技术-向量,三角函数
本文转载于猿2048:Canvas 核心技术
Canvas 核心技术的更多相关文章
- HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版
<html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...
- HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版
HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...
- HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识
一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...
- Html5 Canvas核心技术(图形,动画,游戏开发)--基础知识
基础知识 canvas 元素可以说是HTML5元素中最强大的一个,他真正的能力是通过canvas的context对象表现出来的.该环境对象可以从canvas元素身上获得. <body> & ...
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf8
第6章 精灵 精灵(sprite),它是一种可以集成入动画之中的图像对象,赋予它们各种行为,精灵并非Canvas API的一部分,,但都是从它衍生而来 本章将会实现三种设计模式:策略模式(精灵与绘制器 ...
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf7
性能 运行putImageData()比drawImage()慢,同等条件下优先考虑drawImage() 操作图像数据需要遍历大量数据,应该注意几点: 1)避免在循环体中直接访问对象属性,应当保存在 ...
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf6
操作图像的像素:getImageData() putImageData() ImageData对象 调用getImageData()方法实际是获取了一个指向ImageData对象的引用,返回的对象包含 ...
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf5
文本的定位 水平与垂直定位:当使用strokeText()和fillText()绘制文本时,指定了所绘文本的X与Y坐标,还有textAlign与textBaseline两个属性 textAlign:s ...
- HTML5 Canvas核心技术—图形、动画与游戏开发.pdf4
CanvasRenderingContext2D对象中用于平移.旋转坐标系的方法 镜像 scale(1,-1)绘制垂直镜像:scale(-1,1)绘制水平镜像 自定义的坐标变换 transform() ...
随机推荐
- MySQL第四讲
昨日内容回顾 表与表之间建关系(外键) """ 表与表之间最多只有四种关系 一对多 多对多 一对一 没有关系 在确定表与表之间的关系的时候记住一句话 换位思考 " ...
- SoapUI软件-测试Web Service接口
一.新建项目 New SOAP Project Project Name填入项目名称:Initial WSDL中填入接口地址,或后缀为.wsdl的文件:OK: 添加后可在左侧看到接口详情: 二.测试接 ...
- CMAK(Kafka Manager)安装
CMAK 是管理Kafka集群的常用工具,之前的名字叫Kafka Manager.CMAK功能很强大,它可以管理多个Kafka集群,查看集群内部状态,如:topic.broker.consumer.p ...
- git常用命令及问题
Git基本操作 git init 创建新的git仓库 git clone [url] 使用 git clone 拷贝一个 Git 仓库到本地 git status 查看工作区 git stash li ...
- 微信小程序结合原生JS实现电商模板(二)
接 <微信小程序结合原生JS实现电商模板(一)>,在首页列表加入购物车到购物和模块增删数量,动态计算商品价格实现后,本次提交主要实现了商品详情(还不完善)简单页面,从商品详情页跳转到购物车 ...
- 17 数组 Arrays类
Arrays类 概念 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作 ...
- 免费云服务器-sanfengyun.com
找到了一个能提供免费云服务器的网站-sanfengyun.com,开通了一个免费云服务器,下载node,解压并安装,用npm装了vue-cli,初始化了一个vue项目,准备继续学习vue,加油.
- python+pytest接口自动化(9)-cookie绕过登录(保持登录状态)
在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证码会比较复杂,比如有些图形验证码,难以通过接口的方式去处理:再者,每次请求接口 ...
- Idea进行spring-boot-devtools热部署以及不生效的问题解决
实现的方式有两种: spring-boot-devtools spring Loaded 我在此只介绍spring-boot-devtools的使用方法: 1.在pom中直接引入依赖 <depe ...
- 时间模块 time 随机模块random os模块,sys模块
时间模块 time #时间模块 import time #三种格式 #时间戳时间:是一个浮点数,以秒为单位,计算机用语 #结构化时间 :是一个元组 #用于中间转换 #格式化时间:str数据类型, 用 ...