make defining positions more reliable

This commit is contained in:
2023-06-07 05:17:00 -06:00
parent 6010fbdbfe
commit b6b9139c2e
3 changed files with 21 additions and 13 deletions

View File

@@ -176,22 +176,25 @@
(method :Void defineFlxPoint [:FlxPoint->Void submit]
(unless mm
(set mm (new FlxMouseEventManager))
(FlxG.state.add mm))
(set mm (new FlxMouseEventManager)))
(FlxG.state.add mm)
(let [screen (new FlxSprite)]
(screen.makeGraphic FlxG.width FlxG.height (FlxColor.fromRGBFloat 0 1 0 0.2))
(set screen.cameras [flxMovie.uiCamera])
(doFor camera FlxG.cameras.list (set camera.zoom 0.5))
(set flxMovie.uiCamera.zoom 1)
(mm.add screen
->screen {
(mm.remove screen)
(FlxG.state.remove screen true)
(let [pos (FlxG.mouse.getScreenPosition FlxG.camera)]
(doFor camera FlxG.cameras.list (set camera.zoom 1))
(submit pos))
})
(FlxG.state.add screen)))
(flxMovie.nextFrameActions.push ->:Void {
(doFor camera FlxG.cameras.list (set camera.zoom 0.5))
(set flxMovie.uiCamera.zoom 1)
(mm.add screen
->screen {
(mm.remove screen)
(FlxG.state.remove screen true)
(let [pos (FlxG.mouse.getScreenPosition FlxG.camera)]
(doFor camera FlxG.cameras.list (set camera.zoom 1))
(submit pos))
})
(FlxG.state.add screen)
})))
(method :Void defineStagePosition [:FlxCamera camera :StagePosition->Void submit &opt :StagePosition oldPos]
(let [db (new DebugLayer)]

View File

@@ -29,6 +29,8 @@ class FlxMovie extends Movie<FlxSprite, ActorFlxSprite, FlxSound, String, FlxSpr
public var uiCamera:FlxCamera;
public var screenCamera:FlxCamera;
public var nextFrameActions:Array<Void->Void> = [];
public var propScales:JsonMap<HFloat>;
public var propsInScene:Map<String,Array<String>> = [];

View File

@@ -80,6 +80,9 @@
(new FlxSprite 0 0 asset))
(method :Void update [:Float elapsed]
(doFor action nextFrameActions
(action))
(set nextFrameActions [])
(unless paused
(doFor tween tweens
(callPrivate tween "update" elapsed)