scale props before calculating FullControl positions
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-flixel#7381447087453981c8fa71dc004063bdc77033a7" into kiss-flixel/0.0.0/github/7381447087453981c8fa71dc004063bdc77033a7
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-flixel#70a1f880152be4bb03179dd79e9fe739d086ba7b" into kiss-flixel/0.0.0/github/70a1f880152be4bb03179dd79e9fe739d086ba7b
|
||||
-lib flixel
|
||||
-lib flixel-addons
|
||||
-lib flixel-ui
|
||||
@@ -6,5 +6,5 @@
|
||||
-lib kiss-tools
|
||||
-lib lime
|
||||
-lib openfl
|
||||
-cp ${HAXE_LIBCACHE}/kiss-flixel/0.0.0/github/7381447087453981c8fa71dc004063bdc77033a7/src/
|
||||
-cp ${HAXE_LIBCACHE}/kiss-flixel/0.0.0/github/70a1f880152be4bb03179dd79e9fe739d086ba7b/src/
|
||||
-D kiss-flixel=0.0.0
|
||||
@@ -586,6 +586,17 @@
|
||||
|
||||
(prop &mut :Bool autoPlaceProps true)
|
||||
|
||||
(method scaleProp [:FlxSprite prop]
|
||||
(let [propKey (_propKey prop)
|
||||
:Float scale .value (flxMovie.propScales.get propKey)]
|
||||
(when (StringTools.contains propKey "anonProp") (return))
|
||||
(unless (flxMovie.propsInScene.exists flxMovie.sceneKey)
|
||||
(dictSet flxMovie.propsInScene flxMovie.sceneKey []))
|
||||
(unless !(= -1 (.indexOf (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
|
||||
(.push (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
|
||||
(prop.scale.set scale scale)
|
||||
(prop.updateHitbox)))
|
||||
|
||||
(method :Void showProp [:FlxSprite prop :StagePosition position :Appearance appearance :FlxCamera camera :Continuation cc]
|
||||
(set prop.cameras [camera])
|
||||
(let [width (min (max prop.width PROP_MIN_WIDTH) PROP_MAX_WIDTH)]
|
||||
@@ -616,14 +627,7 @@
|
||||
(-= prop.y (- propBottom FlxG.height)))))
|
||||
// Otherwise, let the director scale props
|
||||
(true
|
||||
(let [propKey (_propKey prop)
|
||||
:Float scale .value (flxMovie.propScales.get propKey)]
|
||||
(unless (flxMovie.propsInScene.exists flxMovie.sceneKey)
|
||||
(dictSet flxMovie.propsInScene flxMovie.sceneKey []))
|
||||
(unless !(= -1 (.indexOf (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
|
||||
(.push (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
|
||||
(prop.scale.set scale scale)
|
||||
(prop.updateHitbox))))
|
||||
(scaleProp prop)))
|
||||
|
||||
(let [layerNum position.z]
|
||||
(assertEquals layerNum (Std.int layerNum))
|
||||
|
||||
@@ -137,9 +137,11 @@
|
||||
(_canvas.makeGraphic FlxG.width FlxG.height FlxColor.BLACK))
|
||||
_canvas)
|
||||
|
||||
(method :StagePosition FullControl [:FlxSprite s :Int layer :RelativePosition rpos]
|
||||
(method :StagePosition FullControl [:FlxSprite s :Int layer :RelativePosition rpos &opt :Bool isProp]
|
||||
(assert (<= 0 layer FlxDirector.LAYER_MAX) "Layer $layer is out of range 0-$FlxDirector.LAYER_MAX")
|
||||
(let [[x y] (SpriteTools.positionOn s (canvas) rpos)]
|
||||
(when isProp
|
||||
(flxDirector.scaleProp s))
|
||||
(let [[x y] (SpriteTools.positionOn s (canvas) rpos true)]
|
||||
(new StagePosition x y layer)))
|
||||
|
||||
(method namePlates [:Array<String> names :Dynamic delayLength :Bool delayWhileShown :Void->Void cc]
|
||||
|
||||
Reference in New Issue
Block a user