1

<canvas>jQuery と要素を使用してブレイクアウト ゲームを構築しています。パドルを制御するには、マウスに従います。drawPaddle()したがって、メソッドでマウス座標を取得する必要があります。

jQuery サイトを見ると、次のような例があります。

$(document).mousemove(function(e){
    $('#status').html(e.pageX +', '+ e.pageY);
});

これは私が望むことですが、このようなプロジェクトに別の機能を追加したくありません。これは私のdrawPaddle()方法です:

function drawPaddle() {
    c.beginPath();
    c.rect(paddleX, paddleY, 150, 10);
    c.closePath();
    c.fill();
    // Get mouse position and update paddleX and paddleY here
}

したがって、drawPaddle()が呼び出されるたびにマウスの位置を取得する方法を見つける必要があり、マウスがページ上で移動するたびにではありません$(document).mousemove(function(e){

どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

3

あなたがする必要があります

var where = {}
$('canvas').mousemove(function(e){
    where.x = e.pageX
    where.y = e.pageY;
});

そして、関数で wherex,y を使用します

于 2010-09-11T19:49:01.073 に答える
1
$('canvas').mousemove(function(e){
    drawPaddle(e.pageX, e.pageY);
});


function drawPaddle(paddleX, paddleY) {
    c.beginPath();
    c.rect(paddleX, paddleY, 150, 10);
    c.closePath();
    c.fill();
}
于 2010-09-11T19:15:07.813 に答える
0

イベントがないと無理だと思います。その情報をグローバルに保存する JavaScript のフィールドを私は知りません。しばらく前に同じ問題が発生し、mousemove他の解決策が見つからなかったため、イベントでそれを行いました。たぶん、一部のブラウザはそれらの座標を取得する方法を実装していますが、私にはわかりません。

ただし、キャンバスでイベントをmouseenter使用して、マウス位置のキャプチャを有効/無効にすることができます。mouseleaveこれにより、関数呼び出しが削減されます。

于 2010-09-11T19:15:03.030 に答える