利用canvas画布制作小球弹跳动画

xiaoxiao2021-02-27  186

制作的主要思路是:每隔1秒,重新在画布上画小球,当然画之前需要重新定位小球的圆心。 还有一个问题,那就是画之前,前一个圆需要清除,所以我在这里,重新将背景画了一遍, 覆盖了原先的背景。以下是具体的代码。 1.这是html页面的内容 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>制作一个小球弹跳的动画</title> <style type="text/css"> canvas{ border:1px solid blue; } </style> </head> <body> <div> <canvas id="canvas1" width="500" height="300"></canvas> </div> </body> </html> 2.javascript的内容(可以直接写在html页面中,也可以单独定义一个js文件,然后在引入) function draw20(id) { //获取canvas的上下文 var canvas = document.getElementById(id); if (canvas == null){ return false }; var context = canvas.getContext("2d"); //调用定时函数 var interal = setInterval(function () { move(context)}, 4); } var x = 100;//圆形开始X坐标 var y = 100;//圆形开始Y坐标 //小球的移动方向 var mx = 0;//0右 1左 var my = 0; //0下 1上 var mmx = 1;//每次x轴移动的长度 var mmy = 1;//每次y轴移动的长度 var radius = 5;//圆形的半径 var cw = 500;//canvas宽度 var ch = 300; //canvas高度 function move(context) { //这个是设置背景 context.fillStyle = "#EEEEFF"; context.fillRect(0, 0, 500, 300); //这个是设置小球 context.beginPath();//设置开始路径 context.fillStyle = "red";//设置填充颜色 context.arc(x,y,radius,0,Math.PI*2,true);//画路径 context.closePath();//关闭路径 context.fill();//填充圆形 //判断移动的方向 if(x+radius>=cw){//到达最右边 mx = 1;//左移 mmx = -1; } if(x<=radius){//到达最左边 mx = 0;//右移 mmx = 1; } if(y+radius>=ch){//到达最下边 my = 1;//上移 mmy = -1; } if(y <= radius){ my = 0; mmy = 1; } x= x+mmx; y = y+mmy; } draw20("canvas1");
转载请注明原文地址: https://www.6miu.com/read-13521.html

最新回复(0)