From 17429ac2c518e6b810371a62c21338017704c291 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 10 Aug 2022 13:49:13 +0000 Subject: [PATCH] Remember to commit KissExtendedSprite --- src/kiss_flixel/KissExtendedSprite.hx | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/kiss_flixel/KissExtendedSprite.hx diff --git a/src/kiss_flixel/KissExtendedSprite.hx b/src/kiss_flixel/KissExtendedSprite.hx new file mode 100644 index 0000000..39335ec --- /dev/null +++ b/src/kiss_flixel/KissExtendedSprite.hx @@ -0,0 +1,41 @@ +package kiss_flixel; + +import flixel.FlxG; +import flixel.FlxSprite; +import flixel.math.FlxPoint; +import flixel.system.FlxAssets; + +class KissExtendedSprite extends flixel.addons.display.FlxExtendedSprite { + public function new(X:Float = 0, Y:Float = 0, ?SimpleGraphic:FlxGraphicAsset) + { + super(X, Y, SimpleGraphic); + } + + var dragStartPos:FlxPoint = null; + var mouseStartPos:FlxPoint = null; + + public var connectedSprites:Array = []; + var connectedSpritesStartPos:Array = []; + + public override function startDrag() { + super.startDrag(); + + dragStartPos = new FlxPoint(x, y); + connectedSpritesStartPos = [for (s in connectedSprites) new FlxPoint(s.x, s.y)]; + mouseStartPos = FlxG.mouse.getWorldPosition(); + } + + override function updateDrag() { + var mouseTotalMovement = FlxG.mouse.getWorldPosition().subtractPoint(mouseStartPos); + var nextPos = dragStartPos.copyTo().addPoint(mouseTotalMovement); + x = nextPos.x; + y = nextPos.y; + for (i in 0...connectedSprites.length) { + var sprite = connectedSprites[i]; + var startPos = connectedSpritesStartPos[i]; + var nextPos = startPos.copyTo().addPoint(mouseTotalMovement); + sprite.x = nextPos.x; + sprite.y = nextPos.y; + } + } +} \ No newline at end of file