1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
<!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } body{ height: 100vh; } </style> </head>
<body> <canvas id="canvas"></canvas> </body>
</html> <script> const canvas = document.querySelector("#canvas"); const ctx = canvas.getContext('2d'); const windowWidth = document.documentElement.clientWidth; const windowHeight = document.documentElement.clientHeight; canvas.width = windowWidth; canvas.height = windowHeight; ctx.fillStyle = 'black'; ctx.fillRect(0, 0, windowWidth, windowHeight);
function createPositon(min, max) { return Math.floor(Math.random() * (max - min)) + min; }
class newDotInfo { constructor() { this.centerX = windowWidth / 2; this.centerY = windowHeight / 2; this.x = createPositon(0, windowWidth); this.y = createPositon(0,windowHeight); this.width = createPositon(2, 8); this.height = createPositon(2, 8); this.speed = Math.ceil(Math.random() * 2); this.xDirection = Math.random(); this.yDirection = Math.random();
} move() {
if (this.xDirection > 0.5) { this.x += this.speed;
}else if (this.xDirection <= 0.5) { this.x -= this.speed;
} if (this.yDirection > 0.5) { this.y += this.speed;
}else if (this.yDirection <= 0.5) { this.y -= this.speed;
}
ctx.fillStyle = 'white'; ctx.fillRect(this.x, this.y, this.width, this.height); } }
const arr = [];
function createDot() { ctx.fillStyle = 'black'; ctx.fillRect(0, 0, windowWidth, windowHeight); if(arr.length<100){ for (let j = 0; j < 5; j++) { arr.push(new newDotInfo()); } } console.log(arr.length); for (let i = 0; i < arr.length; i++) { arr[i].move(); if(arr[i].x>windowWidth || arr[i].x<0 || arr[i].y<0 || arr[i].y>windowHeight){ arr.splice(i,1); } } window.requestAnimationFrame(createDot); } createDot(); /* setInterval(() => { createDot(); }, 60); */ </script>
|