Skip to content

Instantly share code, notes, and snippets.

@mrcoles
Created April 11, 2012 04:46
Show Gist options
  • Save mrcoles/2356963 to your computer and use it in GitHub Desktop.
Save mrcoles/2356963 to your computer and use it in GitHub Desktop.
A simple way to keep track of which keys are pressed at any one time.
var PressedKeys = function($elt) {
var pressed = {};
($elt || $(document)).on('keydown keyup', function(evt) {
pressed[evt.keyCode] = (evt.type == 'keydown');
});
return pressed;
};
// example
var pressedKeys = PressedKeys($('canvas.game'));
(function loop() {
if (pressedKeys['39']) {
// do something right
} else if (pressedKeys['37'] {
// do something left
}
window.setTimeout(loop, 80);
})();
@hrldcpr
Copy link

hrldcpr commented Apr 11, 2012

why not just:
pressed[evt.keyCode] = (evt.type == 'keydown');

@hrldcpr
Copy link

hrldcpr commented Apr 11, 2012

why not gist.

@mrcoles
Copy link
Author

mrcoles commented Apr 11, 2012

done.

“gist do it!”

@DarrenSem
Copy link

@mrcoles Hello from 2024.

typo here:

} else if (pressedKeys['37'] {

should be:

} else if (pressedKeys['37']) {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment