diff --git a/src/game-lib-system-input.js b/src/game-lib-system-input.js index cce2181..37332ba 100644 --- a/src/game-lib-system-input.js +++ b/src/game-lib-system-input.js @@ -253,62 +253,37 @@ GameLib.System.Input.prototype.onTouchMove = function (event) { this.sensitivityCounter++; var id = null; - var t = null; - if (this.sensitivityCounter < this.touchSensitivity) { - /** - * ignore this event - */ - 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++) { + for (var t = 0; t < event.changedTouches.length; t++) { id = event.changedTouches[t].identifier; + var diffX = Math.abs(event.changedTouches[t].pageX - this.touches[id].pageX); + var diffY = Math.abs(event.changedTouches[t].pageY - this.touches[id].pageY); + 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; - // } + right += diffX; + left -= diffX; } 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; - // } + left += diffX; + right -= diffX; } 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; - // } + up += diffY; + down -= diffY; } 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; - // } + down += diffY; + up -= diffY; } this.touches[id].right += right; @@ -317,15 +292,23 @@ GameLib.System.Input.prototype.onTouchMove = function (event) { this.touches[id].down += down; this.touches[id].pageX = event.changedTouches[t].pageX; this.touches[id].pageY = event.changedTouches[t].pageY; + + console.log(this.touches[id]); } this.touches.event = event; + if (this.sensitivityCounter >= this.touchSensitivity) { + + this.sensitivityCounter = 0; + GameLib.Event.Emit( GameLib.Event.TOUCH_MOVE, this.touches ); + } + }; GameLib.System.Input.prototype.onTouchCancel = function(event) {