通过循环不断使用 js 代码来改变元素的位置,样式,动画等
具备要素
- canvas 元素(画布):用于渲染游戏画面
- audio 元素(音频):用于添加音效和背景音乐
- image 元素(图像):用于加载游戏图像并在 canvas 中显示
- 浏览器中的计时函数和循环函数:用于实现动画
Canvas(关键)
- 步骤:开始路径 - 绘制路径 - 关闭路径 - 设置颜色 - 填充
API
方法 |
描述 |
fill() |
填充路径 |
stroke() |
描边 |
arc() |
创建圆弧 |
rect() |
创建矩形 |
fillRect() |
绘制矩形路径区域 |
strokeRect() |
绘制矩形路径描边 |
clearRect() |
在给定的矩形内清除指定的像素 |
arcTo() |
创建两切线之间的弧/曲线 |
beginPath() |
起始一条路径,或重置当前路径 |
moveTo() |
把路径移动到画布中的指定点,不创建线条 |
lineTo() |
添加一个新点,然后在画布中创建从该点到最后指定点的线条 |
closePath() |
创建从当前点回到起始点的路径 |
clip() |
从原始画布剪切任意形状和尺寸的区域 |
quadraticCurveTo() |
创建二次方贝塞尔曲线 |
bezierCurveTo() |
创建三次方贝塞尔曲线 |
isPointInPath() |
如果指定的点位于当前路径中,则返回 true,否则返回 false |
- context.arc(圆心 x 的坐标,圆心 y 的坐标, 半径, 起始角 sSingle,结束角 eSingle,false 顺时针 true 逆时针绘图)
改变样式
属性 |
描述 |
fillStyle |
设置或返回用于填充绘画的颜色、渐变或模式 |
strokeStyle |
设置或返回用于笔触的颜色、渐变或模式 |
shadowColor |
设置或返回用于阴影的颜色 |
shadowBlur |
设置或返回用于阴影的模糊级别 |
shadowOffsetX |
设置或返回阴影距形状的水平距离 |
shadowOffsetY |
设置或返回阴影距形状的垂直距离 |
直线添加样式
样式 |
描述 |
lineCap |
设置或返回线条的结束端点样式 |
lineJoin |
设置或返回两条线相交时,所创建的拐角类型 |
lineWidth |
设置或返回当前的线条宽度 |
miterLimit |
设置或返回最大斜接长度 |
设置渐变
方法 |
描述 |
createLinearGradient() |
创建线性渐变(用在画布内容上) |
createPattern() |
在指定的方向上重复指定的元素 |
createRadialGradient() |
创建放射状/环形的渐变(用在画布内容上) |
addColorStop() |
规定渐变对象中的颜色和停止位置 |
图形转换
方法 |
描述 |
scale() |
缩放当前绘图至更大或更小 |
rotate() |
旋转当前绘图 |
translate() |
重新映射画布上的 (0,0) 位置 |
transform() |
替换绘图的当前转换矩阵 |
setTransform() |
将当前转换重置为单位矩阵,然后运行 transform() |
图像绘制
- drawImage():向画布上绘制图像、画布或视频
- context.drawImage(img,sx?,sy?,swidth?,sheight?,x,y,width?,height?);
- img:规定要使用的图像、画布或视频
- sx:可选。开始剪切的 x 坐标位置
- sy:可选。开始剪切的 y 坐标位置
- swidth:可选。被剪切图像的宽度
- sheight:可选。被剪切图像的高度
- x:在画布上放置图像的 x 坐标位置
- y:在画布上放置图像的 y 坐标位置
- width:可选。要使用的图像的宽度(伸展或缩小图像)
- height:可选。要使用的图像的高度(伸展或缩小图像)