mirror of
https://github.com/flynx/Slang.git
synced 2025-10-28 10:10:07 +00:00
fixed disabled touch events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
eb8d2f459f
commit
72053b0dd4
@ -2,6 +2,6 @@ CACHE MANIFEST
|
||||
# Last Modified: 2017 Apr 14
|
||||
|
||||
CACHE:
|
||||
simplesnake.html
|
||||
simplesnake.css
|
||||
simplesnake.js
|
||||
simplesnake.html
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<title>Simple Snake</title>
|
||||
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
|
||||
<link rel="stylesheet" href="simplesnake.css">
|
||||
<script src="simplesnake.js"></script>
|
||||
|
||||
@ -327,7 +327,10 @@ var Snake = {
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
var HANDLER_SET = false
|
||||
var __HANDLER_SET = false
|
||||
var __DEBOUNCE_TIMEOUT = 100
|
||||
var __DEBOUNCE = false
|
||||
|
||||
var KEY_CONFIG = {
|
||||
' ': ['pause'],
|
||||
ArrowLeft: ['left'],
|
||||
@ -336,7 +339,6 @@ var KEY_CONFIG = {
|
||||
Left: ['left'],
|
||||
Right: ['right'],
|
||||
}
|
||||
|
||||
function makeKeyboardHandler(snake){
|
||||
return function(event){
|
||||
clearHints()
|
||||
@ -344,8 +346,16 @@ function makeKeyboardHandler(snake){
|
||||
action
|
||||
&& action[0] in snake
|
||||
&& snake[action[0]].apply(snake, action.slice(1)) }}
|
||||
|
||||
function makeTapHandler(snake){
|
||||
return function(event){
|
||||
// prevent clicks and touches from triggering the same action
|
||||
// twice -- only handle the first one within timeout...
|
||||
// NOTE: this should not affect events of the same type...
|
||||
if(__DEBOUNCE && event.type != __DEBOUNCE){ return }
|
||||
__DEBOUNCE = event.type
|
||||
setTimeout(function(){ __DEBOUNCE = false }, __DEBOUNCE_TIMEOUT)
|
||||
|
||||
clearHints()
|
||||
// top of screen (1/8)...
|
||||
;(event.clientY || event.changedTouches[0].pageY) <= (document.body.clientHeight / 8) ?
|
||||
@ -357,6 +367,7 @@ function makeTapHandler(snake){
|
||||
: (event.clientX || event.changedTouches[0].pageX) <= (document.body.clientWidth / 2) ?
|
||||
Snake.left()
|
||||
: Snake.right() }}
|
||||
|
||||
function clearHints(){
|
||||
document.body.classList.contains('hints')
|
||||
&& document.body.classList.remove('hints') }
|
||||
@ -370,11 +381,11 @@ function setup(snake, timer, size){
|
||||
snake = snake || Snake
|
||||
|
||||
// setup event handlers (only once)...
|
||||
if(!HANDLER_SET){
|
||||
if(!__HANDLER_SET){
|
||||
document.addEventListener('keydown', makeKeyboardHandler(snake))
|
||||
//document.addEventListener('touchstart', makeTapHandler(snake))
|
||||
document.addEventListener('touchstart', makeTapHandler(snake))
|
||||
document.addEventListener('mousedown', makeTapHandler(snake))
|
||||
HANDLER_SET = true
|
||||
__HANDLER_SET = true
|
||||
|
||||
/*/ cache updater...
|
||||
// XXX needs more work...
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user