Forgot to add GroupTools

This commit is contained in:
2022-07-01 23:38:39 +00:00
parent d78104f1f2
commit eb9112906c
2 changed files with 30 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
package kiss_flixel;
import kiss.Prelude;
import kiss.List;
import flixel.FlxObject;
import flixel.FlxState;
import flixel.math.FlxRect;
import flixel.math.FlxPoint;
import flixel.group.FlxGroup;
@:build(kiss.Kiss.build())
class GroupTools {}

View File

@@ -0,0 +1,18 @@
(function :FlxRect calculateBounds <>[:FlxObject T] [:FlxTypedGroup<T> group &opt :Float margin]
(unless margin (set margin 0))
(let [&mut minX 0
&mut maxX 0
&mut minY 0
&mut maxY 0
r (new FlxRect)]
(group.forEach ->object
(let [bounds (object.getRotatedBounds r)]
(set minX (min minX bounds.left))
(set minY (min minY bounds.top))
(set maxX (max maxX bounds.right))
(set maxY (max maxY bounds.bottom))))
(r.fromTwoPoints
(new FlxPoint (- minX margin) (- minY margin))
(new FlxPoint (+ maxX margin) (+ maxY margin)))))