functions to bring an array of sprites front/back

This commit is contained in:
2022-08-07 03:31:20 +00:00
parent dc33d17e92
commit a3b393c70a
2 changed files with 10 additions and 4 deletions

View File

@@ -229,12 +229,10 @@
(set s.mouseStartDragCallback
->:Void [s x y]
(let [s (cast s KissExtendedSprite)]
// Bring currently held pieces to the front:
(rewardSprites.bringToFront s)
(set s.priorityID (+ 1 .priorityID (last (the kiss.List<KissExtendedSprite> rewardSprites.members))))
(let [connectedPieces (recursivelyConnectedPieces s)]
(doFor connected connectedPieces
(rewardSprites.bringToFront connected))
// Bring currently held pieces to the front:
(rewardSprites.bringAllToFront (cast (concat [s] connectedPieces)))
(set s.connectedSprites connectedPieces))
(set draggingSprite s)
(set draggingLastPos (new FlxPoint s.x s.y))))

View File

@@ -8,6 +8,14 @@
(group.remove obj)
(group.insert 0 obj)))
(function :Void bringAllToFront <>[:FlxObject T] [:FlxTypedGroup<T> group :Array<T> arr]
(doFor s (group.members.copy)
(when (contains arr s) (bringToFront group s))))
(function :Void sendAllToBack <>[:FlxObject T] [:FlxTypedGroup<T> group :Array<T> arr]
(doFor s (reverse (group.members.copy))
(when (contains arr s) (sendToBack group s))))
(function :FlxRect calculateScreenBounds <>[:FlxSprite T] [:FlxTypedGroup<T> group &opt :FlxCamera camera :Float margin]
(unless margin (set margin 0))
(let [s (group.getFirstAlive)