お世話になっております。HTML5 Canvasを使用しマウスの動きに追従する縁を作成中です。その円がマウスの位置からからずれてしまっているので正しく動くようアドバイス頂けたら嬉しいです。
マウス追従の円以外にも別の円を作りたいため、クラスを使っております。
よろしくお願い致します。
JavaScript
1const canvas = document.getElementById("canvas"); 2const c = canvas.getContext("2d"); 3 4let Circle = function(x, y, radius){ 5 this.x = x; 6 this.y = y; 7 this.radius = radius; 8 9 this.update = function(){ 10 c.beginPath(); 11 c.arc(this.x, this.y, 10, Math.PI * 2, false); 12 c.fillStyle = "red"; 13 c.fill(); 14 c.stroke(); 15 }; 16}; 17 18let mouse = { 19 x: undefined, 20 y: undefined 21}; 22 23canvas.addEventListener("mousemove", function(event){ 24 let canvasRect = canvas.getBoundingClientRect(); 25 mouse.x = event.clientX; 26 Mouse.y = event.clientY; 27}); 28 29function init(){ 30 let circle1 = new Circle(undefined, undefined, 10); 31} 32 33function update(){ 34 circle1.moveTo(mouse.x, mouse.y); 35 window.setTimeout(update, 10); 36} 37 38function animate(){ 39 requestAnimationFrame(animate); 40 c.clearRect(0, 0, canvas.width, canvas.height); 41 circle1.x = mouse.x; 42 circle1.y = mouse.y; 43 circle.update(); 44} 45 46init(); 47animate();