Skip to content

Commit

Permalink
fix transition sprite graphic classes on html5 (#396)
Browse files Browse the repository at this point in the history
* fix transition sprite graphic classes on html5

* include transition sprites

* keep onLoad arg

* prevent crash on invalid transition asset

* reduce memory used for diagonal fade

* prevent double fade transition effect updates
  • Loading branch information
Geokureli authored Jul 27, 2023
1 parent c756161 commit ceb2670
Show file tree
Hide file tree
Showing 8 changed files with 174 additions and 142 deletions.
Binary file modified assets/images/transitions/circle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/transitions/diagonal_gradient.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/transitions/diamond.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/transitions/square.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 54 additions & 1 deletion flixel/addons/transition/FlxTransitionSprite.hx
Original file line number Diff line number Diff line change
@@ -1,14 +1,63 @@
package flixel.addons.transition;

import flixel.addons.transition.FlxTransitionSprite.TransitionStatus;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.addons.transition.FlxTransitionSprite;
import flixel.graphics.FlxGraphic;
import flixel.math.FlxPoint;
import flixel.system.FlxAssets.FlxGraphicAsset;
import flixel.util.FlxTimer;
import openfl.display.BitmapData;

#if html5
@:keep @:bitmap("assets/images/transitions/circle.png")
private class RawGraphicTransTileCircle extends BitmapData {}
class GraphicTransTileCircle extends RawGraphicTransTileCircle
{
static inline var WIDTH = 544;
static inline var HEIGHT = 32;

public function new(?onLoad)
{
super(WIDTH, HEIGHT, true, 0xFFffffff, onLoad);
// Set properties because `@:bitmap` constructors ignore width/height
this.width = WIDTH;
this.height = HEIGHT;
}
}

@:keep @:bitmap("assets/images/transitions/diamond.png")
private class RawGraphicTransTileDiamond extends BitmapData {}
class GraphicTransTileDiamond extends RawGraphicTransTileDiamond
{
static inline var WIDTH = 544;
static inline var HEIGHT = 32;

public function new(?onLoad)
{
super(WIDTH, HEIGHT, true, 0xFFffffff, onLoad);
// Set properties because `@:bitmap` constructors ignore width/height
this.width = WIDTH;
this.height = HEIGHT;
}
}

@:keep @:bitmap("assets/images/transitions/square.png")
class RawGraphicTransTileSquare extends BitmapData {}
class GraphicTransTileSquare extends RawGraphicTransTileSquare
{
static inline var WIDTH = 544;
static inline var HEIGHT = 32;

public function new(?onLoad)
{
super(WIDTH, HEIGHT, true, 0xFFffffff, onLoad);
// Set properties because `@:bitmap` constructors ignore width/height
this.width = WIDTH;
this.height = HEIGHT;
}
}
#else
@:keep @:bitmap("assets/images/transitions/circle.png")
class GraphicTransTileCircle extends BitmapData {}

Expand All @@ -17,6 +66,7 @@ class GraphicTransTileDiamond extends BitmapData {}

@:keep @:bitmap("assets/images/transitions/square.png")
class GraphicTransTileSquare extends BitmapData {}
#end

/**
*
Expand Down Expand Up @@ -45,6 +95,9 @@ class FlxTransitionSprite extends FlxSprite
}
_delay = Delay;
loadGraphic(Graphic, true, GraphicWidth, GraphicHeight);

if (graphic == null)
return;

graphic.persist = true;
graphic.destroyOnNoUse = false;
Expand Down
7 changes: 0 additions & 7 deletions flixel/addons/transition/Transition.hx
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,10 @@ class Transition extends FlxSubState
add(_effect);
}

override public function update(elapsed:Float):Void
{
super.update(elapsed);
_effect.update(elapsed);
}

public override function destroy():Void
{
super.destroy();
finishCallback = null;
_effect.destroy();
_effect = null;
}

Expand Down
Loading

0 comments on commit ceb2670

Please sign in to comment.