Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Raid:Input:
- class Key
- pressed = $private 'pressed'
- kpress = $private 'kpress'
- kdown = $private 'kdown'
- kup = $private 'kup'
- #
- constructor: ->
- @[kpress] = []
- @[kdown] = []
- @[kup] = []
- @[pressed]= {}
- getKeyEvent = (e) ->
- event =
- original: e
- code: e.keyCode
- char: e.charCode
- keyShift: e.shiftKey
- keyAlt: e.altKey
- keyCtrl: e.ctrlKey
- document.addEventListener 'keypress', (e) =>
- i(getKeyEvent(e)) for i in @[kpress]
- , false
- document.addEventListener 'keydown', (e) =>
- i(getKeyEvent(e)) for i in @[kdown]
- @[pressed][e.keyCode] = true
- , false
- document.addEventListener 'keyup', (e) =>
- i(getKeyEvent(e)) for i in @[kup]
- delete @[pressed][e.keyCode]
- , false
- #
- press: (callback) ->
- @[kpress].push callback
- #
- down: (callback) ->
- @[kdown].push callback
- #
- up: (callback) ->
- @[kup].push callback
- #
- pressed: (keycode, callback) ->
- check = (keycode) =>
- if @[pressed][keycode]
- callback() if callback?
- return true
- return false
- if nameof(keycode) is 'Array'
- for i in keycode
- return true if check i
- return false
- return check keycode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement