<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>鼠标demo</title>
</head>
<body>
<canvas id="canvas"></canvas>
<script type="text/javascript">
//设置画布
const canvas=document.getElementById("canvas");
const ctx=canvas.getContext('2d');
canvas.width=1900;
canvas.height=900;
canvas.style.backgroundColor = "#000";
let ballArr = [];
let colorArr = ['red', "blue", 'green'];
let mouseInCanvas = false;
let offsetX;//通过事件获取鼠标X
let offsetY;//通过事件获取鼠标Y
let r = 150;//球的半径
//小球类
class Ball{
constructor(x,y,color){
this.x=x;
this.y=y;
this.color=color;
this.r=r;
}
//绘制小球
render(){
ctx.save();
ctx.beginPath();
ctx.arc(this.x,this.y,this.r,0,Math.PI * 2);
ctx.fillStyle=this.color;
ctx.fill();
ctx.restore();
}
}
//会移动的小球类
class MoveBall extends Ball{
constructor(x,y,color){
super(x,y,color);
}
Update(){
this.x += this.dX;
this.y += this.dY;
this.r -= this.dR;
if (this.r < 0) {
this.r = 0;
}
}
}
//鼠标移动
canvas.addEventListener('mousemove',
function(e) {
mouseInCanvas = true;
offsetX = e.offsetX;
offsetY = e.offsetY;
});
//鼠标出画布
canvas.addEventListener('mouseout',
function(e) {
mouseInCanvas = false;
});
//鼠标进画布
canvas.addEventListener('mouseover',
function(e) {
mouseInCanvas = true;
});
setInterval(function () {
if (mouseInCanvas) {
//圆圈移动
ballArr.push(new MoveBall(offsetX, offsetY, colorArr[1]));
}
ctx.clearRect(0,0,canvas.width,canvas.height);
for (let i=0;i<ballArr.length;i++) {
ballArr[i].render();
ballArr[i].Update();
}
},50);
</script>
</body>
</html>
相关知识
unity 实现宠物跟随移动
宠物跟随效果
【M4求助】关于M4镜头跟随想求助一下各位老玩家们【模拟人生吧】
漂流瓶内和宠物互动玩法介绍
IntelliJ IDEA 必备插件之键盘流篇
鼠标手如何治疗
雷蛇鼠标怎么设置
用Python制作桌面宠物
HTML5期末大作业:环境保护网站设计——环境保护
宠物用品商店网站HTML5模板
网址: html5 canvas圆点跟随鼠标光标移动 https://m.mcbbbk.com/newsview455426.html
上一篇: 鼠标宠物跟随 |
下一篇: 天涯明月刀天刀宠物怎么放出来 |