[haxe][flixel] Add bounds property and removed boundsX and boundsY.

This commit is contained in:
Davide Tantillo 2025-10-09 10:06:02 +02:00
parent eae2e7d5a2
commit 0e42469d36
3 changed files with 21 additions and 14 deletions

View File

@ -29,6 +29,7 @@
package flixelExamples; package flixelExamples;
import spine.boundsprovider.SkinsAndAnimationBoundsProvider;
import flixel.ui.FlxButton; import flixel.ui.FlxButton;
import flixel.FlxG; import flixel.FlxG;
import spine.flixel.SkeletonSprite; import spine.flixel.SkeletonSprite;
@ -56,8 +57,8 @@ class BasicExample extends FlxState {
var animationStateData = new AnimationStateData(skeletondata); var animationStateData = new AnimationStateData(skeletondata);
animationStateData.defaultMix = 0.25; animationStateData.defaultMix = 0.25;
skeletonSprite = new SkeletonSprite(skeletondata, animationStateData); skeletonSprite = new SkeletonSprite(skeletondata, animationStateData, new SkinsAndAnimationBoundsProvider("walk", null));
// skeletonSprite.state.setAnimationByName(0, "walk", true); skeletonSprite.state.setAnimationByName(0, "walk", true);
skeletonSprite.screenCenter(); skeletonSprite.screenCenter();
add(skeletonSprite); add(skeletonSprite);

View File

@ -66,11 +66,13 @@ class BoundsProviderExample extends FlxState {
skeletonSpriteClipping.screenCenter(); skeletonSpriteClipping.screenCenter();
skeletonSpriteClipping.x = FlxG.width / 4; skeletonSpriteClipping.x = FlxG.width / 4;
add(skeletonSpriteClipping); add(skeletonSpriteClipping);
var bounds = skeletonSpriteClipping.bounds;
var textClipping = new FlxText(); var textClipping = new FlxText();
textClipping.text = "Bounds with clipping"; textClipping.text = "Bounds with clipping";
textClipping.size = 12; textClipping.size = 12;
textClipping.x = skeletonSpriteClipping.boundsX + skeletonSpriteClipping.width / 2 - textClipping.width / 2; textClipping.x = bounds.x + skeletonSpriteClipping.width / 2 - textClipping.width / 2;
textClipping.y = skeletonSpriteClipping.boundsY + skeletonSpriteClipping.height + 20; textClipping.y = bounds.y + skeletonSpriteClipping.height + 20;
textClipping.setBorderStyle(FlxTextBorderStyle.OUTLINE, FlxColor.RED, 2); textClipping.setBorderStyle(FlxTextBorderStyle.OUTLINE, FlxColor.RED, 2);
add(textClipping); add(textClipping);
@ -79,11 +81,13 @@ class BoundsProviderExample extends FlxState {
skeletonSpriteNoClipping.screenCenter(); skeletonSpriteNoClipping.screenCenter();
skeletonSpriteNoClipping.x = FlxG.width / 4 * 3; skeletonSpriteNoClipping.x = FlxG.width / 4 * 3;
add(skeletonSpriteNoClipping); add(skeletonSpriteNoClipping);
var bounds = skeletonSpriteNoClipping.bounds;
var textNoClipping = new FlxText(); var textNoClipping = new FlxText();
textNoClipping.text = "Bounds without clipping"; textNoClipping.text = "Bounds without clipping";
textNoClipping.size = 12; textNoClipping.size = 12;
textNoClipping.x = skeletonSpriteNoClipping.boundsX + skeletonSpriteNoClipping.width / 2 - textNoClipping.width / 2; textNoClipping.x = bounds.x + skeletonSpriteNoClipping.width / 2 - textNoClipping.width / 2;
textNoClipping.y = skeletonSpriteNoClipping.boundsY + skeletonSpriteNoClipping.height + 20; textNoClipping.y = bounds.y + skeletonSpriteNoClipping.height + 20;
textNoClipping.setBorderStyle(FlxTextBorderStyle.OUTLINE, FlxColor.RED, 2); textNoClipping.setBorderStyle(FlxTextBorderStyle.OUTLINE, FlxColor.RED, 2);
add(textNoClipping); add(textNoClipping);

View File

@ -81,8 +81,9 @@ class SkeletonSprite extends FlxTypedGroup<FlxObject> {
public var y(default, set) = 0.; public var y(default, set) = 0.;
public var width(get, set):Float; public var width(get, set):Float;
public var height(get, set):Float; public var height(get, set):Float;
public var boundsX(get, never):Float;
public var boundsY(get, never):Float; /** The bounds of the gameobject. */
public var bounds(get, never):Rectangle;
@:isVar @:isVar
public var scale(never, set):FlxPoint; public var scale(never, set):FlxPoint;
@ -403,12 +404,13 @@ class SkeletonSprite extends FlxTypedGroup<FlxObject> {
return __bounds.height; return __bounds.height;
} }
function get_boundsX():Float { function get_bounds():Rectangle {
return __objectBounds.x; var bounds = new Rectangle();
} bounds.x = __objectBounds.x;
bounds.y = __objectBounds.y;
function get_boundsY():Float { bounds.width = __objectBounds.width;
return __objectBounds.y; bounds.height = __objectBounds.height;
return bounds;
} }
// ============================================================ // ============================================================