マウスで移動した距離を検出し、キャンバス内のすべての画像をオフセットするキャンバスのスクロール機能があります。
問題は、マウスをほとんど動かさず、オフセット数が指数関数的に増加し、理由がわからないことです...これは、オフセット計算を処理する私の関数です:
canvas.addEventListener('mousedown', scrol_cnv, false);
function scroll_cnv(e) {
if (e.button == 2) {//right click only
var x = e.pageX; // get click X
var y = e.pageY; //get click Y
function clear() {
this.removeEventListener('mousemove', updt, false);
}
function updt(evt) {
var difx = evt.pageX - x;
var dify = evt.pageY - y;
//this is where offset is becoming incorrect
//offsets is globally defined `window.offsets = {}`
offsets.cur_offsetx -= difx;
offsets.cur_offsety -= dify;
}
this.addEventListener('mousemove', updt, false);
this.addEventListener('mouseup', clear, false);
}
}
オフセットを間違って減算していますか?