mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-17 08:50:58 -05:00
Add realtime keyboard events for game dev
This commit is contained in:
parent
de739bb6db
commit
dbf63e250c
1 changed files with 11 additions and 1 deletions
|
@ -83,6 +83,8 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
|
||||
constructor: (@world, @normalCanvas, @webGLCanvas, givenOptions) ->
|
||||
super()
|
||||
$(window).on('keydown', @onKeyEvent)
|
||||
$(window).on('keyup', @onKeyEvent)
|
||||
@normalLayers = []
|
||||
@options = _.clone(@defaults)
|
||||
@options = _.extend(@options, givenOptions) if givenOptions
|
||||
|
@ -540,7 +542,13 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
event.screenPos = @mouseScreenPos if @mouseScreenPos
|
||||
Backbone.Mediator.publish 'surface:mouse-scrolled', event unless @disabled
|
||||
@gameUIState.trigger('surface:mouse-scrolled', event)
|
||||
|
||||
|
||||
|
||||
#- Keyboard callbacks
|
||||
|
||||
onKeyEvent: (e) =>
|
||||
return unless @realTime
|
||||
@realTimeInputEvents.add(_.pick(e, 'type', 'keyCode', 'ctrlKey', 'metaKey', 'shiftKey'))
|
||||
|
||||
#- Canvas callbacks
|
||||
|
||||
|
@ -758,6 +766,8 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
@webGLStage.enableMouseOver 0
|
||||
@webGLCanvas.off 'mousewheel', @onMouseWheel
|
||||
$(window).off 'resize', @onResize
|
||||
$(window).off('keydown', @onKeyEvent)
|
||||
$(window).off('keyup', @onKeyEvent)
|
||||
clearTimeout @surfacePauseTimeout if @surfacePauseTimeout
|
||||
clearTimeout @surfaceZoomPauseTimeout if @surfaceZoomPauseTimeout
|
||||
super()
|
||||
|
|
Loading…
Reference in a new issue