flame 1.11.0 flame: ^1.11.0 copied to clipboard
A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.
1.11.0 #
Note: This release has breaking changes.
- FIX: Minor issues due Flutter 3.16 (#2856). (d51cd584)
- FIX: Properly resize ScreenHitbox when needed (#2826). (24fed757)
- FIX: Setting world on FlameGame camera setter (#2831). (3a8e2464)
- FIX: Allow null passthrough parent (#2821). (c4d2f86e)
- FIX: Do not scale debug texts with zoom (#2818). (c2f3f040)
- FIX(flame): Export
FixedResolutionViewport
and makewithFixedResolution
a redirect constructor (#2817). (3420d0e6) - FEAT: Using viewport scale on debug mode text paint (#2883). (07ef46ca)
- FEAT: Make Viewfinder and Viewport comply with CoordinateTransform interface (#2872). (685e1d95)
- FEAT: Allow sequence effect to be extended (#2864). (ee11aae9)
- FEAT: Adding children argument to all constructors in the shape components (#2862). (082743d3)
- FEAT: Optimization in sprite batch (#2861). (208d7897)
- FEAT: Add TimeTrackComponent and ChildCounterComponent (#2846). (6269551a)
- FEAT: MoveAlongPathEffect should maintain initial angle of the component (#2835). (e6e78c0d)
- FEAT: Add a method to adapt the camera bounds to the world (#2769). (87b69df6)
- FEAT: Scaling particle feature (#2830). (9faae8a2)
- BREAKING REFACTOR: Replace
Offset
withopacityFrom
andopacityTo
in ColorEffect (#2876). (0fd2662d) - BREAKING FIX: Add DisplacementEvent to fix delta coordinate transformations for drag events (#2871). (63994ebc)
Migration instructions #
To specify start and end opacities for ColorEffect use the optional named parameters opacityFrom and opacityTo. So offset.dx should be set as opacityFrom and offset.dy should be set as opacityTo.
- If you are using DragUpdateEvent events, the devicePosition, canvasPosition, localPosition, and delta are deprecated as they are unclear.
- Use xStartPosition to get the position at the start of the drag event ("from").
- Use xEndPosition to get the position at the end of the drag event ("to").
- If you want the delta, use localDelta. it now already considers the camera zoom. No need to manually account for that.
- Now you keep receiving drag events for the same component even if the drag event leaves the component (breaking).
1.10.1 #
- FIX: Properly resize ScreenHitbox when needed (#2826). (24fed757)
- FIX: Setting world on FlameGame camera setter (#2831). (3a8e2464)
- FIX: Allow null passthrough parent (#2821). (c4d2f86e)
- FIX: Do not scale debug texts with zoom (#2818). (c2f3f040)
- FIX(flame): Export
FixedResolutionViewport
and makewithFixedResolution
a redirect constructor (#2817). (3420d0e6) - FEAT: Scaling particle feature (#2830). (9faae8a2)
1.10.0 #
- REFACTOR: Remove unnecessary 'async' keyword across the codebase [DCM] (#2803). (2dfe0e5a)
- REFACTOR: Avoid nested conditional expressions whenever possible [DCM] (#2784). (7b6a5712)
- REFACTOR: Mark semantically final variables as final (or const) proper [DCM] (#2783). (71f7b475)
- FIX: Remove deprecations for 1.10.0 (#2809). (5b67b8f1)
- FIX: Un-register component keys down the component tree (#2792). (0f679b3f)
- FIX: AlignComponent set child (remove compare) (#2774). (20aaf656)
- FIX: Hardcode initCurrentGame lifecycle state as resumed (#2775). (0cd5037c)
- FIX: Fix TextBoxComponent alignment bug (#2781). (0fb53efb)
- FIX(flame): The
component.removeFromParent
method should useparent.remove
internally (#2779). (bdb1c79a) - FIX: Take unmounted adds into consideration (#2770). (be28a440)
- FEAT: Add
IgnoreEvents
mixin to ignore events for the whole subtree (#2811). (313411c3) - FEAT: Add advanced button component (#2742). (97fff0ed)
- FEAT: Introduce the
FixedResolutionViewport
(#2796). (4c762f94) - FEAT: AssetsBundle can be customized in Images and AssetsCache. (#2807). (a23f80e9)
- FEAT: Backdrop (static backgrounds) component for CameraComponent (#2787). (ab329f71)
- FEAT: Align component refactoring (#2767). (bde34efe)
- DOCS: Remove last broad cSpell bypass regex and fix all violations (#2802). (9b16b178)
1.9.1 #
1.9.0 #
Note: This release has breaking changes.
- REFACTOR: Enable DCM linting (#2667). (27a8fd61)
- REFACTOR: Fix lint issues across the codebase - Part 2 (#2677). (10e4109c)
- FIX: Prevent
onRemove
/onDetach
being called for initial Gesture Detector addition (#2653). (d1721464) - FIX: Use root game for gestures (#2756). (f5d0cb38)
- FIX: Add possibility to remove a child and add it to the same parent (#2755). (285d31ab)
- FIX: Adding scale parameter to RectangleComponent constructors (#2730). (173908d9)
- FIX: Set
CameraComponent.priority
to max (#2732). (820ece1c) - FIX: Change to
FilterQuality.medium
instead ofhigh
(#2733). (fc19890c) - FIX: Avoid creating new
Vector2
inglobalToLocal
andlocalToGlobal
(#2727). (9fb3bf8d) - FIX: Ambiguation is not needed in render box anymore (#2711). (b3d78f58)
- FIX: HasGameReference should default to FlameGame (#2710). (93dcb3a1)
- FIX: Make
debugCoordinatesPrecision
into a variable instead of a getter (#2713). (9918c051) - FIX: Absolute angle takes into account BodyComponent ancestors too (#2678). (75aee767)
- FEAT: SpawnComponent (#2709). (83f5ea45)
- FEAT: Add globalToLocal and localToGlobal methods to viewport, viewfinder and camera (#2720). (00185a3b)
- FEAT: Add HoverCallbacks (#2706). (d460b846)
- FEAT: Add
onDispose
togame.dart
called fromgame_widget.dart
(#2659). (2f44e483) - FEAT(flame): Add helper methods to create frame data on
SpriteSheet
(#2754). (47722199) - FEAT: Implement Snapshot mixin on PositionComponent (#2695). (c1ee24a2)
- FEAT: Add TextElementComponent (#2694). (10fb65f6)
- FEAT: Component visibility (HasVisibility mixin) (#2681). (76405daf)
- FEAT: Add
HasWorldReference
mixin (#2746). (9105411d) - FEAT: Add
pause
andisPaused
to SpriteAnimationTicker (#2660). (37271f5c) - DOCS: Improve documentation around SpriteFontTextFormatter (#2661). (8401c569)
- DOCS: Improved spellchecking (#2722). (2f973abe)
- DOCS: Enable CSpell on tests (#2723). (e051298c)
- DOCS: Improve comments and documentation for text-rendering Nodes (#2662). (96978e24)
- DOCS: Fix examples for v1.9.0 (#2757). (152fbb61)
- BREAKING REFACTOR: Rename (Text) Elements, Nodes and Styles for clarity, add docs (#2700). (4b420b79)
- BREAKING REFACTOR: Extract TextRendererFactory (#2680). (eeb6749f)
- BREAKING REFACTOR: Make TextElement more usable on its own (#2679). (1a64443c)
- BREAKING REFACTOR: Simplify text rendering pipeline (#2663). (34f69b95)
- BREAKING REFACTOR: Kill TextRenderer, Long Live TextRenderer (#2683). (a1cb9a06)
- BREAKING FIX: Update should be called before render in first tick (#2714). (51932c09)
- BREAKING FEAT: Move
Forge2DGame
to useCameraComponent
(#2728). (7a3d5126) - BREAKING FEAT: Pause game when backgrounded (#2642). (521e56b6)
- BREAKING FEAT: Add CameraComponent to FlameGame (#2740). (7c2f4000)
Migration instructions #
In this release the old camera system was renamed to oldCamera
and replaced by a default
World
and a CameraComponent
which is now named camera
.
To migrate from the old system:
-
Instead of adding the components directly to your game with
add
, add them to the world, this will make theCameraComponent
responsible for rendering them instead of the game directly.world.add(yourComponent);
-
(Optional) If you want to add a HUD component, instead of using PositionType, add the component as a child of the viewport.
cameraComponent.viewport.add(yourHudComponent);
-
(Optional) If you want to have a specificly set up
CameraComponent
in your game from the start you can pass in a camera to the constructor.class MyGame extends FlameGame { MyGame() : super( camera: CameraComponent.withFixedResolution( width: 800, height: 600, ), );
-
(Optional) A lot of the time it is no longer necessary to extend
FlameGame
, you can instead build your game or level by extending theWorld
and pass it in to theFlameGame
.runApp( GameWidget(game: FlameGame(world: MyWorld()), ); class MyWorld extends World with TapCallbacks { @override Future<void> onLoad() async { // Load your components } @override void onTapDown(TapDownEvent event) { print(event.localPosition); // Position of the tap in the world } }
1.8.2 #
Note: This release has breaking changes.
- PERF: Improve performance of raycasts (#2617). (8e0a7879)
- FIX: Reset _completeCompleter in ticker (#2636). (a35d3a10)
- FIX: Viewport should recieve events before the world (#2630). (e852064e)
- FIX: Use
ComponentKey
s to keep track of dispatchers (#2629). (ff59aa15) - FIX: FlameGame onRemove fix to prevent memory leak (#2602). (dac2ebbf)
- FIX: Only use pre-set ReadonlySizeProvider for sizing in HudMarginComponent (#2611). (832c0510)
- FIX: TextBoxConfig dismissDelay to not be ignored (#2607). (1567b389)
- FEAT: Adding key argument to shape components (#2632). (c542d3c3)
- FEAT: Add optional world input to
CameraComponent.canSee
(#2616). (1cad0b23) - FEAT: Add a Circle.fromPoints utility method (#2603). (a83f2815)
- FEAT: Add a midpoint getter to LineSegment (#2605). (1f9f3509)
- FEAT: Add Rectangle.fromLTWH and Rect.toFlameRectangle utility methods (#2604). (76271cee)
- DOCS: Add more guidance to collision detection algorithm choices (#2624). (781e8983)
- BREAKING PERF: Pool
CollisionProspect
s and remove some list creations from the collision detection (#2625). (e430b6cd) - BREAKING FEAT: Make world nullable in
CameraComponent
(#2615). (14f51635)
1.8.1 #
Note: This release has breaking changes.
- FIX: Adds a check to confirm the component is not loaded (#2579). (985400f2)
- FIX: Animation ticker readability improvements (#2578). (667a1698)
- FIX: Remove
mustCallSuper
fromonComponentTypeCheck
(#2561). (bcae760c) - FIX: Update sdk constraints to >=3.0.0 (#2554). (2f71e06e)
- FIX: Reduce the Vector2 creations in Anchor (#2550). (5a9434b0)
- FIX: Fix disappearing text on TextBoxComponent for larger pixelRatios (#2540). (6e1d5466)
- FEAT: Option to prevent propagating collision events from ShapeHitbox to _hitboxParent (#2594). (a58d7436)
- FEAT: Adding filterQuality arguments to Parallax load methods (#2596). (ff3d9107)
- FEAT: Option to use toImageSync in ImageComposition class (#2593). (66d5f97d)
- FEAT: ComponentKey API (#2566). (b3efb612)
- FEAT(flame): Set a default negative priority on the world for general use (#2572). (390e9700)
- FEAT: Add useful methods to Rectangle class (#2562). (4710530b)
- BREAKING FIX: Convert PositionEvent.canvasPosition to local coordinates (#2598). (87139c85)
1.8.0 #
Note: This release has breaking changes.
- FIX: Update sdk constraints to >=3.0.0 (#2554). (2f71e06e)
- FIX: Reduce the Vector2 creations in Anchor (#2550). (5a9434b0)
- FIX: Fix disappearing text on TextBoxComponent for larger pixelRatios (#2540). (6e1d5466)
- FIX: Avoid the creation of Vector2 objects in Parallax update (#2536). (3849f07d)
- FIX: Solve warnings from 3.10.0 analyzer (#2532). (b41622db)
- FIX: Move
errorBuilder
andloadingBuilder
to constructors (#2526). (55ec0bc3) - FEAT: Add onComplete callback to
AnimationWidget
(#2515). (0b68be8a) - FEAT: Add
stepEngine
toGame
(#2516). (1ed2c5a2) - FEAT: Customise grid of NineTileBox (#2495). (a25b0a03)
- FEAT: Accept
CollisionType
in hitbox constructor (#2509). (89926227) - DOCS: Update content types of sphinx code snippets (#2519). (306ad320)
- BREAKING REFACTOR: Move
CameraComponent
and events out of experimental (#2505). (87b8a067) - BREAKING FEAT: Add
SpriteAnimationTicker
(#2457). (a50c80cf)
Migration instructions #
In the future (maybe as early as v1.9.0) this camera will be removed, please use the CameraComponent instead.
This is the simplest way of using the CameraComponent:
-
Add variables for a CameraComponent and a World to your game class
final world = World(); late final CameraComponent cameraComponent;
-
In your
onLoad
method, initialize the cameraComponent and add the world to it.@override void onLoad() { cameraComponent = CameraComponent(world: world); addAll([cameraComponent, world]); }
-
Instead of adding the root components directly to your game with
add
, add them to the world.world.add(yourComponent);
-
(Optional) If you want to add a HUD component, instead of using PositionType, add the component as a child of the viewport.
cameraComponent.viewport.add(yourHudComponent);
1.7.3 #
- REFACTOR: Make atlas status to be more readable (#2502). (643793d0)
- REFACTOR: Add new lint rules (#2477). (dbda37b8)
- FIX: Reverse invalid polygon definitions (#2503). (c4c516eb)
- FIX: Fill in mount implementation in
HasTappables
(#2496). (d51a612f) - FIX: Modify size only if changed while auto-resizing (#2498). (aa8d49da)
- FIX: RecycleQueue cannot extends and implements Iterable at the same time (#2497). (3e5be3d6)
- FIX: Remove memory leak when creating the image from PictureRecorder (#2493). (a66f2bc0)
- FEAT: Bump ordered_set version (#2500). (81303ea9)
- FEAT: Deprecate
Component.changeParent
(#2478). (bd3e7886)
1.7.2 #
1.7.1 #
1.7.0 #
Note: This release has breaking changes.
- REFACTOR: Remove "items" variable from core Broadphase class. (#2284). (1819c575)
- REFACTOR: Added ComponentTreeRoot (#2300). (619b9b15)
- REFACTOR: Simplify how images.dart decodes images (#2293). (b4925423)
- REFACTOR: Use variable name on toString in component_test.dart (#2377). (f5c0e5e9)
- REFACTOR: Remove unused variable "tapTimes" from multi_touch_tap_detector_test.dart (#2379). (cd2b2a10)
- REFACTOR: Component rebalancing is now performed via a global queue (#2352). (1ef51879)
- REFACTOR: Component adoption now handled via ComponentTreeRoot (#2332). (5ceb5dda)
- FIX: Auto-resize
SpriteComponent
on sprite change (#2430). (158460d7) - FIX: Update MoveAlongPathEffect (#2422). (295cd724)
- FIX: Removed component to be deleted from _broadphaseCheckCache (#2282). (236a74ce)
- FIX: TextBoxComponent rendering for new line (#2413). (9008998e)
- FIX: Buttons in ButtonComponents should not be final (#2410). (55f66add)
- FIX: Set size of viewports in
onLoad
(#2452). (d1ac01f5) - FIX: Incorrect JoystickComponent position in landscape mode #2387 (#2389). (f125593a)
- FIX: RouterComponent replace methods to correctly handle previous/nextRoute (#2296). (2b1f2266)
- FIX: Use the hitboxParent instead of the parent in the componentTypeCheck (#2335). (7920e2ba)
- FIX: Materialize list in
Component.removeWhere
(#2458). (13cce4ae) - FIX: TextBoxComponent's boxConfig timePerChar generates "Optimized Out" error #2143 (#2328). (5874f600)
- FIX: Camera no longer "sticks" to boundary with BoundedPositionBehavior (#2307). (914dc6a7)
- FEAT: Add reusable vector to the Vector2 extension (#2429). (03d45df5)
- FEAT: Change
HasCollisionDetection
to be onComponent
(#2404). (637c258b) - FEAT: Added AlignComponent layout component (#2350). (4f5e56f0)
- FEAT: Add
autoResize
forSpriteAnimationComponent
andSpriteAnimationGroupComponent
(#2453). (dbeba238) - FEAT: Adding ImageExtension.resize (#2418). (a3f1601d)
- FEAT: Add position and anchor params for Sprite and SpriteAnimation Particles (#2370). (181e0b59)
- FEAT: Add
autoResize
forSpriteGroupComponent
(#2442). (1576bd83) - FEAT: Introduce flame_noise, deprecate NoiseEffectController (#2393). (b2fdf06a)
- FEAT: Added HardwareKeyboardDetector (#2257). (95b1fc0f)
- FEAT: Allow people to opt-out on repaint boundary (#2341). (b6aeec24)
- FEAT: Add
HasTimeScale
mixin (#2431). (d2a8fe01) - FEAT: Add DoubleTapCallbacks that receives double-tap events. (#2327). (b5f79d1c)
- FEAT: Add ability to opt-out flip (#2316). (34c3b6bd)
- FEAT: Make
limit
field mutable in theTimer
class (#2358). (4e0a8c46) - DOCS: Rename caveace asset to cave_ace in our examples (#2304). (e2399f91)
- DOCS: Update cspell github action and configuration (#2325). (e0a4c07f)
- DOCS: Fix actual typos that made into our dictionary (#2305). (343b8452)
- DOCS: Add Flame logo for pub.dev (#2338). (65091f34)
- DOCS: Refactor documentation for GameWidget (#2344). (655824fc)
- DOCS: Update funding links (#2420). (8294a2a1)
- DOCS: Fix old doc code (#2322). (90321658)
- BREAKING REFACTOR: Use ComponentTreeRoot for component removal (#2317). (75446185)
- BREAKING FEAT: HasDraggableComponents mixin is no longer needed (#2312). (3faf1149)
- BREAKING FEAT: The
HasTappableComponents
mixin is no longer needed (#2450). (b5bdf4ec)
Migration instructions #
If you have components that rely on receiving onGameResize calls before they load, then you can retrieve the game's size in onLoad manually via findGame()!.size.
The HasDraggableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onDragStart, onDragUpdate, etc -- then they will no longer work. If you want to receive drag events at the top level of the game, then simply add a DragCallbacks component to the top level of the game.
The HasTappableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onTapDown, onTapUp, etc -- then they will no longer work. If you want to receive tap events at the top level of the game, then simply add a TapCallbacks component to the top level of the game.
1.6.0 #
Note: This release has breaking changes.
- PERF: Avoid Vector2 creation in
Sprite.render
(#2261). (736733d9) - FIX: Only use initialized game for tests and remove setMount from onGameResize (#2246). (2a0f1d4b)
- FIX: Re-use paint object in ImageParticle (#2210). (7a945d96)
- FIX: Depend on test: any for flame_test (#2207). (acfd418d)
- FEAT: Add a
canSee
method to theCameraComponent
(#2270). (2347c8f5) - FEAT: Add
moveBy
toCameraComponent
(#2269). (51e54ebe) - FEAT: Added computed property CameraComponent.visibleWorldRect (#2267). (f4b0e73f)
- DOCS: Update example to not create Rect objects (#2254). (a306338b)
- DOCS: Teh -> the (#2225). (ff7f36d0)
- BREAKING REFACTOR: The method
onLoad()
now returnsFutureOr<void>
(#2228). (d898b539) - BREAKING FEAT: Adds new route methods
pushReplacement
,pushReplacementNamed
, andpushReplacementOverlay
(#2249). (a2772b4e)
1.5.0 #
Note: This release has breaking changes.
- REFACTOR: OpacityEffect now uses opacity instead of alpha internally (#2064). (b3b67301)
- REFACTOR: Game render box cleanup (#1691). (60a5830d)
- FIX: Event mixins missing
@mustCallSuper
(#2036). (c26d5da3) - FIX: SpeedController advance() should execute after its effect's onStart() (#2173). (7a1e2e8b)
- FIX: Refresh vertices on size change of
RectangleComponent
(#2167). (4020d68b) - FIX: Fix coordinate system calculation in FixedAspectRationViewport (#2175). (c9c9881c)
- FIX: SpriteButtonComponent missing
@mustCallSuper
added (#2001). (45a9d79b) - FIX: Focus handling with a scope on the
GameWidget
(#1725). (d1cd8517) - FIX: RemoveEffect should work within SequenceEffect (#2110). (03e1f33d)
- FIX: #1966 unit test for
Particles
(#2097). (59bd7ebb) - FIX: OpacityEffect custom paint override (#2056). (fe9d4d9b)
- FIX: #1998 (#2013). (f63711dc)
- FIX: solid circles and polygons intersection (#2067). (62c5c2e1)
- FIX: #2017 (#2039). (7f546b0f)
- FIX: Exception when having multiple calls to dispose() function of a Svg instance (#2085). (a287904e)
- FIX: Add missing hitbox parameters (#2070). (8aacb555)
- FIX: Change
Vector2.zero()
toVector2(0, -1)
inVector2Extensions.fromRadians()
(#2016). (801c683c) - FEAT: Add children to
World
constructor (#2093). (3af416dc) - FEAT: Add paint layers to HasPaint and associated component renders (#2073). (9e6bf4fb)
- FEAT: Add SizeProvider to clip_component and custom_paint_component. (#2100). (bb710646)
- FEAT: Added HasGameReference mixin (#1828). (12ce270b)
- FEAT: Added toString method to all the drags events message handlers (#2014). (a34f1df7)
- FEAT: Add
maintainState
property to Route (#2161). (576ceaac) - FEAT: add onCancelled to ButtonComponent and HudButtonComponent (#2193). (e7f08906)
- FEAT: onComponentTypeCheck support for ShapeHitbox (#1981). (f840210b)
- FEAT: Added glow effect using maskFilter (#2129). (bcecd3c1)
- FEAT: Add support for styles propagating through the text node tree (#1915). (b5780d42)
- FEAT: Added SpriteFont class (#1992). (a0d7eada)
- FEAT: Added CameraComponent.withFixedResolution() constructor (#2176). (e289f118)
- FEAT: Add optional maxDistance to raycast (#2012). (6b78b10f)
- FEAT:
clampLength
forVector2
extension (#2190). (51a896b2) - FEAT: Adding onChildrenChanged (#1976). (3d043b86)
- FEAT: Adding ComponentNotifier API (#1889). (bd7f51f5)
- FEAT:
removed
future +isRemoved
field forComponent
(#2080). (9f322785) - BREAKING FIX: Correct coordinate system for a circular viewport (#2174). (93dc4325)
- BREAKING FIX: PolygonComponent no longer modifies _vertices (#2061). (8cd4793a)
- BREAKING FEAT: Add OpacityProvider (#2062). (0255cc32)
1.4.0 #
Note: This release has breaking changes.
-
REFACTOR: move broadphase-related functionality into separate subdirectory (#1943). (f23acd41)
-
REFACTOR: used simpler and more implicit widgets in GameWidget (#1862). (44d17c64)
-
PERF: SpriteAnimationWidget will re-render only when needed (#1876). (bb678301)
-
FIX: Hitbox children of a CompositeHitbox to return correct parent (#1922). (d518705e)
-
FIX: OpacityEffect rounding error calculation (#1933). (4cfcfa64)
-
FEAT: Make
_ButtonState
public for SpriteButtonComponent (#1941). (e80412c5) -
FEAT: Add possibility for solid hitboxes (#1919). (205ac561)
-
FEAT: Adding callbacks for EffectController (#1926) (#1931). (8dcdf155)
-
FEAT: Add lookAt method for PositionComponent (#1891). (720c3566)
-
FEAT: add applyLifespanToChildren to Particle generate (#1911). (884d5190)
-
FEAT: Add broadphase generics to CollisionDetection (#1908). (f7714122)
-
FEAT: Add support for isometric staggered maps (#1895). (96be8408)
-
FEAT: RecycledQueue now supports modification during iteration (#1884). (01b59493)
-
FEAT: Allow children of
ComposedParticle
to have varied lifespan (#1879). (6db519ec) -
FEAT: Possibility to ignore hitboxes for ray casting (#1863). (b22bc643)
-
DOCS: Added Style Guide and Test Writing Guide (#1897). (999caca1)
-
BREAKING FIX: Make all
ComponentSet
modifications internal (#1877). (f26a066d) Migration instructions: For most methods Component has the corresponding methods directly on it already. For example, instead of using component.children.addAll you should do component.addAll. -
BREAKING CHORE: Remove functions/classes that were scheduled for removal in v1.3.0 (#1867). (00ab347c) For each deleted function/method/class, the deprecation comment already specifies what functionality should be used instead.
1.3.0 #
Note: This release has breaking changes.
- REFACTOR: Use new "super"-constructors in ShapeComponents (#1752). (b69e8d85)
- REFACTOR: Game is now a class, not a mixin (#1751). (5225a4eb)
- PERF: Use TextElements within the TextComponent (#1802). (7b044430)
- PERF: Avoid unnecessary copy in AssetsCache.readBinaryFile (#1749). (7e79638d)
- FIX: ButtonComponent behavior when the engine is paused (#1726). (197e63d6)
- FIX: Correct flutter constraint (#1731). (c7383843)
- FIX: World component can now be queried with
componentsAtPoint
(#1739). (f750d705) - FIX: Merge basic and advanced gesture detectors (#1718). (f08f8e12)
- FIX: Correct key events in GameWidget.controller (#1745). (01ed2ec9)
- FIX: Camera incorrect follow with zoom and world boundaries. (c1756177)
- FIX: Add missing paint arguments on shapes (#1727). (e59f3428)
- FIX: Delay camera update (#1811). (a5598a8f)
- FIX: Overlays can now be properly added during onLoad (#1759). (9f35b154)
- FIX: SpriteAnimationWidget can now be update animation safely (#1738). (eb070195)
- FIX: JoystickComponent drags using the delta Viewport (#1831). (54e40de6)
- FIX: Specify size for the SpriteWidget (#1760). (82f75fcb)
- FEAT: New colors to palette.dart (#1783). (85cd60e1)
- FEAT: add
children
argument toSpriteComponent.fromImage
(#1793). (80a63362) - FEAT: Added Decorator class and HasDecorator mixin (#1781). (8d00847c)
- FEAT: Added TextFormatter classes (#1720). (c44272be)
- FEAT: Move to Flutter 3.0.0 and Dart 2.17.0 (#1713). (2a41d0d6)
- FEAT: Added Rotate3DDecorator (#1805). (f05194c8)
- FEAT: Added Shadow3DDecorator (#1812). (0a41b2da)
- FEAT: Add tertiary tap detector mixin (#1815). (e9e7b0d5)
- FEAT: Add
Ray2
class to be used in raytracing/casting (#1788). (26196c01) - FEAT: Added RouterComponent (#1755). (24092bd7)
- FEAT: Structured text and text styles (#1830). (bfdc3a29)
- FEAT: Drag events that dispatch using componentsAtPoint (#1715). (10669c12)
- FEAT: Added routes that can return a value (#1848). (f1b276e0)
- FEAT: PositionComponent now has a built-in Decorator (#1846). (8dd52c33)
- FEAT: add
HasAncestor
mixin (#1711). (987a44f4) - FEAT: Added ability to control overlays via the RouterComponent (#1840). (e2de70c9)
- FEAT: Add vector projection and inversion (#1787). (d197870f)
- DOCS: Klondike tutorial, part 4 (#1740). (02d0b71b)
- BREAKING REFACTOR: Matcher closeToVector() now accepts Vector2 as an argument (#1761). (c5083501)
- BREAKING PERF: Game.images/assets are now same as Flame.images/assets by default (#1775). (0ccb0e2e)
- BREAKING FEAT: Raycasting and raytracing (#1785). (ed452dd1)
1.2.1 #
Note: This release has breaking changes.
- REFACTOR: Game is now a class, not a mixin (#1751). (5225a4eb)
- REFACTOR: Use new "super"-constructors in ShapeComponents (#1752). (b69e8d85)
- PERF: Avoid unnecessary copy in AssetsCache.readBinaryFile (#1749). (7e79638d)
- FIX: Specify size for the SpriteWidget (#1760). (82f75fcb)
- FIX: SpriteAnimationWidget can now be update animation safely (#1738). (eb070195)
- FIX: Overlays can now be properly added during onLoad (#1759). (9f35b154)
- FIX: Camera incorrect follow with zoom and world boundaries. (c1756177)
- FIX: Correct key events in GameWidget.controller (#1745). (01ed2ec9)
- FIX: World component can now be queried with
componentsAtPoint
(#1739). (f750d705) - FIX: Correct flutter constraint (#1731). (c7383843)
- FIX: ButtonComponent behavior when the engine is paused (#1726). (197e63d6)
- FIX: Add missing paint arguments on shapes (#1727). (e59f3428)
- FIX: Merge basic and advanced gesture detectors (#1718). (f08f8e12)
- FEAT: New colors to palette.dart (#1783). (85cd60e1)
- FEAT: Added TextFormatter classes (#1720). (c44272be)
- FEAT: Drag events that dispatch using componentsAtPoint (#1715). (10669c12)
- FEAT: add
HasAncestor
mixin (#1711). (987a44f4) - FEAT: Move to Flutter 3.0.0 and Dart 2.17.0 (#1713). (2a41d0d6)
- DOCS: Klondike tutorial, part 4 (#1740). (02d0b71b)
- BREAKING PERF: Game.images/assets are now same as Flame.images/assets by default (#1775). (0ccb0e2e)
1.2.0 #
Note: This release has breaking changes.
-
REFACTOR: Remove unecessary copy operation on Camera (#1708). (94cc115a)
-
REFACTOR: Update and guarantee consistency on mocktail dev dependency version across repo (#1701). (f4a98878)
-
REFACTOR: Add onComplete as optional parameter (#1686). (4ca65f8a)
-
REFACTOR: Added MultiDragListener - common API between HasDraggables and MultiTouchDragDetector (#1668). (801dbba1)
-
REFACTOR: Simplify Component.firstChild, .lastChild, and .findParent (#1673). (84f2f57e)
-
REFACTOR: Replace some usages of fold<> with .sum (#1670). (dd05ecb6)
-
REFACTOR: Deprecate ComponentSet.createDefault() (#1676). (f37e3a20)
-
REFACTOR: Component's lifecycle futures moved into LifecycleManager (#1613). (39201c40)
-
REFACTOR: TextRenderer and TextPaint moved to separate files (#1628). (5e1f5966)
-
FIX: Fix tile flips when using canvas.drawAtlas (#1610). (b4ad498f)
-
FIX: Anchor equality operator is now more reliable (#1560). (0d6581ef)
-
FIX: Avoid leaks when using PictureRecorders (#1643). (d67065e5)
-
FIX: Remove nonVirtual method shouldRemove (#1707). (1efd067e)
-
FIX: Subscription for events when game changes in GameWidget (#1659). (04f0d5d1)
-
FIX: performance improvements on
SpriteBatch
APIs (#1637). (4b19a1b2) -
FIX: ParallaxComponent.update mustCallSuper (#1635). (9474ce74)
-
FIX: Isometric tile map component uses scale when getting block from position (#1569). (0c430786)
-
FIX: Dispose
TextBoxComponent
image cache properly (#1579). (c0e3257a) -
FIX: Component can now be removed in any lifecycle stage (#1601). (c0a14156)
-
FIX: RectangleHitbox should shrink to bounds (#1596). (60df3b9f)
-
FIX: Components in uninitialized state can now be safely removed (#1551). (ba617790)
-
FIX: Component.loaded future sometimes failed to complete (#1593). (89ee9b98)
-
FIX: Optimize AcceleratedParticle and MovingParticle (#1568). (5591c109)
-
FEAT: Method
componentsAtPoint
now reports the "stacktrace" of points (#1615). (e2398966) -
FEAT: Allow changing parent from null parent (#1662). (53268b5f)
-
FEAT: Callbacks in
HudButtonComponent
constructor andViewportMargin
mixin to avoid code duplication (#1685). (f55b2e0d) -
FEAT: Keep stacktrace when rethrowing an error from GameWidget (#1675). (dd28183b)
-
FEAT: Aligned text in the TextBoxComponent (#1620). (c64aedae)
-
FEAT: Included
completed
completer inSpriteAnimation
(#1564). (71999b19) -
FEAT: Add
isFirstFrame
andonStart
event toSpriteAnimation
(#1492). (701d0706) -
FEAT: Add
FpsComponent
andFpsTextComponent
(#1595). (4c68c2b0) -
FEAT: Added FollowBehavior and ability for the new Camera to follow a component (#1561). (b583388c)
-
FEAT: Added componentsAtPoint() iterable (#1518). (b99e3512)
-
FEAT: Added AnchorToEffect and AnchorByEffect (#1556). (eff72794)
-
FEAT: Added utility function solveCubic() (#1696). (31784ca0)
-
FEAT: add FutureOr support on SpriteButton (#1645). (2e82dc95)
-
FEAT: MoveAlongPathEffect can now be applied to any PositionProvider (#1555). (a0ff2d18)
-
FEAT: Add ability to add/remove multiple overlays at once (#1657). (0ac84c00)
-
FEAT: Helpers for whether a
PositionComponent
is flipped. (#1700). (cf67147e) -
FEAT: World bounds for a CameraComponent (#1605). (abb497ab)
-
FEAT: Implement tap events based on
componentsAtPoint
(#1661). (2711ba60) -
FEAT: add
ParentIsA
to force parent child relations (#1566). (2cdf3868) -
FEAT: Adding classes for raw geometric shapes (#1528). (666a2b19)
-
FEAT: Add solveQuadratic() utility function (#1665). (d8bbfc06)
-
FEAT: allow external packages to await for game to be loaded (#1699). (a15eda0b)
-
FEAT: Add range constructor on SpriteAnimationData (#1572). (e42b4958)
-
FEAT: Add helper function for creating golden tests (#1623). (d0faaada)
-
FEAT: Added ability to render spritesheet-based fonts (#1634). (3f287898)
-
BREAKING FIX:
FixedResolutionViewport
noClip -> clip (#1612). (02be4acd) -
BREAKING FEAT: Adding GameWidget.controlled (#1650). (7ef6a51e)
-
BREAKING FEAT: remove
onTimingsCallback
for Flutter 3.0 (#1626). (0761a79d) -
BREAKING FIX: Game.mouseCursor and Game.overlays can now be safely set during onLoad (#1498). (821d01c3) Migration instructions: The mouseCursor property is now a plain property with a setter, not a ChangeNotifier. Consequently, instead of writing game.mouseCursor.value = ..., one needs to write game.mouseCursor = ... now.
-
BREAKING FEAT: Added anchor for the Viewport (#1611). (c3bb14b7) Migration instructions: The coordinate system of the Viewport now always has the origin in the top-left corner of its bounding box (previously it was in the center) -- similar to the local coordinate system of a PositionComponent.
-
BREAKING FEAT: Add ability to render without loading on image related widgets (#1674). (40a061bc) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.
-
BREAKING FEAT: Size effects will now work only on components implementing SizeProvider (#1571). (1bfed571) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.
1.1.1 #
- REFACTOR: Added classes MoveByEffect and MoveToEffect (#1524). (2171a119)
- FIX: Invalidate polygon cache on resize (#1529). (11bf75d0)
- FIX: Bug with anchor parameter in Sprite.render() (#1508). (325df46e)
- FIX: Make CollisionProspect's a, b have unordered equality (#1519). (5b2471c8)
- FEAT: able to clear all overlays (#1536). (7b15c9a1)
- FEAT: Automatic Isometric Grid scaling (#1468). (cae8c0ce)
- FEAT: Added children parameter to Component constructor (#1525). (f0b31fcf)
- FEAT: Camera's Viewfinder can now be affected by rotation effects (#1527). (f46cae04)
- FEAT: Scale (zoom) effects can now be applied to Viewfinder in CameraComponent (#1514). (403b6e60)
- FEAT: adding HasGameRef.mockGameRef (#1520). (4f389f8b)
- FEAT: flame tests can now generate golden tests (#1501). (316a0b3b)
1.1.0 #
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
1.1.0-releasecandidate.6 #
- FIX: Only end collisions where there was a collision (#1471). (e1e87fc4)
- FIX:
debugMode
should be inherited from parent when mounted (#1469). (e894d201) - FEAT: Added method that returned descendants (#1461). (a41f5376)
- FEAT: Possibility to mark gesture events as handled (#1465). (4c3960c3)
- FEAT: adding loaded future to the component (#1466). (6434829b)
- FEAT: Deprecating Rect methods (#1455). (4ddd90aa)
- FEAT: Added .anchor property to CameraComponent.Viewfinder (#1458). (d51dc5e1)
- DOCS:
Rect
extension docs is out of date (#1451). (7e505722)
1.1.0-releasecandidate.5 #
1.1.0-releasecandidate.3 #
1.1.0-releasecandidate.2 #
Note: This release has breaking changes.
- REFACTOR: Loadable mixin no longer declares onMount and onRemove (#1243). (b1f6a34c)
- REFACTOR: Organize tests in the game/ folder (#1403). (102a27cc)
- REFACTOR: Clean up of top-level tests (#1386). (e50003ed)
- REFACTOR: Resize logic in GameRenderBox (#1308). (17c45c28)
- REFACTOR: Simplify GameWidgetState.loaderFuture (#1232). (eb30c2e5)
- REFACTOR: Component.ancestors() is now an iterator (#1242). (ce48d77a)
- REFACTOR: Add a few more rules to flame_lint, including use_key_in_widget_constructors (#1248). (bac6c8a4)
- REFACTOR: Removed parameter Component.updateTree({callOwnUpdate}) (#1224). (ed227e7c)
- REFACTOR: Remove Loadable, optional onLoads (#1333). (05f7a4c3)
- REFACTOR: Loadable no longer declares onGameResize (#1329). (20776e86)
- REFACTOR: Use canvas.drawImageNine in NineTileBox (#1314). (d77e5efe)
- PERF: Allow components to have null children (#1231). (66ad4b08)
- FIX: flame svg perfomance (#1373). (bce24173)
- FIX: Fix collision detection comments and typo (#1422). (dfeafdd6)
- FIX:
ParallaxComponent
should have staticpositionType
(#1350). (cfa6bd12) - FIX: Add missing
priority
argument forJoystickComponent
(#1227). (23b1dd8b) - FIX: Step time in SpriteAnimation must be positive (#1387). (08e8eac1)
- FIX: HudMarginComponent positioning on zoom (#1250). (4f0fb2de)
- FIX: Call onCollisionEnd on removal of Collidable (#1247). (5ddcc6f7)
- FIX: Both places should have
strictMode = false
(#1272). (72161ad8) - FIX: remove vector_math dependency (#1361). (56b33da2)
- FIX: Deprecate pause and resume in GameLoop (#1240). (dc37053f)
- FIX: Deprecate Images.decodeImageFromPixels (#1318). (1a80130c)
- FIX: Properly dispose images when cache is cleared (#1312). (825fb0cc)
- FIX: Fix SpriteAnimationWidget lifecycle (#1212). (86394dd3)
- FIX: redrawing bug in TextBoxComponent (#1279). (8bef4805)
- FIX: Add missing paint argument to
SpriteComponent.fromImage
(#1294). (254a60c8) - FIX: black frame when activating overlays (#1093). (85caf463)
- FIX:
prepareComponent
should never run again on a prepared component (#1237). (7d3eeb73) - FIX: Allow most basic and advanced gesture detectors together (#1208). (5828b6f3)
- FEAT: Added SpeedEffectController (#1260). (20f521f5)
- FEAT: Added SineEffectController (#1262). (c888703d)
- FEAT: Added ZigzagEffectController (#1261). (59adc5f3)
- FEAT: Add onReleased callback for HudButtonComponent (#1296). (87ee34ca)
- FEAT: Turn off
strictMode
for children (#1271). (6936e1d9) - FEAT:
onCollisionStart
forCollidable
andHitboxShape
(#1251). (9b95686b) - FEAT: adding has mounted to component (#1418). (f8f9e045)
- FEAT: Added NoiseEffectController (#1356). (fad9d1d5)
- FEAT: exporting cache classes (#1368). (3e058973)
- FEAT: Update scale events to contain pan info (#1327). (70b96b07)
- FEAT: Components are now always added in the correct order (#1337). (c753fc46)
- FEAT: Added
transform
toRect
(#1360). (1818be41) - FEAT: Camera as a component (#1355). (c61a1c18)
- FEAT: Effect.onComplete callback as an alternative to onFinish() (#1201). (932a8111)
- FEAT: Add RandomEffectController (#1203). (cdb2650b)
- FEAT:
Component.childrenFactory
can be used to set up a globalComponentSet
factory (#1193). (223ab758) - DOCS: Added documentation for GameLoop class (#1234). (b1d4e587)
- DOCS: Fix various dartdoc warnings (#1353). (9f096053)
- BREAKING REFACTOR: Separate ComponentSet from the Component (#1266). (e2655b88)
- BREAKING FIX: Remove pointerId from Draggable callbacks (#1313). (27adda17)
- BREAKING FEAT: Use a broadphase to make collision detection more efficient (#1252). (29dd09ca)
- BREAKING FEAT: Added SequenceEffect (#1218). (7c6ae6de)
1.1.0-releasecandidate.1 #
Note: This release has breaking changes.
- REFACTOR: Clean up of top-level tests (#1386). (e50003ed)
- REFACTOR: Remove Loadable, optional onLoads (#1333). (05f7a4c3)
- REFACTOR: Loadable no longer declares onGameResize (#1329). (20776e86)
- REFACTOR: Organize tests in the game/ folder (#1403). (102a27cc)
- REFACTOR: Use canvas.drawImageNine in NineTileBox (#1314). (d77e5efe)
- REFACTOR: Resize logic in GameRenderBox (#1308). (17c45c28)
- REFACTOR: Loadable mixin no longer declares onMount and onRemove (#1243). (b1f6a34c)
- REFACTOR: Removed parameter Component.updateTree({callOwnUpdate}) (#1224). (ed227e7c)
- REFACTOR: Add a few more rules to flame_lint, including use_key_in_widget_constructors (#1248). (bac6c8a4)
- REFACTOR: Component.ancestors() is now an iterator (#1242). (ce48d77a)
- REFACTOR: Simplify GameWidgetState.loaderFuture (#1232). (eb30c2e5)
- PERF: Allow components to have null children (#1231). (66ad4b08)
- FIX:
prepareComponent
should never run again on a prepared component (#1237). (7d3eeb73) - FIX: flame svg perfomance (#1373). (bce24173)
- FIX: Deprecate pause and resume in GameLoop (#1240). (dc37053f)
- FIX: Deprecate Images.decodeImageFromPixels (#1318). (1a80130c)
- FIX: Properly dispose images when cache is cleared (#1312). (825fb0cc)
- FIX: Add missing paint argument to
SpriteComponent.fromImage
(#1294). (254a60c8) - FIX: Add missing
priority
argument forJoystickComponent
(#1227). (23b1dd8b) - FIX: remove vector_math dependency (#1361). (56b33da2)
- FIX: redrawing bug in TextBoxComponent (#1279). (8bef4805)
- FIX: Fix SpriteAnimationWidget lifecycle (#1212). (86394dd3)
- FIX: black frame when activating overlays (#1093). (85caf463)
- FIX: Call onCollisionEnd on removal of Collidable (#1247). (5ddcc6f7)
- FIX: HudMarginComponent positioning on zoom (#1250). (4f0fb2de)
- FIX: Both places should have
strictMode = false
(#1272). (72161ad8) - FIX:
ParallaxComponent
should have staticpositionType
(#1350). (cfa6bd12) - FIX: Allow most basic and advanced gesture detectors together (#1208). (5828b6f3)
- FIX: Step time in SpriteAnimation must be positive (#1387). (08e8eac1)
- FEAT: Update scale events to contain pan info (#1327). (70b96b07)
- FEAT: Add RandomEffectController (#1203). (cdb2650b)
- FEAT: Components are now always added in the correct order (#1337). (c753fc46)
- FEAT: Effect.onComplete callback as an alternative to onFinish() (#1201). (932a8111)
- FEAT: exporting cache classes (#1368). (3e058973)
- FEAT: Added NoiseEffectController (#1356). (fad9d1d5)
- FEAT: Added SineEffectController (#1262). (c888703d)
- FEAT: Added SpeedEffectController (#1260). (20f521f5)
- FEAT: Added ZigzagEffectController (#1261). (59adc5f3)
- FEAT: Turn off
strictMode
for children (#1271). (6936e1d9) - FEAT:
onCollisionStart
forCollidable
andHitboxShape
(#1251). (9b95686b) - FEAT:
Component.childrenFactory
can be used to set up a globalComponentSet
factory (#1193). (223ab758) - FEAT: Added
transform
toRect
(#1360). (1818be41) - FEAT: Add onReleased callback for HudButtonComponent (#1296). (87ee34ca)
- DOCS: Fix various dartdoc warnings (#1353). (9f096053)
- DOCS: Added documentation for GameLoop class (#1234). (b1d4e587)
- BREAKING REFACTOR: Separate ComponentSet from the Component (#1266). (e2655b88)
- BREAKING FIX: Remove pointerId from Draggable callbacks (#1313). (27adda17)
- BREAKING FEAT: Added SequenceEffect (#1218). (7c6ae6de)
CHANGELOG #
[1.0.0] #
- Add
ButtonComponent
backed by twoPositionComponent
s - Add
SpriteButtonComponent
backed by twoSprite
s - Allow more flexible construction of
EffectController
s and make them able to run back in time - Remove old effects system
- Export new effects system
- Introduce
updateTree
to follow therenderTree
convention - Fix
Parallax.load
with different loading times - Fix render order of components and add tests
- Fix
HitboxCircle
when component is flipped - Add
ColorEffect
MoveAlongPathEffect
can now be absolute, and can auto-orient the object along the pathScaleEffect.by
now applies multiplicatively instead of additivelyisHud
replaced withPositionType
- Remove web fallback for
drawAtlas
in SpriteBatch, but added flaguseAtlas
to activate it
[1.0.0-releasecandidate.18] #
- Forcing portrait and landscape mode is now supported on web
- Fixed margin calculation in
HudMarginComponent
when using a viewport - Fixed position calculation in
HudMarginComponent
when using a viewport - Add noClip option to
FixedResolutionViewport
- Add a few missing helpers to SpriteAnimation
[1.0.0-releasecandidate.17] #
- Added
StandardEffectController
class - Refactored
Effect
class to useEffectController
, addedTransform2DEffect
class - Clarified
TimerComponent
example - Fixed pause and resume engines when
GameWidget
had rebuilds - Removed
runOnCreation
attribute in favor of thepaused
attribute onFlameGame
- Add
CustomPainterComponent
- Alternative implementation of
RotateEffect
, based onTransform2DEffect
- Alternative implementation of
MoveEffect
, based onTransform2DEffect
- Fix
onGameResize
margin bug inHudMarginComponent
PositionComponent.size
now returns aNotifyingVector2
- Possibility to manually remove
TimerComponent
- Rename
Hitbox
mixin toHasHitboxes
- Added
RemoveEffect
andSimpleEffectController
- Create default implementations of
RectangleComponent
,CircleComponent
andPolygonComponent
- Streamlined the argument list for all components extending
PositionComponent
- Improved interaction between viewport and isHud components
randomColor
method in theColor
extension- Calling super-method in
.render()
is now optional - Components that manipulate canvas state are now responsible for saving/restoring that state
- Remove
super.render
calls that are no longer needed - Fixed typo in error message
TextPaint
to useTextStyle
(material) instead ofTextPaintConfig
- Underlying
Shape
s inShapeComponent
transform with components position, size and angle HitboxShape
takes parents ancestors transformations into consideration (not scaling)- Fixed black frame when updating game widget (ex: adding overlays)
- Added possibility to extend
JoystickComponent
- Renamed
FlameTester
toGameTester
- Modified
FlameTester
to be specific forT extends FlameGame
- Improved
TimerComponent
- Removed methods
preRender()
andpostRender()
inComponent
- Use
FlameTester
everywhere where it makes sense in the tests - Improved
IsometricTileMap
- Fix
PositionComponent
'sflipHorizontallyAroundCenter
andflipVerticallyAroundCenter
- Initialization of all
PositionComponent
s can be done fromonLoad
instead of the constructor - Rename
HasTappableComponents
toHasTappables
- Rename
HasDraggableComponents
toHasDraggables
- Rename
HasHoverableComponents
toHasHoverableis
- Added
SizeEffect
backed by the new effects engine - Added
ScaleEffect
backed by the new effects engine - Added
OpacityEffect
backed by the new effects engine - Update
OrderedSet
to 4.1.0 - Update
OrderedSet
to 5.0.0
[1.0.0-releasecandidate.16] #
changePriority
no longer breaks game loop iteration- Move component mixin checks to their own files
- Fix exception when game was rebuilt
- Add
@mustCallSuper
onComponent.render
- Add
SpriteSheet.createAnimationVariable
method to allow animations with differentstepTime
for each sprite - Use the full delta in
JoystickComponent
so that it can't go to the wrong direction on the wrong side - Improved the menu for documentation version selection
- Introduce
onDoubleTapDown
with info andonDoubleTapCancel
- Changed
onHoverEnter
andonHoverLeave
to returnbool
(breaking change) - Improved "move effect" example in the Dashbook
- Use documentation versions generated from flame-docs-site
[1.0.0-releasecandidate.15] #
- Fix issue with
Draggable
s not being removed fromdraggables
list - Increase Flutter SDK constraint to
>= 2.5.0
. - Method
PositionComponent.toRect()
now works for flipped/rotated components. - Make the root bundle exposed via
Flame.bundle
actually configurable - Take in an optional
Camera
as a parameter toFlameGame
- Make super.onLoad mandatory to avoid memory leaks
QueryableOrderedSet
'sstrictMode
is configurable so it is no longer necessary to callregister
beforequery
- Add option to rotate
SpriteWidget
- Fix bug where
onRemove
was called during resizing - Add
onAttach
andonDetach
toGame
[1.0.0-releasecandidate.14] #
- Reset effects after they are done so that they can be repeated
- Remove integrated joystick buttons
- Add
MarginHudComponent
, used when components need to have a margin to the viewport edge - Refactor
JoystickComponent
- Add
SpriteAnimationWidget.asset
- Add
SpriteWidget.asset
- Add
SpriteButton.asset
- Add
NineTileBox.asset
- Fix resolution of
TextBoxComponent
- Add
BaseGame.remove
andBaseGame.removeAll
helpers for removing components - Add
BaseComponent.remove
andBaseComponent.removeAll
helpers for removing children - Rename
Camera.cameraSpeed
toCamera.speed
- Rename
addShape
toaddHitbox
inHitbox
mixin - Fix bug with Events and Draggables
- Add generics to components with HasGameRef so that they can be extended and have another gameRef
- Fix parallax fullscreen bug when game is resized
- Generalize
paint
usage on components - Create
OpacityEffect
- Create
ColorEffect
- Adding ability to pause
SpriteAnimationComponent
- Adding
SpriteGroupComponent
- Fix truncated last frame in non-looping animations
- Default size of
SpriteComponent
issrcSize
instead of spritesheet size - Export test helper methods
- Rename
ScaleEffect
toSizeEffect
- Introduce
scale
onPositionComponent
- Add
ScaleEffect
that works onscale
instead ofsize
- Add class
NotifyingVector2
- Add class
Transform2D
- Added helper functions
testRandom()
andtestWidgetsRandom()
- Remove
FPSCounter
fromBaseGame
- Refactor
PositionComponent
to work withTransform2D
: the component now works more reliably when nested - Properties
renderFlipX
,renderFlipY
removed and replaced with methodsflipHorizontally()
andflipVertically()
. - Method
.angleTo
removed as it was not working properly. - In debug mode
PositionComponent
now displays an indicator for the anchor position. - Update
Camera
docs to showcase usage withGame
class - Fixed a bug with
worldBounds
being set tonull
inCamera
- Remove
.viewport
fromBaseGame
, usecamera.viewport
instead MockCanvas
is now strongly typed and matches numeric coordinates up to a tolerance- Add
loadAllImages
toImages
, which loads all images from the prefixed path - Reviewed the keyboard API with new mixins (
KeyboardHandler
andHasKeyboardHandlerComponents
) - Added
FocusNode
on the game widget and improved keyboard handling in the game. - Added ability to have custom mouse cursor on the
GameWidget
region - Change sprite component to default to the Sprite size if not provided
TextBoxComponent
waits for cache to be filled ononLoad
TextBoxComponent
can have customizablepixelRatio
- Add
ContainsAtLeastMockCanvas
to facilitate testing withMockCanvas
- Support for
drawImage
forMockCanvas
Game
is now aComponent
ComponentEffect
is now aComponent
HasGameRef
can now operate independently fromGame
initialDelay
andpeakDelay
for effects to handle time before and after an effectcomponent.onMount
now runs every time a component gets a new parent- Add collision detection between child components
[1.0.0-releasecandidate.13] #
- Fix camera not ending up in the correct position on long jumps
- Make the
JoystickPlayer
aPositionComponent
- Extract shared logic when handling components set in BaseComponent and BaseGame to ComponentSet.
- Rename
camera.shake(amount: x)
tocamera.shake(duration: x)
- Fix
SpriteAnimationComponent
docs to useFuture.wait
- Add an empty
postRender
method that will run after each components render method - Rename
Tapable
toTappable
- Fix
SpriteAnimationComponent
docs to useFuture.wait
- Add an empty
postRender
method that will run after each components render method - Rename
HasTapableComponents
toHasTappableComponents
- Rename
prepareCanvas
topreRender
- Add
intensity
toCamera.shake
FixedResolutionViewport
to use matrix transformations forCanvas
[1.0.0-releasecandidate.12] #
- Fix link to code in example stories
- Fix RotateEffect with negative deltas
- Add isDragged to Draggable
- Fix anchor of rendered text in TextComponent
- Add new extensions to handle math.Rectangles nicely
- Implement color parsing methods
- Migrated the
Particle
API toVector2
- Add copyWith function to TextRenderer
- Fix debug mode is not propagated to children of non-Position components
- Fix size property of TextComponent was not correctly set
- Fix anchor property was being incorrectly passed along to text renderer
- All components take priority as an argument on their constructors
- Fix renderRotated
- Use QueryableOrderedSet for Collidables
- Refactor TextBoxComponent
- Fix bugs with TextBoxComponent
- Improve error message for composed components
- Fix
game.size
to take zoom into consideration - Fix
camera.followComponent
whenzoom != 1
- Add
anchor
forShapeComponent
constructor - Fix rendering of polygons in
ShapeComponent
- Add
SpriteAnimation
support to parallax - Fix
Parallax
alignment for images with different width and height - Fix
ImageComposition
image bounds validation - Improved the internal
RenderObject
widget performance - Add
Matrix4
extensions Camera.apply
is done with matrix transformationsCamera
zooming is taking currentrelativeOffset
into account- Fix gestures for when
isHud = true
andCamera
is modified - Fix
Camera
zoom behavior with offset/anchor
[1.0.0-releasecandidate.11] #
- Replace deprecated analysis option lines-of-executable-code with source-lines-of-code
- Fix the anchor of SpriteWidget
- Add test for re-adding previously removed component
- Add possibility to dynamically change priority of components
- Add onCollisionEnd to make it possible for the user to easily detect when a collision ends
- Adding test coverage to packages
- Possibility to have non-fullscreen ParallaxComponent
- No need to send size in ParallaxComponent.fromParallax since Parallax already contains it
- Fix Text Rendering not working properly
- Add more useful methods to the IsometricTileMap component
- Add Hoverables
- Brief semantic update to second tutorial.
[1.0.0-rc10] #
- Updated tutorial documentation to indicate use of new version
- Fix bounding box check in collision detection
- Refactor on flame input system to correctly take camera into account
- Adding
SpriteAnimationGroupComponent
- Allow isometric tile maps with custom heights
- Add a new renderRect method to Sprite
- Addresses the TODO to change the camera public APIs to take Anchors for relativePositions
- Adds methods to support moving the camera relative to its current position
- Abstracting the text api to allow custom text renderers on the framework
- Set the same debug mode for children as for the parent when added
- Fix camera projections when camera is zoomed
- Fix collision detection system with angle and parentAngle
- Fix rendering of shapes that aren't HitboxShape
[1.0.0-rc9] #
- Fix input bug with other anchors than center
- Fixed
Shape
so that theposition
is now alate
- Updated the documentation for the supported platforms
- Add clear function to BaseGame to allow the removal of all components
- Moving tutorials to the Flame main repository
- Transforming
PaletteEntry.paint
to be a method instead of a getter - Adding some more basic colors entries to the
BasicPalette
- Fixing Flutter and Dart version constraints
- Exporting Images and AssetsCache
- Make
size
andposition
inPositionComponent
final - Add a
snapTo
andonPositionUpdate
method to theCamera
- Remove the SpriteAnimationComponent when the animation is really done, not when it is on the last frame
- Revamp all the docs to be up to date with v1.0.0
- Make Assets and Images caches have a configurable prefix
- Add
followVector2
method to theCamera
- Make
gameRef
late - Fix Scroll example
- Add a
renderPoint
method toCanvas
- Add zoom to the camera
- Add
moveToTarget
as an extension method toVector2
- Bring back collision detection examples
- Fix collision detection in Collidable with multiple offset shapes
- Publishing Flame examples on github pages
1.0.0-rc8 #
- Migrate to null safety
- Refactor the joystick code
- Fix example app
- Rename points to intersectionPoints for collision detection
- Added CollidableType to make collision detection more efficient
- Rename CollidableType.static to passive
- Add srcPosition and srcSize for SpriteComponent
- Improve collision detection with bounding boxes
1.0.0-rc7 #
- Moving device related methods (like
fullScreen
) fromutil.dart
todevice.dart
- Moving render functions from
util.dart
toextensions/canvas.dart
- Adapting ParallaxComponent contructors to match the pattern followed on other components
- Adapting SpriteBatchComponent constructors to match the pattern used on other components
- Improving Parallax APIs regarding handling its size and the use outside FCS
- Enabling direct import of Sprite and SpriteAnimation
- Renamed
Composition
toImageComposition
to prevent confusion with the composition component - Added
rotation
andanchor
arguments toImageComposition.add
- Added
Image
extensions - Added
Color
extensions - Change RaisedButton to ElevatedButton in timer example
- Overhaul the draggables api to fix issues relating to local vs global positions
- Preventing errors caused by the premature use of size property on game
- Added a hitbox mixin for PositionComponent to make more accurate gestures
- Added a collision detection system
- Added geometrical shapes
- Fix
SpriteAnimationComponent.shouldRemove
useComponent.shouldRemove
- Add assertion to make sure Draggables are safe to add
- Add utility methods to the Anchor class to make it more "enum like"
- Enable user-defined anchors
- Added
toImage
method for theSprite
class - Uniform use of
dt
instead oft
in all update methods - Add more optional arguments for unified constructors of components
- Fix order that parent -> children render in
1.0.0-rc6 #
- Use
Offset
type directly inJoystickAction.update
calculations - Changed
parseAnchor
inexamples/widgets
to throw an exception instead of returning null when it cannot parse an anchor name - Code improvements and preparing APIs to null-safety
- BaseComponent removes children marked as shouldRemove during update
- Use
find
instead ofglobstar
pattern inscripts/lint.sh
as the later isn't enabled by default in bash - Fixes Aseprite constructor bug
- Improve error handling for the onLoad function
- Add test for child removal
- Fix bug where
Timer
callback doesn't fire for non-repeating timers, also fixing bug withParticle
lifespan - Adding shortcut for loading Sprites and SpriteAnimation from the global cache
- Adding loading methods for the different
ParallaxComponent
parts and refactor how the delta velocity works - Add tests for
Timer
and fix a bug whereprogress
was not reported correctly - Refactored the
SpriteBatch
class to be more elegant and to supportVector2
. - Added fallback support for the web on the
SpriteBatch
class - Added missing documentation on the
SpriteBatch
class - Added an utility method to load a
SpriteBatch
on theGame
class - Updated the
widgets.md
documentation - Removing methods
initialDimensions
andremoveGestureRecognizer
to avoid confusion - Adding standard for
SpriteComponent
andSpriteAnimationComponent
constructors - Added
Composition
, allows for composing multiple images into a single image. - Move files to comply with the dart package layout convention
- Fix gesture detection bug of children of
PositionComponent
- The
game
argument onGameWidget
is now required
1.0.0-rc5 #
- Option for overlays to be already visible on the GameWidget
- Adding game to the overlay builder
- Rename retreive -> Retrieve
- Use internal children set in BaseComponent (fixes issue adding multiple children)
- Remove develop branches from github workflow definition
- BaseComponent to return UnmodifiableListView for children
1.0.0-rc4 #
- Rename Dragable -> Draggable
- Set loop member variable when constructing SpriteAnimationComponent from SpriteAnimationData
- Effect shouldn't affect unrelated properties on component
- Fix rendering of children
- Explicitly define what fields an effect on PositionComponent modifies
- Properly propagate onMount and onRemove to children
- Adding Canvas extensions
- Remove Resizable mixin
- Use config defaults for TextBoxComponent
- Fixing Game Render Box for flutter >= 1.25
- DebugMode to be variable instead of function on BaseGame
1.0.0-rc3 #
- Fix TextBoxComponent rendering
- Add TextBoxConfig options; margins and growingBox
- Fix debugConfig strokeWidth for web
- Update Forge2D docs
- Update PR template with removal of develop branch
- Translate README to Russian
- Split up Component and PositionComponent to BaseComponent
- Unify multiple render methods on Sprite
- Refactored how games are inserted into a flutter tree
- Refactored the widgets overlay API
- Creating new way of loading animations and sprites
- Dragable mixin for components
- Fix update+render of component children
- Update documentation for SVG component
- Update documentation for PositionComponent
- Adding Component#onLoad
- Moving size to Game instead of BaseGame
- Fix bug with ConcurrentModificationError on add in onMount
1.0.0-rc2 #
- Improve IsometricTileMap and Spritesheet classes
- Export full vector_math library from extension
- Added warning about basic and advanced detectors
- Ensuring sprite animation and sprite animation components don't get NPEs on initialization
- Refactor timer class
- include all changed that are included on 0.28.0
- Rename game#resize to game#onResize
- Test suite for basic effects
- Effects duration and test suite for basic effects
- Pause and resume for effects
- Fix position bug in parallax effect
- Simplification of BaseGame. Removal of addLater (add is now addLater) and rename markForRemoval.
- Unify naming for removal of components from BaseGame
1.0.0-rc1 #
- Move all box2d related code and examples to the flame_box2d repo
- Rename Animation to SpriteAnimation
- Create extension of Vector2 and unify all tuples to use that class
- Remove Position class in favor of new Vector2 extension
- Remove Box2D as a dependency
- Rebuild of Images, Sprite and SpriteAnimation initialization
- Use isRelative on effects
- Use Vector2 for position and size on PositionComponent
- Removing all deprecated methods
- Rename
resize
method on components toonGameResize
- Make
Resizable
have agameSize
property instead ofsize
- Fix bug with CombinedEffect inside SequenceEffect
- Fix wrong end angle for relative rotational effects
- Use a list of Vector2 for Move effect to open up for more advanced move effects
- Generalize effects api to include all components
- Extract all the audio related capabilities to a new package, flame_audio
- Fix bug that sprite crashes without a position
0.29.1-beta #
- Fixing Game Render Box for flutter >= 1.25
0.29.0 #
- Update audioplayers to latest version (now
assets
will not be added to prefixes automatically) - Fix lint issues with 0.28.0
0.28.0 #
- Fix spriteAsWidget deprecation message
- Add
lineHeight
property toTextConfig
- Adding pause and resume methods to time class
0.27.0 #
- Improved the accuracy of the
FPSCounter
by using Flutter's internal frame timings. - Adding MouseMovementDetector
- Adding ScrollDetector
- Fixes BGM error
- Adding Isometric Tile Maps
0.26.0 #
- Improving Flame image auto cache
- Fix bug in the Box2DGame's add and addLater method , when the Component extends BodyComponent and mixin HasGameRef or other mixins ,the mixins will not be set correctly
0.25.0 #
- Externalizing Tiled support to its own package
flame_tiled
- Preventing some crashs that could happen on web when some methods were called
- Add mustCallSuper to BaseGame
update
andrender
methods - Moved FPS code from BaseGame to a mixin, BaseGame uses the new mixin.
- Deprecate flare API in favor of the package
flame_flare
0.24.0 #
- Outsourcing SVG support to an external package
- Adding MemoryCache class
- Fixing games crashes on Web
- Update tiled dependency to 0.6.0 (objects' properties are now double)
0.23.0 #
- Add Joystick Component
- Adding BaseGame#markToRemove
- Upgrade tiled and flutter_svg dependencies
- onComplete callback for effects
- Adding Layers
- Update tiled dep to 0.5.0 and add support for rotation with improved api
0.22.1 #
- Fix Box2DComponent render priority
- Fix PositionComponentEffect drifting
- Add possibility to combine effects
- Update to newest box2d_flame which fixes torque bug
- Adding SpriteSheet.fromImage
0.22.0 #
- Fixing BaseGame tap detectors issues
- Adding SpriteWidget
- Adding AnimationWidget
- Upgrade Flutter SVG to fix for flame web
- Add linting to all the examples
- Run linting only on affected and changed examples
- Add SequenceEffect
- Fixed bug with travelTime in RotateEffect
0.21.0 #
- Adding AssetsCache.readBinaryFile
- Splitting debugMode from recordFps mode
- Adding support for multi touch tap and drag events
- Fix animations example
- Add possibility for infinite and alternating effects
- Add rotational effect for PositionComponents
0.20.2 #
- Fix text component bug with anchor being applied twice
0.20.1 #
- Adding method to load image bases on base64 data url.
- Fix Box2DGame to follow render priority
- Fix games trying to use gameRef inside the resize function
0.20.0 #
- Refactor game.dart classes into separate files
- Adding a GameLoop class which uses a Ticker for updating game
- Adding sprites example
- Made BaseGame non-abstract and removed SimpleGame
- Adding SpriteButton Widget
- Added SpriteBatch API, which renders sprites effectively using Canvas.drawAtlas
- Introducing basic effects API, including MoveEffect and ScaleEffect
- Adding ContactCallback controls in Box2DGame
0.19.1 #
- Bump AudioPlayers version to allow for web support
- Adding Game#pauseEngine and Game#resumeEngine methods
- Removing FlameBinding since it isn't used and clashes with newest flutter
0.19.0 #
- Fixing component lifecycle calls on BaseGame#addLater
- Fixing Component#onDestroy, which was been called multiple times sometimes
- Fixing Widget Overlay usage over many game instances
0.18.3 #
- Adding Component#onDestroy
- Adding Keyboard events API
- Adding Box2DGame, an extension of BaseGame to simplify lifecycle of Box2D components
- Add onAnimateComplete for Animation (thanks @diegomgarcia)
- Adding AnimationComponent#overridePaint
- Adding SpriteComponent#overridePaint
- Updating AudioPlayers to enable Web Audio support
0.18.2 #
- Add loop for AnimationComponent.sequenced() (thanks @wenxiangjiang)
- TextComponent optimization (thanks @Gericop)
- Adding Component#onMount
- Check if chidren are loaded before rendering on ComposedComponent (thanks @wenxiangjiang)
- Amend type for width and height properties on Animation.sequenced (thanks @wenxiangjiang)
- Fixing Tapable position checking
- Support line feed when create animation from a single image source (thanks @wenxiangjiang)
- Fixing TextBoxComponent start/end of line bugs (thanks @kurtome)
- Prevent widgets overlay controller from closing when in debug mode
0.18.1 #
- Expose stepTime paramter from the Animation class to the animation component
- Updated versions for bugfixes + improved macOS support. (thanks @flowhorn)
- Update flutter_svg to 0.17.1 (thanks @flowhorn)
- Update audioplayers to 0.14.0 (thanks @flowhorn)
- Update path_provider to 1.6.0 (thanks @flowhorn)
- Update ordered_set to 1.1.5 (thanks @flowhorn)
0.18.0 #
- Improving FlareComponent API and updating FlareFlutter dependency
- Adding HasWidgetsOverlay mixin
- Adding NineTileBox widget
0.17.4 #
- Fixing compilations errors regarding changes on
box2_flame
- Add splash screen docs
0.17.3 #
- Tweaking text box rendering to reduce pixelated text (thanks, @kurtome)
- Adding NineTileBox component
0.17.2 #
- Added backgroundColor method for overriding the game background (thanks @wolfenrain)
- Update AudioPlayers version to 0.13.5
- Bump SVG dependency plus fix example app
0.17.1 #
- Added default render function for Box2D ChainShape
- Adding TimerComponent
- Added particles subsystem (thanks @av)
0.17.0 #
- Fixing FlareAnimation API to match convention
- Fixing FlareComponent renderization
- New GestureDetector API to Game
0.16.1 #
- Added
Bgm
class for easy looping background music management. - Added options for flip rendering of PositionComponents easily (horizontal and vertical).
0.16.0 #
- Improve our mixin structure (breaking change)
- Adds HasGameRef mixin
- Fixes for ComposedComponent (for tapables and other apis using preAdd)
- Added no-parameter alias functions for setting the game's orientation.
- Prevent double completion on onMetricsChanged callback
0.15.2 #
- Exposing tile objects on TiledComponent (thanks @renatoferreira656)
- Adding integrated API for taps on Game class and adding Tapeables mixin for PositionComponents
0.15.1 #
- Bumped version of svg dependency
- Fixed warnings
0.15.0 #
- Refactoring ParallaxComponent (thanks @spydon)
- Fixing flare animation with embed images
- Adding override paint parameter to Sprite, and refactoring it have named optional parameters
0.14.2 #
- Refactoring BaseGame debugMode
- Adding SpriteSheet class
- Adding Flame.util.spriteAsWidget
- Fixing AnimationComponent.empty()
- Fixing FlameAudio.loopLongAudio
0.14.1 #
- Fixed build on travis
- Updated readme badges
- Fixed changelog
- Fixed warning on AudioPool, added AudioPool example in docs
0.14.0 #
- Adding Timer#isRunning method
- Adding Timer#progress getter
- Updating Flame to work with Flutter >= 1.6.0
0.13.1 #
- Adding Timer utility class
- Adding
destroyOnFinish
flag for AnimationComponent - Fixing release mode on examples that needed screen size
- Bumping dependencies versions (audioplayers and path_provider)
0.13.0 #
- Downgrading flame support to stable channel.
0.12.2 #
- Added more functionality to the Position class (thanks, @illiapoplawski)
0.12.1 #
- Fixed PositionComponent#setByRect to comply with toRect (thanks, @illiapoplawski)
0.12.0 #
- Updating flutter_svg and pubspec to support the latest flutter version (1.6.0)
- Adding Flare Support
- Fixing PositionComponent#toRect which was not considering the anchor property (thanks, @illiapoplawski)
[0.11.2] #
- Fixed bug on animations with a single frame
- Fixed warning on using specific version o flutter_svg on pubspec
- ParallaxComponent is not abstract anymore, as it does not include any abstract method
- Added some functionality to Position class
[0.11.1] #
- Fixed lack of paint update when using AnimationAsWidget as pointed in #78
- Added travis (thanks, @renancarujo)
[0.11.0] #
- Implementing low latency api from audioplayers (breaking change)
- Improved examples by adding some instructions on how to run
- Add notice on readme about the channel
- Upgrade path_provider to fix conflicts
[0.10.4] #
- Fix breaking change on svg plugin
[0.10.3] #
- Svg support
- Adding
Animation#reversed
allowing a new reversed animation to be created from an existing animation. - Fix games inside regular apps when the component is inside a sliver
- Support Aseprite animations
[0.10.2] #
- Fixed some warnings and formatting
[0.10.1] #
- Fixes some typos
- Improved docs
- Extracted gamepads to a new lib, lots of improvements there (thanks, @erickzanardo)
- Added more examples and an article
[0.10.0] #
- Fixing a few minor bugs, typos, improving docs
- Adding the Palette concept: easy access to white and black colors/paints, create your palette to keep your game organized.
- Adding the Anchor concept: specify where thins should anchor, added to PositionComponent and to the new text related features.
- Added a whole bunch of text related components: TextConfig allows you to easily define your typography information, TextComponent allows for easy rendering of stuff and TextBox can make sized texts and also typing effects.
- Improved Utils to have better and more concise APIs, removed unused stuff.
- Adding TiledComponent to integrate with tiled
[0.9.5] #
- Add
elapsed
property to Animation (thanks, @ianliu) - Fixed minor typo on documentation
[0.9.4] #
- Bumps audioplayers version
[0.9.3] #
- Fixes issue when switching between games where new game would not attach
[0.9.2] #
- Fixes to work with Dart 2.1
[0.9.1] #
- Updated audioplayers and box2d to fix bugs
[0.9.0] #
- Several API changes, using new audioplayers 0.6.x
[0.8.4] #
- Added more consistent APIs and tests
[0.8.3] #
- Need to review audioplayers 0.5.x
[0.8.2] #
- Added better documentation, tutorials and examples
- Minor tweaks in the API
- New audioplayers version
[0.8.1] #
- The Components Overhaul Update: This is major update, even though we are keeping things in alpha (version 0.*)
- Several major upgrades regarding the component system, new component types, Sprites and SpriteSheets, better image caching, several improvements with structure, a BaseGame, a new Game as a widget, that allows you to embed inside apps and a stop method. More minor changes.
[0.6.1] #
- Bump required dart version
[0.6.0] #
- Adding audio support for iOS (bumping audioplayers version)
[0.5.0] #
- Adding a text method to Util to more easily render a Paragraph
[0.4.0] #
- Upgraded AudioPlayers, added method to disable logging
- Created PositionComponent with some useful methods
- A few refactorings
[0.3.0] #
- Added a pre-load method for Audio module
[0.2.0] #
- Added a loop method for playing audio on loop
- Added the option to make rectangular SpriteComponents, not just squares
[0.1.0] #
- First release, basic utilities