小教程:HTML5画布Canvas绘制生成各种粒子物理动态效果
目录:
1. 绘制静态粒子图形效果
2. 添加静态粒子动画效果
3. 添加粒子碰撞动画效果
4. 添加粒子四面碰撞效果
基础要求:
1. 了解基础HTML标签,例如canvas标签
2. 了解Javascript的基础知识
第一步: 生成静态粒子图形
生成静态粒子图形,我们将会使用到Canvas的如下相关方法:
- context.fillRect(x, y, width, height);
- context.arc(x, y, r, sAngle, eAngle, counterclockwise);
其中,使用fillRect方法生成了整个动画场景,布满了画布全部区域,再使用arc方法来生成一个圆形,arc方法本身用来生成圆弧,但是如果生成一个360度的圆弧的话,就自然生成了圆形,完整代码如下:
var canvas = document.getElementById('gbcanvas'),
context = canvas.getContext('2d');
var posX = 30, //定义圆心X坐标
posY = 30, //定义圆心Y坐标
particleRadius = 30; //定义半径
context.fillStyle = '#E4E4E4';
context.fillRect(0,0,canvas.width,canvas.height); //生成画布背景色
context.beginPath();
context.fillStyle = '#dd4814';
context.arc(posX, posY, particleRadius, 0 , Math.PI*2, true);
context.closePath();
context.fill();在线演示&调试地址
第二步: 生成粒子运行效果
动画效果原理:
HTML5 画布动画生成原理,本质来说实现方式就是每隔固定时间段重新绘制画布内的图形,如下是代码:
var canvas = document.getElementById('gbcanvas'),
context = canvas.getContext('2d'),
posX = 30,
posY = 30,
particleRadius = 30;
//定义setInterval来隔特定时间生成粒子,如下
setInterval(function(){
//为了能够生成粒子移动效果,我们需要在每次绘制粒子之前清楚界面里的绘图
context.fillStyle = '#E4E4E4';
context.fillRect(0,0,canvas.width,canvas.height); //使用背景色填充
posX+=2;
posY+=1;
context.beginPath();
context.fillStyle = '#dd4814';
context.arc(posX, posY, particleRadius, 0, Math.PI*2, true);
context.closePath();
context.fill();
}, 10);以上代码我们使用fillRect方法来先将整个背景色重新填充,再使用arc方法重新绘制圆形,来生成移动的效果
在线演示&调试地址
具体教程点这里呀:http://igeekbar.com/igeekbar/post/172.htm
相关推荐
jinxiutong 2020-05-10
MIKUScallion 2020-02-22
songfens 2020-01-10
大地飞鸿 2020-11-12
星星有所不知 2020-10-12
jinxiutong 2020-07-26
MIKUScallion 2020-07-05
songfens 2020-07-05
songfens 2020-06-11
songfens 2020-06-08
northwindx 2020-05-31
northwindx 2020-05-31
northwindx 2020-05-27
northwindx 2020-05-25
MIKUScallion 2020-05-25
xdyangxiaoromg 2020-05-10
大地飞鸿 2020-05-06