<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style> *{ margin:0; padding:0;} body{ background:black;} #div1{ background:white; width:600px; margin:20px auto;} </style> <script> window.onload = function(){ var oC = document.getElementById(‘c1‘); var oGC = oC.getContext(‘2d‘);//绘制canvas的画板 var i = 0; oGC.beginPath(); //开始绘制路径 //弧度 = 角度 * Math.PI/180 oGC.arc(300,200,200,-90*Math.PI/180,180*Math.PI/180,false);//圆形坐标,半径,弧度, oGC.closePath();//结束绘制路径,起点终点相连接要写在stroke()之前。 oGC.stroke();//连线, oGC.beginPath(); oGC.arc(250,200,150,180*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(400,200,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); setInterval(function(){ oGC.clearRect(0,0,oC.width,oC.height);//清空画布 oGC.beginPath(); oGC.arc(i++,i++,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); },30); }; </script> </head> <body> <div id="div1"> <canvas id="c1" width="600" height="600"></canvas> </div> </body> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style> *{ margin:0; padding:0;} body{ background:black;} #div1{ background:white; width:600px; margin:20px auto;} </style> <script> window.onload = function(){ var oC = document.getElementById(‘c1‘); var oGC = oC.getContext(‘2d‘); var i = 0; /*oGC.beginPath(); //弧度 = 角度 * Math.PI/180 oGC.arc(300,200,200,-90*Math.PI/180,180*Math.PI/180,false); //oGC.closePath(); oGC.stroke(); oGC.beginPath(); oGC.arc(250,200,150,180*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(400,200,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke();*/ setInterval(function(){ oGC.clearRect(0,0,oC.width,oC.height); oGC.beginPath(); //弧度 = 角度 * Math.PI/180 oGC.arc(300,200,200,-90*Math.PI/180,180*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(250,200,150,180*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(400,200,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); for(var i=0;i<ball.length;i++){ oGC.beginPath(); oGC.moveTo(ball[i].x,ball[i].y); oGC.arc(ball[i].x,ball[i].y,20,0*Math.PI/180,360*Math.PI/180,false); oGC.fill(); } },1000/60); setInterval(function(){ for(var i=0;i<ball.length;i++){ ball[i].num++; ball[i].x = Math.sin(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startX; ball[i].y = ball[i].r - Math.cos(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startY; } },30); var ball = [];//定义数组 ball[0] = {//数组是对象json. x : 300, y : 0, r : 200, num : 0, startX : 300, startY : 0 }; }; </script> </head> <body> <div id="div1"> <canvas id="c1" width="600" height="600"></canvas> </div> </body> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style> *{ margin:0; padding:0;} body{ background:black;} #div1{ background:white; width:600px; margin:20px auto;} </style> <script> window.onload = function(){ var oC = document.getElementById(‘c1‘); var oGC = oC.getContext(‘2d‘); var i = 0; var yImg = new Image(); yImg.src = ‘person.png‘; yImg.onload = function(){ setInterval(function(){ oGC.clearRect(0,0,oC.width,oC.height); oGC.beginPath(); //弧度 = 角度 * Math.PI/180 oGC.arc(300,200,200,-90*Math.PI/180,180*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(250,200,150,180*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(400,200,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); /*for(var i=0;i<ball.length;i++){ oGC.beginPath(); oGC.moveTo(ball[i].x,ball[i].y); oGC.arc(ball[i].x,ball[i].y,20,0*Math.PI/180,360*Math.PI/180,false); oGC.fill(); }*/ oGC.save(); oGC.translate(300,200);//平移,save()是为了防止translate()有坐标的累加。 oGC.rotate(iRotate);//旋转,参数是弧度 oGC.translate(-40,-40); oGC.drawImage(yImg,0,0); oGC.restore(); },1000/60); /*setInterval(function(){ for(var i=0;i<ball.length;i++){ ball[i].num++; if( ball[i].num == 270 ){ ball[i].r = 150; ball[i].startX = 250; ball[i].startY = 50; } if( ball[i].num == 270 + 180 ){ alert(‘游戏结束‘); window.location.reload(); } ball[i].x = Math.sin(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startX; ball[i].y = ball[i].r - Math.cos(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startY; } },30);*/ var ball = []; setInterval(function(){ ball.push({ x : 300, y : 0, r : 200, num : 0, startX : 300, startY : 0 }); },350); var iRotate = 0; oC.onmousemove = function(ev){//弧度为鼠标的位置 var ev = ev || window.event; var x = ev.clientX - oC.offsetLeft; var y = ev.clientY - oC.offsetTop; var a = x - 300; var b = y - 200; var c = Math.sqrt(a*a + b*b); if(a>0 && b>0){ iRotate = Math.asin(b/c) + 90*Math.PI/180; } else if(a>0){ iRotate = Math.asin(a/c); } if(a<0 && b>0){ iRotate = -(Math.asin(b/c) + 90*Math.PI/180); } else if(a<0){ iRotate = Math.asin(a/c); } }; }; }; </script> </head> <body> <div id="div1"> <canvas id="c1" width="600" height="600"></canvas> </div> </body> </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style> *{ margin:0; padding:0;} body{ background:black;} #div1{ background:white; width:600px; margin:20px auto;} </style> <script> window.onload = function(){ var oC = document.getElementById(‘c1‘); var oGC = oC.getContext(‘2d‘); var i = 0; var yImg = new Image(); yImg.src = ‘person.png‘; yImg.onload = function(){ setInterval(function(){ oGC.clearRect(0,0,oC.width,oC.height); oGC.beginPath(); //弧度 = 角度 * Math.PI/180 oGC.arc(300,200,200,-90*Math.PI/180,180*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(250,200,150,180*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); oGC.beginPath(); oGC.arc(400,200,20,0*Math.PI/180,360*Math.PI/180,false); oGC.stroke(); for(var i=0;i<ball.length;i++){ oGC.beginPath(); oGC.moveTo(ball[i].x,ball[i].y); oGC.arc(ball[i].x,ball[i].y,20,0*Math.PI/180,360*Math.PI/180,false); oGC.fill(); } oGC.save(); oGC.translate(300,200); oGC.rotate(iRotate); oGC.translate(-40,-40); oGC.drawImage(yImg,0,0); oGC.restore(); for(var i=0;i<bullet.length;i++){ oGC.save(); oGC.fillStyle = ‘red‘; oGC.beginPath(); oGC.moveTo(bullet[i].x,bullet[i].y); oGC.arc(bullet[i].x,bullet[i].y,20,0*Math.PI/180,360*Math.PI/180,false); oGC.fill(); oGC.restore(); } oGC.save(); oGC.font = ‘60px impact‘; oGC.textBaseline = ‘top‘; oGC.fillStyle = ‘red‘; oGC.shadowOffsetX = 10; oGC.shadowOffsetY = 10; oGC.shadowColor = ‘green‘; oGC.shadowBlur = 5; var w = oGC.measureText(‘简易祖玛‘).width; var h = 60; oGC.fillText(‘简易祖玛‘, (oC.width - w)/2 , 450 ); oGC.restore(); },1000/60); setInterval(function(){ for(var i=0;i<ball.length;i++){ ball[i].num++; if( ball[i].num == 270 ){ ball[i].r = 150; ball[i].startX = 250; ball[i].startY = 50; } if( ball[i].num == 270 + 180 ){ alert(‘游戏结束‘); window.location.reload(); } ball[i].x = Math.sin(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startX; ball[i].y = ball[i].r - Math.cos(ball[i].num*Math.PI/180) * ball[i].r + ball[i].startY; } for(var i=0;i<bullet.length;i++){ bullet[i].x = bullet[i].x + bullet[i].sX; bullet[i].y = bullet[i].y + bullet[i].sY; } for(var i=0;i<bullet.length;i++){ for(var j=0;j<ball.length;j++){ if( pz(bullet[i].x,bullet[i].y,ball[j].x,ball[j].y) ){ bullet.splice(i,1);//删除 ball.splice(j,1); break; } } } },30); var ball = []; setInterval(function(){ ball.push({ x : 300, y : 0, r : 200, num : 0, startX : 300, startY : 0 }); },350); var iRotate = 0; oC.onmousemove = function(ev){ var ev = ev || window.event; var x = ev.clientX - oC.offsetLeft; var y = ev.clientY - oC.offsetTop; var a = x - 300; var b = y - 200; var c = Math.sqrt(a*a + b*b); if(a>0 && b>0){ iRotate = Math.asin(b/c) + 90*Math.PI/180; } else if(a>0){ iRotate = Math.asin(a/c); } if(a<0 && b>0){ iRotate = -(Math.asin(b/c) + 90*Math.PI/180); } else if(a<0){ iRotate = Math.asin(a/c); } }; var bullet = []; oC.onmousedown = function(ev){ var ev = ev || window.event; var x = ev.clientX - oC.offsetLeft; var y = ev.clientY - oC.offsetTop; var a = x - 300; var b = y - 200; var c = Math.sqrt(a*a + b*b); var speed = 5; var sX = speed * a/c; var sY = speed * b/c; bullet.push({ x : 300, y : 200, sX : sX, sY : sY }); }; }; function pz(x1,y1,x2,y2){ var a = x1 - x2; var b = y1 - y2; var c = Math.sqrt(a*a + b*b); if(c < 40){ return true; } else{ return false; } } }; </script> </head> <body> <div id="div1"> <canvas id="c1" width="600" height="600"></canvas> </div> </body> </html>
时间: 2024-10-19 02:08:33