私はAgar.ioクローンを作ろうとしていて、マウスの動きが出るまではすべてうまくいっていました。ドキュメントにマウスの移動イベントを追加し、マウスが動いているときに円がマウスに向かって移動するだけで、マウスが動いて停止しているときに動かしたいと思っています。私はマウスの動きで使用しようとしましたが、何もしないようです。 JavaScriptの処理では、いつでもマウスの座標にアクセスできますが、JavaScriptではこれを行うことはできません。マウスポインターを常に追従させる方法が不思議でした。ここでイベントリスナーを使用してマウスポインタを永久に追い続けていく方法は?
は、マウスのための私のコードの一部である:ここで
document.addEventListener("mousemove", m);
function m(e) {
let mouseX=e.clientX;
let mouseY=e.clientY
mouseX-=player.pos.x;
mouseY-=player.pos.y;
let mouse=Math.atan2(mouseX, mouseY);
player.pos.x+=Math.sin(mouse)/0.3;
player.pos.y+=Math.cos(mouse)/0.3;
if (player.pos.x > 0 && player.pos.x < 900) {
ctx.translate(-Math.sin(mouse)/0.3, 0);
}
if (player.pos.y > 0 && player.pos.y < 900) {
ctx.translate(0, -Math.cos(mouse)/0.3)
}
}
私のバイオリンです:おそらくhttps://jsfiddle.net/doss2ecd/1/
カーソルが停止すると、最後の座標がそのまま適用されます。その場合、mouseX/mouseYをより高いスコープに格納するだけです。 残りのゲームの移動の計算は、イベント自体ではなく、「ゲームルップ」に追加する必要があります。 –
ゲーム内のAgar.ioゲームの通知と同様の動作にしたい場合は、サークルは実際には決して動いていません。サークルは常に画面の中央にとどまりながら移動するのは、その周りのすべての「世界」です。サークルが実際に動いていて、「世界」が静的だった場合、サークルは画面の境界から非常に速くなります... –