-- 今度はマウスポインターの xy 両軸方向の加速度を取得してみる。 -- 確認しやすいよう、更新速度は遅めにする。 step = 0.5 timer.start(step) posTwoAgoX, posTwoAgoY = 0, 0 posOneAgoX, posOneAgoY = 0, 0 posNowX, posNowY = 0, 0 speedOneAgoX, speedOneAgoY = 0, 0 speedNowX, speedNowY = 0, 0 accelX, accelY = 0, 0 function on.paint(gc) gc:drawString("posTwoAgo X, Y : "..posTwoAgoX..", "..posTwoAgoY.." [pixel]",10,10) gc:drawString("posOneAgo X, Y : "..posOneAgoX..", "..posOneAgoY.." [pixel]",10,30) gc:drawString("posNow X, Y : "..posNowX..", "..posNowY.." [pixel]",10,50) gc:drawString("speedOneAgo X, Y: "..speedOneAgoX..", "..speedOneAgoY.." [pixels/sec]",10,70) gc:drawString("speedNow X, Y : "..speedNowX..", "..speedNowY.." [pixels/sec]",10,90) gc:drawString("acceleration X, Y : " ..accelX..", "..accelY.." [pixels/sec"..string.uchar(0x00B2).."]",10,110) platform.window:invalidate() end function on.mouseMove(x, y) posNowX, posNowY = x, y platform.window:invalidate() end function on.timer() speedOneAgoX, speedOneAgoY = (posOneAgoX - posTwoAgoX)/step, (posOneAgoY - posTwoAgoY)/step speedNowX, speedNowY = (posNowX - posOneAgoX)/step, (posNowY - posOneAgoY)/step accelX, accelY = (speedNowX - speedOneAgoX)/step, (speedNowY - speedOneAgoY)/step posTwoAgoX, posTwoAgoY = posOneAgoX, posOneAgoY posOneAgoX, posOneAgoY = posNowX, posNowY platform.window:invalidate() end