Some tweaks to the TrailMaster, consolidating some changes and altering the dot style.
This commit is contained in:
parent
c40a7c1bb8
commit
e93de815c2
1 changed files with 18 additions and 14 deletions
|
@ -2,13 +2,15 @@ PAST_PATH_ALPHA = 0.75
|
||||||
PAST_PATH_WIDTH = 5
|
PAST_PATH_WIDTH = 5
|
||||||
FUTURE_PATH_ALPHA = 0.4
|
FUTURE_PATH_ALPHA = 0.4
|
||||||
FUTURE_PATH_WIDTH = 2
|
FUTURE_PATH_WIDTH = 2
|
||||||
|
TARGET_ALPHA = 1
|
||||||
|
TARGET_WIDTH = 10
|
||||||
|
FUTURE_PATH_INTERVAL_DIVISOR = 4
|
||||||
|
PAST_PATH_INTERVAL_DIVISOR = 2
|
||||||
|
|
||||||
Camera = require './Camera'
|
Camera = require './Camera'
|
||||||
CocoClass = require 'lib/CocoClass'
|
CocoClass = require 'lib/CocoClass'
|
||||||
|
|
||||||
module.exports = class TrailMaster extends CocoClass
|
module.exports = class TrailMaster extends CocoClass
|
||||||
paths: null # dictionary of thang ids to containers for their paths
|
|
||||||
pathDisplayObject: null
|
|
||||||
world: null
|
world: null
|
||||||
|
|
||||||
constructor: (@camera, @layerAdapter) ->
|
constructor: (@camera, @layerAdapter) ->
|
||||||
|
@ -22,13 +24,13 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
@generatingPaths = true
|
@generatingPaths = true
|
||||||
@cleanUp()
|
@cleanUp()
|
||||||
@createGraphics()
|
@createGraphics()
|
||||||
@pathDisplayObject = new createjs.SpriteContainer(@layerAdapter.spriteSheet)
|
pathDisplayObject = new createjs.SpriteContainer(@layerAdapter.spriteSheet)
|
||||||
@pathDisplayObject.mouseEnabled = @pathDisplayObject.mouseChildren = false
|
pathDisplayObject.mouseEnabled = pathDisplayObject.mouseChildren = false
|
||||||
@pathDisplayObject.addChild @createFuturePath()
|
pathDisplayObject.addChild @createFuturePath()
|
||||||
# @pathDisplayObject.addChild @createPastPath() # Just made the animated path the full path... do we want to have past and future look different again?
|
# pathDisplayObject.addChild @createPastPath() # Just made the animated path the full path... do we want to have past and future look different again?
|
||||||
@pathDisplayObject.addChild @createTargets()
|
pathDisplayObject.addChild @createTargets()
|
||||||
@generatingPaths = false
|
@generatingPaths = false
|
||||||
return @pathDisplayObject
|
return pathDisplayObject
|
||||||
|
|
||||||
cleanUp: ->
|
cleanUp: ->
|
||||||
createjs.Tween.removeTweens(sprite) for sprite in @tweenedSprites
|
createjs.Tween.removeTweens(sprite) for sprite in @tweenedSprites
|
||||||
|
@ -36,9 +38,8 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
@tweens = []
|
@tweens = []
|
||||||
|
|
||||||
createGraphics: ->
|
createGraphics: ->
|
||||||
color = @colorForThang(@thang.team, PAST_PATH_ALPHA)
|
@targetDotKey = @cachePathDot(TARGET_WIDTH, @colorForThang(@thang.team, TARGET_ALPHA))
|
||||||
@targetDotKey = @cachePathDot(10, color)
|
@pastDotKey = @cachePathDot(PAST_PATH_WIDTH, @colorForThang(@thang.team, PAST_PATH_ALPHA))
|
||||||
@pastDotKey = @cachePathDot(PAST_PATH_WIDTH, color)
|
|
||||||
@futureDotKey = @cachePathDot(FUTURE_PATH_WIDTH, @colorForThang(@thang.team, FUTURE_PATH_ALPHA))
|
@futureDotKey = @cachePathDot(FUTURE_PATH_WIDTH, @colorForThang(@thang.team, FUTURE_PATH_ALPHA))
|
||||||
|
|
||||||
cachePathDot: (width, color) ->
|
cachePathDot: (width, color) ->
|
||||||
|
@ -47,7 +48,7 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
unless key in @layerAdapter.spriteSheet.getAnimations()
|
unless key in @layerAdapter.spriteSheet.getAnimations()
|
||||||
circle = new createjs.Shape()
|
circle = new createjs.Shape()
|
||||||
radius = width/2
|
radius = width/2
|
||||||
circle.graphics.setStrokeStyle(1).beginFill(color).beginStroke('#000000').drawCircle(0, 0, radius)
|
circle.graphics.setStrokeStyle(width/5).beginFill(color).beginStroke('#000000').drawCircle(0, 0, radius)
|
||||||
@layerAdapter.addCustomGraphic(key, circle, [-radius*1.5, -radius*1.5, radius*3, radius*3])
|
@layerAdapter.addCustomGraphic(key, circle, [-radius*1.5, -radius*1.5, radius*3, radius*3])
|
||||||
return key
|
return key
|
||||||
|
|
||||||
|
@ -60,12 +61,13 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
|
|
||||||
createPastPath: ->
|
createPastPath: ->
|
||||||
return unless points = @world.pointsForThang @thang.id, @camera
|
return unless points = @world.pointsForThang @thang.id, @camera
|
||||||
params = { interval: 8, frameKey: @pastDotKey }
|
interval = Math.max(1, parseInt(@world.frameRate / PAST_PATH_INTERVAL_DIVISOR))
|
||||||
|
params = { interval: interval, frameKey: @pastDotKey }
|
||||||
return @createPath(points, params)
|
return @createPath(points, params)
|
||||||
|
|
||||||
createFuturePath: ->
|
createFuturePath: ->
|
||||||
return unless points = @world.pointsForThang @thang.id, @camera
|
return unless points = @world.pointsForThang @thang.id, @camera
|
||||||
interval = Math.max(1, parseInt(@world.frameRate / 4))
|
interval = Math.max(1, parseInt(@world.frameRate / FUTURE_PATH_INTERVAL_DIVISOR))
|
||||||
params = { interval: interval, animate: true, frameKey: @futureDotKey }
|
params = { interval: interval, animate: true, frameKey: @futureDotKey }
|
||||||
return @createPath(points, params)
|
return @createPath(points, params)
|
||||||
|
|
||||||
|
@ -77,6 +79,7 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
sup = @camera.worldToSurface x: x, y: y
|
sup = @camera.worldToSurface x: x, y: y
|
||||||
sprite = new createjs.Sprite(@layerAdapter.spriteSheet)
|
sprite = new createjs.Sprite(@layerAdapter.spriteSheet)
|
||||||
sprite.scaleX = sprite.scaleY = 1 / @layerAdapter.resolutionFactor
|
sprite.scaleX = sprite.scaleY = 1 / @layerAdapter.resolutionFactor
|
||||||
|
sprite.scaleY *= @camera.y2x
|
||||||
sprite.gotoAndStop(@targetDotKey)
|
sprite.gotoAndStop(@targetDotKey)
|
||||||
sprite.x = sup.x
|
sprite.x = sup.x
|
||||||
sprite.y = sup.y
|
sprite.y = sup.y
|
||||||
|
@ -93,6 +96,7 @@ module.exports = class TrailMaster extends CocoClass
|
||||||
y = points[i + 1]
|
y = points[i + 1]
|
||||||
sprite = new createjs.Sprite(@layerAdapter.spriteSheet)
|
sprite = new createjs.Sprite(@layerAdapter.spriteSheet)
|
||||||
sprite.scaleX = sprite.scaleY = 1 / @layerAdapter.resolutionFactor
|
sprite.scaleX = sprite.scaleY = 1 / @layerAdapter.resolutionFactor
|
||||||
|
sprite.scaleY *= @camera.y2x
|
||||||
sprite.gotoAndStop(key)
|
sprite.gotoAndStop(key)
|
||||||
sprite.x = x
|
sprite.x = x
|
||||||
sprite.y = y
|
sprite.y = y
|
||||||
|
|
Reference in a new issue