Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     var Keyboard;
  3.     window.Game = window.Game || {};
  4.     window.Keyboard = window.Game.Keyboard = Keyboard = {};
  5.  
  6.     var keyMap = {
  7.         27: "ESC", 32: "SPACE",
  8.         37: "LEFT", 38: "UP", 39: "RIGHT", 40: "DOWN",
  9.         65: "A", 66: "B", 67: "C", 68: "D", 69: "E",
  10.         70: "F", 71: "G", 72: "H", 73: "I", 74: "J",
  11.         75: "K", 76: "L", 77: "M", 78: "N", 79: "O",
  12.         80: "P", 81: "Q", 82: "R", 83: "S", 84: "T",
  13.         85: "U", 86: "V", 87: "W", 88: "X", 89: "Y", 90: "Z",
  14.     };
  15.  
  16.     // TODO: probably should use hasOwnProperty
  17.     for (i in keyMap) {
  18.         Keyboard[keyMap[i]] = {
  19.             down: false,
  20.             up: true,
  21.             pressed: false,
  22.         };
  23.     }
  24.  
  25.     Keyboard.init = function() {
  26.         document.addEventListener("keydown", Keyboard.onKeyDown);
  27.         document.addEventListener("keyup", Keyboard.onKeyUp);
  28.     };
  29.  
  30.     Keyboard.onKeyDown = function(e) {
  31.         var keyName = keyMap[e.keyCode];
  32.         var key = Keyboard[keyName];
  33.         if (!key) return;
  34.         if (!key.down) {
  35.             key.pressed = true;
  36.         }
  37.         key.down = true;
  38.         key.up = false;
  39.     };
  40.  
  41.     Keyboard.onKeyUp = function(e) {
  42.         var keyName = keyMap[e.keyCode];
  43.         var key = Keyboard[keyName];
  44.         if (!key) return;
  45.         key.down = false;
  46.         key.pressed = false;
  47.         key.up = true;
  48.     };
  49.  
  50.     Keyboard.update = function() {
  51.         for (i in keyMap) {
  52.             Keyboard[keyMap[i]].pressed = false;
  53.         }
  54.     };
  55.  
  56. }());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement