1 |
- function KeyboardInputManager(){this.events={},window.navigator.msPointerEnabled?(this.eventTouchstart="MSPointerDown",this.eventTouchmove="MSPointerMove",this.eventTouchend="MSPointerUp"):(this.eventTouchstart="touchstart",this.eventTouchmove="touchmove",this.eventTouchend="touchend"),this.listen()}KeyboardInputManager.prototype.on=function(e,t){this.events[e]||(this.events[e]=[]),this.events[e].push(t)},KeyboardInputManager.prototype.emit=function(e,t){var n=this.events[e];n&&n.forEach(function(e){e(t)})},KeyboardInputManager.prototype.listen=function(){var e=this,t={38:0,39:1,40:2,37:3,75:0,76:1,74:2,72:3,87:0,68:1,83:2,65:3};document.addEventListener("keydown",function(n){var r=n.altKey||n.ctrlKey||n.metaKey||n.shiftKey,i=t[n.which];r||i!==undefined&&(n.preventDefault(),e.emit("move",i)),!r&&n.which===82&&e.restart.call(e,n)}),this.bindButtonPress(".restart-button",this.restart),this.bindButtonPress(".keep-playing-button",this.shareto);var n,r,i=document.getElementsByClassName("game-container")[0];i.addEventListener(this.eventTouchstart,function(e){if(!window.navigator.msPointerEnabled&&e.touches.length>1||e.targetTouches>1)return;window.navigator.msPointerEnabled?(n=e.pageX,r=e.pageY):(n=e.touches[0].clientX,r=e.touches[0].clientY),e.preventDefault()}),i.addEventListener(this.eventTouchmove,function(e){e.preventDefault()}),i.addEventListener(this.eventTouchend,function(t){if(!window.navigator.msPointerEnabled&&t.touches.length>0||t.targetTouches>0)return;var i,s;window.navigator.msPointerEnabled?(i=t.pageX,s=t.pageY):(i=t.changedTouches[0].clientX,s=t.changedTouches[0].clientY);var o=i-n,u=Math.abs(o),a=s-r,f=Math.abs(a);Math.max(u,f)>10&&e.emit("move",u>f?o>0?1:3:a>0?2:0)})},KeyboardInputManager.prototype.restart=function(e){e.preventDefault(),this.emit("restart")},KeyboardInputManager.prototype.keepPlaying=function(e){e.preventDefault(),this.emit("keepPlaying")},KeyboardInputManager.prototype.shareto=function(e){setTimeout(function(){document.getElementById("pageOverlayShare").style.visibility="visible"},600)},KeyboardInputManager.prototype.bindButtonPress=function(e,t){var n=document.querySelector(e);n.addEventListener("click",t.bind(this)),n.addEventListener(this.eventTouchend,t.bind(this))}
|