From 084228cc09e761fd406a1efbb95f3feb4c30bd1f Mon Sep 17 00:00:00 2001 From: -=yb4f310 Date: Fri, 29 Sep 2017 08:08:41 +0200 Subject: [PATCH] more sens stuff --- src/game-lib-system-input.js | 125 +++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 58 deletions(-) diff --git a/src/game-lib-system-input.js b/src/game-lib-system-input.js index dc68d7a..0d36123 100644 --- a/src/game-lib-system-input.js +++ b/src/game-lib-system-input.js @@ -252,71 +252,80 @@ GameLib.System.Input.prototype.onTouchMove = function (event) { this.sensitivityCounter++; + var id = null; + var t = null; + if (this.sensitivityCounter < this.touchSensitivity) { /** * ignore this event */ - return; + for (t = 0; t < event.changedTouches.length; t++) { + id = event.changedTouches[t].identifier; + this.touches[id].pageX = event.changedTouches[t].pageX; + this.touches[id].pageY = event.changedTouches[t].pageY; + } + } else { + this.sensitivityCounter = 0; + + + for (t = 0; t < event.changedTouches.length; t++) { + + id = event.changedTouches[t].identifier; + + var left = 0; + var right = 0; + var up = 0; + var down = 0; + + if (event.changedTouches[t].pageX > this.touches[id].pageX) { + right += (event.changedTouches[t].pageX - this.touches[id].pageX); + if (this.touches[id].left > 0) { + this.touches[id].left = 0; + this.sensitivityCounter = this.touchSensitivity; + } + } + + if (event.changedTouches[t].pageX < this.touches[id].pageX) { + left += (this.touches[id].pageX - event.changedTouches[t].pageX); + if (this.touches[id].right > 0) { + this.touches[id].right = 0; + this.sensitivityCounter = this.touchSensitivity; + } + } + + if (event.changedTouches[t].pageY < this.touches[id].pageY) { + up += (this.touches[id].pageY - event.changedTouches[t].pageY); + if (this.touches[id].down > 0) { + this.touches[id].down = 0; + this.sensitivityCounter = this.touchSensitivity; + } + } + + if (event.changedTouches[t].pageY > this.touches[id].pageY) { + down += (event.changedTouches[t].pageY - this.touches[id].pageY); + if (this.touches[id].up > 0) { + this.touches[id].up = 0; + this.sensitivityCounter = this.touchSensitivity; + } + } + + this.touches[id].right += right; + this.touches[id].left += left; + this.touches[id].up += up; + this.touches[id].down += down; + this.touches[id].pageX = event.changedTouches[t].pageX; + this.touches[id].pageY = event.changedTouches[t].pageY; + } + + this.touches.event = event; + + GameLib.Event.Emit( + GameLib.Event.TOUCH_MOVE, + this.touches + ); } - - for (var t = 0; t < event.changedTouches.length; t++) { - - var id = event.changedTouches[t].identifier; - - var left = 0; - var right = 0; - var up = 0; - var down = 0; - - if (event.changedTouches[t].pageX > this.touches[id].pageX) { - right = 1; - if (this.touches[id].left > 0) { - this.touches[id].left = 0; - this.sensitivityCounter = this.touchSensitivity; - } - } - - if (event.changedTouches[t].pageX < this.touches[id].pageX) { - left = 1; - if (this.touches[id].right > 0) { - this.touches[id].right = 0; - this.sensitivityCounter = this.touchSensitivity; - } - } - - if (event.changedTouches[t].pageY < this.touches[id].pageY) { - up = 1; - if (this.touches[id].down > 0) { - this.touches[id].down = 0; - this.sensitivityCounter = this.touchSensitivity; - } - } - - if (event.changedTouches[t].pageY > this.touches[id].pageY) { - down = 1; - if (this.touches[id].up > 0) { - this.touches[id].up = 0; - this.sensitivityCounter = this.touchSensitivity; - } - } - - this.touches[id].right += right; - this.touches[id].left += left; - this.touches[id].up += up; - this.touches[id].down += down; - this.touches[id].pageX = event.changedTouches[t].pageX; - this.touches[id].pageY = event.changedTouches[t].pageY; - } - - this.touches.event = event; - - GameLib.Event.Emit( - GameLib.Event.TOUCH_MOVE, - this.touches - ); - }; GameLib.System.Input.prototype.onTouchCancel = function(event) {