mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-01 15:50:11 -04:00
Can now drag the mouse to move around the map.
This commit is contained in:
parent
01b91eb7e2
commit
242342315f
3 changed files with 25 additions and 2 deletions
app
|
@ -40,6 +40,8 @@ module.exports = class Camera extends CocoClass
|
|||
'camera-zoom-out': 'onZoomOut'
|
||||
'surface:mouse-scrolled': 'onMouseScrolled'
|
||||
'level:restarted': 'onLevelRestarted'
|
||||
'sprite:mouse-down': 'onMouseDown'
|
||||
'sprite:dragged': 'onMouseDragged'
|
||||
|
||||
# TODO: Fix tests to not use mainLayer
|
||||
constructor: (@canvasWidth, @canvasHeight, angle=Math.asin(0.75), hFOV=d2r(30)) ->
|
||||
|
@ -164,6 +166,21 @@ module.exports = class Camera extends CocoClass
|
|||
target = @target
|
||||
@zoomTo target, newZoom, 0
|
||||
|
||||
onMouseDown: (e) ->
|
||||
return if @dragDisabled
|
||||
@lastPos = {x: e.originalEvent.rawX, y: e.originalEvent.rawY}
|
||||
|
||||
onMouseDragged: (e) ->
|
||||
return if @dragDisabled
|
||||
target = @boundTarget(@target, @zoom)
|
||||
newPos = {
|
||||
x: target.x + (@lastPos.x - e.originalEvent.rawX) / @zoom
|
||||
y: target.y + (@lastPos.y - e.originalEvent.rawY) / @zoom
|
||||
}
|
||||
@zoomTo newPos, @zoom, 0
|
||||
@lastPos = {x: e.originalEvent.rawX, y: e.originalEvent.rawY}
|
||||
Backbone.Mediator.publish 'camera:dragged'
|
||||
|
||||
onLevelRestarted: ->
|
||||
@setBounds(@firstBounds, false)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
'bus:player-left': 'onPlayerLeft'
|
||||
'level-set-debug': 'onSetDebug'
|
||||
'level-highlight-sprites': 'onHighlightSprites'
|
||||
'sprite:mouse-down': 'onSpriteMouseDown'
|
||||
'sprite:mouse-up': 'onSpriteMouseUp'
|
||||
'surface:stage-mouse-down': 'onStageMouseDown'
|
||||
'level-select-sprite': 'onSelectSprite'
|
||||
'level-suppress-selection-sounds': 'onSuppressSelectionSounds'
|
||||
|
@ -21,6 +21,7 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
'level:restarted': 'onLevelRestarted'
|
||||
'god:new-world-created': 'onNewWorld'
|
||||
'tome:cast-spells': 'onCastSpells'
|
||||
'camera:dragged': 'onCameraDragged'
|
||||
|
||||
constructor: (@options) ->
|
||||
super()
|
||||
|
@ -226,8 +227,12 @@ module.exports = class SpriteBoss extends CocoClass
|
|||
onSelectSprite: (e) ->
|
||||
@selectThang e.thangID, e.spellName
|
||||
|
||||
onSpriteMouseDown: (e) ->
|
||||
onCameraDragged: ->
|
||||
@dragged = true
|
||||
|
||||
onSpriteMouseUp: (e) ->
|
||||
return if key.shift and @options.choosing
|
||||
return @dragged = false if @dragged
|
||||
sprite = if e.sprite?.thang?.isSelectable then e.sprite else null
|
||||
@selectSprite e, sprite
|
||||
|
||||
|
|
|
@ -144,6 +144,7 @@ module.exports = class ThangsTabView extends View
|
|||
@surface.playing = false
|
||||
@surface.setWorld @world
|
||||
@surface.camera.zoomTo({x:262, y:-164}, 1.66, 0)
|
||||
@surface.camera.dragDisabled = true
|
||||
|
||||
destroy: ->
|
||||
@selectAddThangType null
|
||||
|
|
Loading…
Add table
Reference in a new issue