canvas笔记

描   述

canvas标签用于绘制图像,但其本身并没有绘制能力,必须要使用脚本来完成实际的绘图任务。

路径方法

fill() 填充当前绘图路径

stroke()绘制已定义的路径

 beginPath()起始一条路径

moveTo()  把路径移动到画布中的指定点,不创建线条

lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条

例   子

手绘正方向形

 

 手绘三角形

 

 手绘圆形、半圆

圆形,弧,参数:中心点X,中心点Y,半径r,起始弧度和结束弧度,false顺时针,true逆时针

 

 文本属性、方法

font 设置或返回文本内容的当前字体属性

textAlign 设置或返回文本内容的当前对齐方式

textBaseline 设置或返回在绘制文本时使用的当前文本基线

fillText() 在画布上绘制“被填充的”文本

strokeText()在画布上绘制文本,无填充

例子

 

 图像绘制

drawImage()向画布上绘制图像、画布或视频

例子

 

 

属   性

fillStyle 设置或返回用于填充绘画的颜色、渐变或模式

strokeStyle 设置或返回用于笔触的颜色、渐变或模式

shadowColor 设置或返回用于阴影的颜色

shadowBlur 设置或返回用于阴影的模糊级别

shadowOffsetX  设置或返回阴影距形状的水平距离

shadowOffsetY  设置或返回阴影距形状的垂直距离

例子

 

 注  意

canvas在标签内设置width和height属性,不要在cssl里设置,如果css设置宽高,那么canvas中画出的图像可能变形

Canvas.getContext(contextID),参数 contextID 指定了您想要在画布上绘制的类型。当前唯一的合法值是 "2d",它指定了二维绘图,并且导致这个方法返回一个环境对象,该对象导出一个二维绘图 API。

 

canvas实例(贪吃蛇主要代码):

1、设置画布的线条,用for循环

 

 2、画画布上的食物和蛇

 

 

3、用定时器设置食物的生成和蛇的移动

setInterval(function () {
//吃了食物不删除
if(snake[0]==food){
//生成新食物
food=parseInt(Math.random()*400);

block(food,1);
}else{
//删除数组里最后一个值并将其颜色改回背景色
var a=snake.pop();
block(a,2);
}
//画蛇
drawSnack();
},400)
4、通过键盘事件控制direction
var direction=1;
document.onkeydown=function (event) {
//左上右下37,38,39,40
if(event.keyCode>=37&&event.keyCode<=40){
//左37上38右39下40

var direction1=[-1,-20,1,20][event.keyCode-37];
if(!(-direction1==direction)){
direction=direction1
}
}
}
5、判断是否撞墙、穿过身体

 


 

 6、判断通关

 

 

 


 

 

 

posted @ 2020-09-21 19:59  咩咩咩咩825  阅读(52)  评论(1编辑  收藏  举报