diff options
Diffstat (limited to 'jaws/src/input.js')
| -rwxr-xr-x | jaws/src/input.js | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/jaws/src/input.js b/jaws/src/input.js deleted file mode 100755 index fd3195f..0000000 --- a/jaws/src/input.js +++ /dev/null @@ -1,203 +0,0 @@ -var jaws = (function(jaws) { - - var pressed_keys = {} - var previously_pressed_keys = {} - var keyCodes = {"0":"48","1":"49","2":"50","3":"51","4":"52","5":"53","6":"54","7":"55","8":"56","9":"57","backspace":"8","tab":"9","enter":"13","shift":"16","ctrl":"17","alt":"18","pause":"19","caps_lock":"20","esc":"27","space":"32","page_up":"33","page_down":"34","end":"35","home":"36","left":"37","up":"38","right":"39","down":"40","insert":"45","delete":"46","a":"65","b":"66","c":"67","d":"68","e":"69","f":"70","g":"71","h":"72","i":"73","j":"74","k":"75","l":"76","m":"77","n":"78","o":"79","p":"80","q":"81","r":"82","s":"83","t":"84","u":"85","v":"86","w":"87","x":"88","y":"89","z":"90","windows_left":"91","windows_right":"92","select":"93","numpad0":"96","numpad1":"97","numpad2":"98","numpad3":"99","numpad4":"100","numpad5":"101","numpad6":"102","numpad7":"103","numpad8":"104","numpad9":"105","asterisk":"106","plus":"107","minus":"109","decimal_point":"110","divide":"111","f1":"112","f2":"113","f3":"114","f4":"115","f5":"116","f6":"117","f7":"118","f8":"119","f9":"120","numlock":"144","scrollock":"145","semicolon":"186","equals":"187","comma":"188","dash":"189","period":"190","slash":"191","grave_accent":"192","open_bracket":"219","backslash":"220","close_bracket":"221","single_quote":"222"}; - var keycodeNames = {"8":"backspace","9":"tab","13":"enter","16":"shift","17":"ctrl","18":"alt","19":"pause","20":"caps_lock","27":"esc","32":"space","33":"page_up","34":"page_down","35":"end","36":"home","37":"left","38":"up","39":"right","40":"down","45":"insert","46":"delete","48":"0","49":"1","50":"2","51":"3","52":"4","53":"5","54":"6","55":"7","56":"8","57":"9","65":"a","66":"b","67":"c","68":"d","69":"e","70":"f","71":"g","72":"h","73":"i","74":"j","75":"k","76":"l","77":"m","78":"n","79":"o","80":"p","81":"q","82":"r","83":"s","84":"t","85":"u","86":"v","87":"w","88":"x","89":"y","90":"z","91":"windows_left","92":"windows_right","93":"select","96":"numpad0","97":"numpad1","98":"numpad2","99":"numpad3","100":"numpad4","101":"numpad5","102":"numpad6","103":"numpad7","104":"numpad8","105":"numpad9","106":"asterisk","107":"plus","109":"minus","110":"decimal_point","111":"divide","112":"f1","113":"f2","114":"f3","115":"f4","116":"f5","117":"f6","118":"f7","119":"f8","120":"f9","144":"numlock","145":"scrollock","186":"semicolon","187":"equals","188":"comma","189":"dash","190":"period","191":"slash","192":"grave_accent","219":"open_bracket","220":"backslash","221":"close_bracket","222":"single_quote"}; - var on_keydown_callbacks = [] - var on_keyup_callbacks = [] - var mousebuttoncode_to_string = [] - var ie_mousebuttoncode_to_string = [] - var prevent_default_keys = [] - -/** @private - * Map all javascript keycodes to easy-to-remember letters/words - */ -jaws.setupInput = function() { - var m = [] - - m[0] = "left_mouse_button" - m[1] = "center_mouse_button" - m[2] = "right_mouse_button" - - var ie_m = []; - ie_m[1] = "left_mouse_button"; - ie_m[2] = "right_mouse_button"; - ie_m[4] = "center_mouse_button"; - - mousebuttoncode_to_string = m - ie_mousebuttoncode_to_string = ie_m; - - window.addEventListener("keydown", handleKeyDown); - window.addEventListener("keyup", handleKeyUp); - - var jawswindow = jaws.canvas || jaws.dom - jawswindow.addEventListener("mousedown", handleMouseDown, false); - jawswindow.addEventListener("mouseup", handleMouseUp, false); - jawswindow.addEventListener("touchstart", handleTouchStart, false); - jawswindow.addEventListener("touchend", handleTouchEnd, false); - - window.addEventListener("blur", resetPressedKeys, false); - - // this turns off the right click context menu which screws up the mouseup event for button 2 - document.oncontextmenu = function() {return false}; -} - -/** @private - * Reset input-hash. Called when game is blurred so a key-controlled player doesn't keep on moving when the game isn't focused. - */ -function resetPressedKeys(e) { - for (var x in pressed_keys) { - delete pressed_keys[x]; - } -} - -/** @private - * handle event "onkeydown" by remembering what key was pressed - */ -function handleKeyUp(e) { - /* event = (e) ? e : window.event; */ /* Seems unnecessary because e is assumed to be non-null later */ - var code = code = e.keyCode; - pressed_keys[code] = false; - if (on_keyup_callbacks[code]) { - on_keyup_callbacks[code](code) - e.preventDefault() - } else if (prevent_default_keys[code]) { - e.preventDefault(); - } -} - -/** @private - * handle event "onkeydown" by remembering what key was un-pressed - */ -function handleKeyDown(e) { - /* event = (e) ? e : window.event; */ /* Seems unnecessary because e is assumed to be non-null later */ - var code = code = e.keyCode; - pressed_keys[code] = true; - if (on_keydown_callbacks[code]) { - on_keydown_callbacks[code](code); - e.preventDefault(); - } else if (prevent_default_keys[code]) { - e.preventDefault(); - } -} -/** @private - * handle event "onmousedown" by remembering what button was pressed - */ -function handleMouseDown(e) { - /* event = (e) ? e : window.event; */ /* Seems unnecessary because e is assumed to be non-null later */ - var human_name = mousebuttoncode_to_string[e.button]; // 0 1 2 - if (navigator.appName == "Microsoft Internet Explorer"){ - human_name = ie_mousebuttoncode_to_string[e.button]; - } - pressed_keys[human_name] = true - if(on_keydown_callbacks[human_name]) { - on_keydown_callbacks[human_name](human_name); - e.preventDefault(); - } -} - - -/** @private - * handle event "onmouseup" by remembering what button was un-pressed - */ -function handleMouseUp(e) { - /* event = (e) ? e : window.event; */ /* Seems unnecessary because e is assumed to be non-null later */ - var human_name = mousebuttoncode_to_string[e.button] - - if (navigator.appName == "Microsoft Internet Explorer"){ - human_name = ie_mousebuttoncode_to_string[e.button]; - } - pressed_keys[human_name] = false; - if(on_keyup_callbacks[human_name]) { - on_keyup_callbacks[human_name](human_name); - e.preventDefault(); - } -} - -/** @private - * handle event "touchstart" by remembering what button was pressed - */ -function handleTouchStart(e) { - /* event = (e) ? e : window.event; */ /* Seems unnecessary because e is assumed to be non-null later */ - pressed_keys["left_mouse_button"] = true - jaws.mouse_x = e.touches[0].pageX - jaws.canvas.offsetLeft; - jaws.mouse_y = e.touches[0].pageY - jaws.canvas.offsetTop; - //e.preventDefault() -} - -/** @private - * handle event "touchend" by remembering what button was pressed - */ -function handleTouchEnd(e) { - pressed_keys["left_mouse_button"] = false; - jaws.mouse_x = undefined; - jaws.mouse_y = undefined; -} - -/** - * Prevents default browseraction for given keys. - * @example - * jaws.preventDefaultKeys( ["down"] ) // Stop down-arrow-key from scrolling page down - */ -jaws.preventDefaultKeys = function(array_of_strings) { - var list = arguments; - for(var i=0; i < list.length; i++) { - prevent_default_keys[list[i]] = true; - } -} - -/** - * Array: If a key is currently pressed, the value associated to the key is true, otherwise false or not present. - */ -jaws.pressed = pressed_keys; - -/** - * Mapping key names to codes, and vice-versa - */ -jaws.keyCodes = keyCodes; -jaws.keycodeNames = keycodeNames; - -/** - * sets up a callback for a key (or array of keys) to call when it's pressed down - * - * @example - * // call goLeft() when left arrow key is pressed - * jaws.on_keypress(jaws.keyCode("left"), goLeft) - * - * // call fireWeapon() when SPACE or CTRL is pressed - * jaws.on_keypress([jaws.keyCodes["space"],jaws.keyCodes["ctrl"]], fireWeapon) - */ -jaws.on_keydown = function(key, callback) { - if (jaws.isArray(key)) { - for (var i=0; key[i]; i++) { - on_keydown_callbacks[key[i]] = callback; - } - } else { - on_keydown_callbacks[key] = callback; - } -} - -/** - * sets up a callback when a key (or array of keys) to call when it's released - */ -jaws.on_keyup = function(key, callback) { - if (jaws.isArray(key)) { - for (var i=0; key[i]; i++) { - on_keyup_callbacks[key[i]] = callback; - } - } else { - on_keyup_callbacks[key] = callback; - } -} - -/** @private - * Clean up all callbacks set by on_keydown / on_keyup - */ -jaws.clearKeyCallbacks = function() { - on_keyup_callbacks = []; - on_keydown_callbacks = []; -} - -return jaws; -})(jaws || {}); |
