Merge pull request #16 from chrisprice/master
Replace hammer with touch event handling
This commit is contained in:
Vendored
-9
File diff suppressed because one or more lines are too long
@@ -57,20 +57,31 @@ KeyboardInputManager.prototype.listen = function () {
|
|||||||
retry.addEventListener("click", this.restart.bind(this));
|
retry.addEventListener("click", this.restart.bind(this));
|
||||||
|
|
||||||
// Listen to swipe events
|
// Listen to swipe events
|
||||||
var gestures = [Hammer.DIRECTION_UP, Hammer.DIRECTION_RIGHT,
|
var touchStartClientX, touchStartClientY;
|
||||||
Hammer.DIRECTION_DOWN, Hammer.DIRECTION_LEFT];
|
|
||||||
|
|
||||||
var gameContainer = document.getElementsByClassName("game-container")[0];
|
var gameContainer = document.getElementsByClassName("game-container")[0];
|
||||||
var handler = Hammer(gameContainer, {
|
gameContainer.addEventListener("touchstart", function(event) {
|
||||||
drag_block_horizontal: true,
|
if (event.touches.length > 1) {
|
||||||
drag_block_vertical: true
|
return;
|
||||||
|
}
|
||||||
|
touchStartClientX = event.touches[0].clientX;
|
||||||
|
touchStartClientY = event.touches[0].clientY
|
||||||
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
|
gameContainer.addEventListener("touchmove", function(event) {
|
||||||
handler.on("swipe", function (event) {
|
event.preventDefault();
|
||||||
event.gesture.preventDefault();
|
});
|
||||||
mapped = gestures.indexOf(event.gesture.direction);
|
gameContainer.addEventListener("touchend", function(event) {
|
||||||
|
if (event.touches.length > 0) {
|
||||||
if (mapped !== -1) self.emit("move", mapped);
|
return;
|
||||||
|
}
|
||||||
|
var dx = event.changedTouches[0].clientX - touchStartClientX;
|
||||||
|
var absDx = Math.abs(dx);
|
||||||
|
var dy = event.changedTouches[0].clientY - touchStartClientY;
|
||||||
|
var absDy = Math.abs(dy);
|
||||||
|
if (Math.max(absDx, absDy) > 10) {
|
||||||
|
self.emit("move", absDx > absDy ? (dx > 0 ? 1 : 3) :
|
||||||
|
(dy > 0 ? 2 : 0)); // (right : left) : (down : up)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user