flame 1.24.0 
flame: ^1.24.0 copied to clipboard
A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.
1.24.0 #
- PERF: Switch from forEach to regular for-loops for about 30% improvement in raw update performance (#3472).
 - FIX: SpawnComponent.periodRange should change range each iteration (#3464).
 - FIX: Don't use a future when assets for SpriteButton is already loaded (#3456).
 - FIX: Darkness increases with higher values (#3448).
 - FEAT: NineTileBoxComponent with HasPaint to enable effects (#3459).
 - FEAT: Devtools overlay navigation (#3449).
 - FEAT: Add direction and length getters and constructor to LineSegment (#3446).
 - FEAT: Add multiFactory to SpawnComponent (#3440).
 
1.23.0 #
- REFACTOR: Fix lint issues from latest flutter release (#3390). (978ad31b)
 - FIX: Take into consideration when child is added to parent that is removed in the same tick (#3428). (9a5c54be)
 - FIX: Add missing export of GroupTextElement to text.dart (#3424). (c9c0f691)
 - FIX: Add missing export of GroupElement to text.dart (#3423). (c0c4bb02)
 - FIX: Fix brighten and darken alpha issue (#3414). (de8e3bce)
 - FIX: Set button size in onMount if not set (#3413). (916aa5ce)
 - FIX: Fix bug preventing removeAll(children) from be called before mount (#3408). (726cb8b6)
 - FEAT: Add support for strike-through text for flame_markdown (#3426). (1f9b0ea9)
 - FEAT: Warning and docs about fullscreen methods outside the mobile platforms (#3419). (994e098b)
 - FEAT: Add baseColor to Shadow3DDecorator (#3375). (b5d7ee07)
 
1.22.0 #
1.21.0 #
- FIX: Widgets flickering (#3343). (ff170dc5)
 - FIX: Ray should not be able to escape 
CircleHitbox(#3341). (7311d034) - FIX: Fix SpriteBatch to comply with new drawAtlas requirement (#3338). (a17fe4cd)
 - FIX: Set SpriteButtonComponent sprites in 
onMount(#3327). (f36533e7) - FIX: Export TapConfig to make visible (#3323). (8e00115c)
 - FIX: Clarify 
SpriteGroupComponent.updateSpriteassertion (#3317). (d976ee8c) - FEAT: Adding spawnWhenLoaded flag on SpawnComponent (#3334). (51a7e26b)
 - FEAT: Add a getter for images cache keys (#3324). (7746f2f8)
 
1.20.0 #
- FIX: SpriteButtonComponent to initialize sprites in 
onLoad(#3302). (1204216c) - FIX: ViewportAwareBounds component and lifecycle issues (#3276). (026bf41f)
 - FEAT: Add ComponentTreeRoot.lifecycleEventsProcessed future (#3308). (ebc47418)
 - FEAT: Adding paint attribute to SpriteWidget and SpriteAnimationWidget (#3298). (a5338d0c)
 - FEAT: Adding tickOnLoad to TimerComponent (#3285). (0113aa37)
 - DOCS: Include information about the Flame DevTools extension in example readme (#3288). (76a9abaf)
 
1.19.0 #
Note: This release has breaking changes.
- REFACTOR: Use a temp vector for delta calculations of 
FollowBehavior(#3230). (524793d4) - FIX: Add assertion when trying to set "current" that doesn't exist (#3258). (267d6801)
 - FIX: Update version of lints to comply with new pub requirements (#3223). (1b0bee72)
 - FIX: Replace CurvedParticle inheritance with Particle in ScaledParticle (#3221). (8cd054d0)
 - FIX: Fix text rendering issue where spaces are missing (#3192). (28fd2a0f)
 - FIX: Add nativeAngle to constructors where it makes sense (#3197). (e8704934)
 - FIX: Wire in background and foreground colors in TextPaint (#3191). (983cfab6)
 - FIX: Disallow mutatation of 
SpriteGroupComponent.sprites(#3185). (7c40034d) - FIX: Disallow mutatation of 
SpriteAnimationGroupComponent.animations(#3183). (52773407) - FEAT: Adding scale and angle to devtools attributes (#3267). (b2a5e658)
 - FEAT: Adding x,y,width and height inputs to position components on Dev Tools (#3263). (003ec3a1)
 - FEAT: Adding component snapshot to Dev tools (#3261). (1a574917)
 - FEAT: Fixing tests on flutter 3.24.0 (#3259). (bf9a2481)
 - FEAT: Loading builder for Route (#3113). (1e62b342)
 - FEAT: Take in super.curve in ScalingParticle (#3220). (0fbc73cc)
 - FEAT: Add 
pauseandresumetoHasTimeScalemixin (#3216). (9a86e7b5) - FEAT: Add missing background and foreground properties to InlineTextStyle (#3187). (34dde50f)
 - FEAT: Support inline code blocks on markdown rich text (#3186). (67e069c0)
 - DOCS: Remove 
PositionTypefrom the docs (#3198). (b0ff5c41) - DOCS: Add dartdocs to inline text node classes (#3189). (84c1ee87)
 - BREAKING REFACTOR: Make query() result an Iterable (#3209). (c094caa7)
 
1.18.0 #
Note: This release has breaking changes.
- REFACTOR: Modernize switch; use switch-expressions and no break; (#3133). (b283b82f)
 - FIX: Add key parameters to the rest of the components (#3170). (2477ea0f)
 - FIX: Invoke 
setToStarton child effect controller of wrapping effect controllers (#3168). (217c95f0) - FIX: Fix cascading and fallback propagation of text styles (#3129). (7b706d5f)
 - FEAT: Add 
onReleasedaction toAdvancedButtonComponentwhich will be called withinonTapUp(#3152). (2269732e) - FEAT: Support text align on new text rendering pipeline (#3147). (194d5536)
 - FEAT: Add missing parameters to InlineTextStyle (#3146). (ce9392ab)
 - FEAT: Expand flame_lint to respect required pub.flutter-io.cn checks (#3139). (6e80bf5e)
 - FEAT: Add accessor to determine a TextElement size (#3130). (8a63a07a)
 - FEAT: Add ability to convert between TextPaint and InlineTextStyle (#3128). (6b63a57a)
 - FEAT: Add completed future for effects (#3123). (5e967deb)
 - FEAT: Add custom long tap delay (#3110). (a95d7df6)
 - DOCS: Update the dartdocs for 
FixedResolutionViewport(#3132). (db4b6fd6) - BREAKING FIX: Update IsometricTileMapComponent to have better defined position and size (#3142). (9a7bdc74)
 
1.17.0 #
Note: This release has breaking changes.
- REFACTOR: Change the ClipComponent factory Constructor to redirect Constructor (#3089). (cc035fb4)
 - FIX: Call 
renderproperly from nestedFlameGames (#3106). (cb1e3701) - FIX: CircleHitbox should properly detect when ray is outside (#3100). (8cd9e123)
 - FIX: Clamp opacity set by the 
ColorEffectto 1.0 (#3069). (9282cc38) - FIX: FutureOr return type of ComponentViewportMargin.onLoad (#3059). (72678c67)
 - FIX: Size for 
SpriteComponent.fromImageshould be nullable (#3054). (2ed71a3c) - FIX: Check for removing state while adding a child (#3050). (3a24a51d)
 - FEAT: Add onFinished callback to ScrollTextBoxComponent (#3105). (233cc94c)
 - FEAT: Add 
copyWithmethod on theTextBoxConfig(#3099). (b946ba70) - FEAT: Component tree for the devtools extension tab (#3094). (bf5d68e9)
 - FEAT: Add PositionComponent.toString (#3095). (b1f01986)
 - FEAT: Add SpriteBatch.replace to allow the replacement of the batch information (#3079). (bf3c282d)
 - FEAT: Initial functionality of flame_devtools (#3061). (c92910c6)
 - FEAT: Add 
HasPerformanceTrackermixin onGame(#3043). (6270353a) - BREAKING REFACTOR: Use HasTimeScale for Route (#3064). (30fde805)
 - BREAKING FIX: Removed unused parameters from SpriteWidget (#3074). (f49d24c0)
 
1.16.0 #
1.15.0 #
- REFACTOR: Minimize 
Vector2creation inIsometricTileMapComponent(#3018). (5d3be313) - FIX: Set margins of 
JoystickComponentproperly (#3019). (e27818d8) - FIX: Properly update sprites in SpriteButtonComponent (#3013). (23cf8b9d)
 - FIX: Lifecycle completers to be called for FlameGame (#3007). (3804f524)
 - FIX: CameraComponent no longer throws Concurrent modification on stop (#2997). (6a1059b0)
 - FIX: Updated PolygonComponent.containsPoint to account for concave polygons (#2979). (a6fe62a2)
 - FIX: Add missing generic to 
ComponentViewportMargin(#2983). (1d9fe613) - FEAT: Add support for base64 encoded images to be manually added to Images cache. (#3008). (1e56293c)
 - FEAT: Make 
Component.keypublic (#2988). (7fbd5af9) - FEAT: Add a hitboxFilter argument to raycast() (#2968). (d7c53e23)
 
1.14.0 #
Note: This release has breaking changes.
- FIX: Set hitbox 
debugColorto yellow (#2958). (6858eae0) - FIX: Consider displaced hitboxes in GestureHitboxes mixin (#2957). (1085518f)
 - FIX: PolygonComponent.containsLocalPoint to use anchor (#2953). (7969321e)
 - FEAT: Notifier for changing current sprite/animation in group components (#2956). (75cf2390)
 - BREAKING REFACTOR: Remove the Projector interface that is no longer used for coordinate transformations (#2955). (0979dc97)
 
1.13.1 #
1.13.0 #
- FIX: Logic error in MemoryCache.setValue() (#2931). (8cee80c3)
 - FIX: Export 
ScalingParticle(#2928). (3730cb1d) - FIX: Misalignment of the hittest area of PolygonHitbox (#2930). (dbdb1379)
 - FIX: Allow setting 
boundswhileBoundedPositionBehavior's target is null (#2926). (bab9be6e) - FEAT: Ability to use 
selfPositioninginSpawnComponent(#2927). (b526aa14) - FEAT: Add 
marginandspacingproperties toSpriteSheet(#2925). (67f7c126) - FEAT: Add 
childrentoSpriteAnimationComponent.fromFrameData(#2914). (caf2b909) - DOCS: Remove references to Tappable and Draggable (#2912). (d12e4544)
 
1.12.0 #
- FIX: SpriteAnimationWidget was resetting the ticker even when the playing didn't changed (#2891). (9aed8b4d)
 - FEAT: Scrollable TextBoxComponent (#2901). (8c3cb725)
 - FEAT: Add collision completed listener (#2896). (957db3c1)
 - FEAT: Adding autoResetTicker option to SpriteAnimationGroupComponent (#2899). (001c870d)
 - FEAT: Add clearSnapshot function (#2897). (d4decd21)
 
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 
FixedResolutionViewportand makewithFixedResolutiona 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 
OffsetwithopacityFromandopacityToin 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 
FixedResolutionViewportand makewithFixedResolutiona 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.removeFromParentmethod should useparent.removeinternally (#2779). (bdb1c79a) - FIX: Take unmounted adds into consideration (#2770). (be28a440)
 - FEAT: Add 
IgnoreEventsmixin 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/onDetachbeing 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.priorityto max (#2732). (820ece1c) - FIX: Change to 
FilterQuality.mediuminstead ofhigh(#2733). (fc19890c) - FIX: Avoid creating new 
Vector2inglobalToLocalandlocalToGlobal(#2727). (9fb3bf8d) - FIX: Ambiguation is not needed in render box anymore (#2711). (b3d78f58)
 - FIX: HasGameReference should default to FlameGame (#2710). (93dcb3a1)
 - FIX: Make 
debugCoordinatesPrecisioninto 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 
onDisposetogame.dartcalled 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 
HasWorldReferencemixin (#2746). (9105411d) - FEAT: Add 
pauseandisPausedto 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 
Forge2DGameto 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 theCameraComponentresponsible 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
CameraComponentin 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 theWorldand 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 
ComponentKeys 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 
CollisionProspects 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 
mustCallSuperfromonComponentTypeCheck(#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 
errorBuilderandloadingBuilderto constructors (#2526). (55ec0bc3) - FEAT: Add onComplete callback to 
AnimationWidget(#2515). (0b68be8a) - FEAT: Add 
stepEnginetoGame(#2516). (1ed2c5a2) - FEAT: Customise grid of NineTileBox (#2495). (a25b0a03)
 - FEAT: Accept 
CollisionTypein hitbox constructor (#2509). (89926227) - DOCS: Update content types of sphinx code snippets (#2519). (306ad320)
 - BREAKING REFACTOR: Move 
CameraComponentand 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
onLoadmethod, 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 
SpriteComponenton 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 
HasCollisionDetectionto be onComponent(#2404). (637c258b) - FEAT: Added AlignComponent layout component (#2350). (4f5e56f0)
 - FEAT: Add 
autoResizeforSpriteAnimationComponentandSpriteAnimationGroupComponent(#2453). (dbeba238) - FEAT: Adding ImageExtension.resize (#2418). (a3f1601d)
 - FEAT: Add position and anchor params for Sprite and SpriteAnimation Particles (#2370). (181e0b59)
 - FEAT: Add 
autoResizeforSpriteGroupComponent(#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 
HasTimeScalemixin (#2431). (d2a8fe01) - FEAT: Add DoubleTapCallbacks that receives double-tap events. (#2327). (b5f79d1c)
 - FEAT: Add ability to opt-out flip (#2316). (34c3b6bd)
 - FEAT: Make 
limitfield mutable in theTimerclass (#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.flutter-io.cn (#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 
HasTappableComponentsmixin 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 
canSeemethod to theCameraComponent(#2270). (2347c8f5) - FEAT: Add 
moveBytoCameraComponent(#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 
@mustCallSuperadded (#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 
Worldconstructor (#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 
maintainStateproperty 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: 
clampLengthforVector2extension (#2190). (51a896b2) - FEAT: Adding onChildrenChanged (#1976). (3d043b86)
 - FEAT: Adding ComponentNotifier API (#1889). (bd7f51f5)
 - FEAT: 
removedfuture +isRemovedfield 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
_ButtonStatepublic 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
ComposedParticleto 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
ComponentSetmodifications 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 
childrenargument 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 
Ray2class 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 
HasAncestormixin (#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 
HasAncestormixin (#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
SpriteBatchAPIs (#1637). (4b19a1b2) - 
FIX: ParallaxComponent.update mustCallSuper (#1635). (9474ce74)
 - 
FIX: Isometric tile map component uses scale when getting block from position (#1569). (0c430786)
 - 
FIX: Dispose
TextBoxComponentimage 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
componentsAtPointnow reports the "stacktrace" of points (#1615). (e2398966) - 
FEAT: Allow changing parent from null parent (#1662). (53268b5f)
 - 
FEAT: Callbacks in
HudButtonComponentconstructor andViewportMarginmixin 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
completedcompleter inSpriteAnimation(#1564). (71999b19) - 
FEAT: Add
isFirstFrameandonStartevent toSpriteAnimation(#1492). (701d0706) - 
FEAT: Add
FpsComponentandFpsTextComponent(#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
PositionComponentis flipped. (#1700). (cf67147e) - 
FEAT: World bounds for a CameraComponent (#1605). (abb497ab)
 - 
FEAT: Implement tap events based on
componentsAtPoint(#1661). (2711ba60) - 
FEAT: add
ParentIsAto 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:
FixedResolutionViewportnoClip -> clip (#1612). (02be4acd) - 
BREAKING FEAT: Adding GameWidget.controlled (#1650). (7ef6a51e)
 - 
BREAKING FEAT: remove
onTimingsCallbackfor 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: 
debugModeshould 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: 
Rectextension 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: 
ParallaxComponentshould have staticpositionType(#1350). (cfa6bd12) - FIX: Add missing 
priorityargument 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: 
prepareComponentshould 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 
strictModefor children (#1271). (6936e1d9) - FEAT: 
onCollisionStartforCollidableandHitboxShape(#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 
transformtoRect(#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.childrenFactorycan be used to set up a globalComponentSetfactory (#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: 
prepareComponentshould 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 
priorityargument 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: 
ParallaxComponentshould 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 
strictModefor children (#1271). (6936e1d9) - FEAT: 
onCollisionStartforCollidableandHitboxShape(#1251). (9b95686b) - FEAT: 
Component.childrenFactorycan be used to set up a globalComponentSetfactory (#1193). (223ab758) - FEAT: Added 
transformtoRect(#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 
ButtonComponentbacked by twoPositionComponents - Add 
SpriteButtonComponentbacked by twoSprites - Allow more flexible construction of 
EffectControllers and make them able to run back in time - Remove old effects system
 - Export new effects system
 - Introduce 
updateTreeto follow therenderTreeconvention - Fix 
Parallax.loadwith different loading times - Fix render order of components and add tests
 - Fix 
HitboxCirclewhen component is flipped - Add 
ColorEffect MoveAlongPathEffectcan now be absolute, and can auto-orient the object along the pathScaleEffect.bynow applies multiplicatively instead of additivelyisHudreplaced withPositionType- Remove web fallback for 
drawAtlasin SpriteBatch, but added flaguseAtlasto activate it 
1.0.0-releasecandidate.18 #
- Forcing portrait and landscape mode is now supported on web
 - Fixed margin calculation in 
HudMarginComponentwhen using a viewport - Fixed position calculation in 
HudMarginComponentwhen using a viewport - Add noClip option to 
FixedResolutionViewport - Add a few missing helpers to SpriteAnimation
 
1.0.0-releasecandidate.17 #
- Added 
StandardEffectControllerclass - Refactored 
Effectclass to useEffectController, addedTransform2DEffectclass - Clarified 
TimerComponentexample - Fixed pause and resume engines when 
GameWidgethad rebuilds - Removed 
runOnCreationattribute in favor of thepausedattribute onFlameGame - Add 
CustomPainterComponent - Alternative implementation of 
RotateEffect, based onTransform2DEffect - Alternative implementation of 
MoveEffect, based onTransform2DEffect - Fix 
onGameResizemargin bug inHudMarginComponent PositionComponent.sizenow returns aNotifyingVector2- Possibility to manually remove 
TimerComponent - Rename 
Hitboxmixin toHasHitboxes - Added 
RemoveEffectandSimpleEffectController - Create default implementations of 
RectangleComponent,CircleComponentandPolygonComponent - Streamlined the argument list for all components extending 
PositionComponent - Improved interaction between viewport and isHud components
 randomColormethod in theColorextension- Calling super-method in 
.render()is now optional - Components that manipulate canvas state are now responsible for saving/restoring that state
 - Remove 
super.rendercalls that are no longer needed - Fixed typo in error message
 TextPaintto useTextStyle(material) instead ofTextPaintConfig- Underlying 
Shapes inShapeComponenttransform with components position, size and angle HitboxShapetakes parents ancestors transformations into consideration (not scaling)- Fixed black frame when updating game widget (ex: adding overlays)
 - Added possibility to extend 
JoystickComponent - Renamed 
FlameTestertoGameTester - Modified 
FlameTesterto be specific forT extends FlameGame - Improved 
TimerComponent - Removed methods 
preRender()andpostRender()inComponent - Use 
FlameTestereverywhere where it makes sense in the tests - Improved 
IsometricTileMap - Fix 
PositionComponent'sflipHorizontallyAroundCenterandflipVerticallyAroundCenter - Initialization of all 
PositionComponents can be done fromonLoadinstead of the constructor - Rename 
HasTappableComponentstoHasTappables - Rename 
HasDraggableComponentstoHasDraggables - Rename 
HasHoverableComponentstoHasHoverableis - Added 
SizeEffectbacked by the new effects engine - Added 
ScaleEffectbacked by the new effects engine - Added 
OpacityEffectbacked by the new effects engine - Update 
OrderedSetto 4.1.0 - Update 
OrderedSetto 5.0.0 
1.0.0-releasecandidate.16 #
changePriorityno longer breaks game loop iteration- Move component mixin checks to their own files
 - Fix exception when game was rebuilt
 - Add 
@mustCallSuperonComponent.render - Add 
SpriteSheet.createAnimationVariablemethod to allow animations with differentstepTimefor each sprite - Use the full delta in 
JoystickComponentso that it can't go to the wrong direction on the wrong side - Improved the menu for documentation version selection
 - Introduce 
onDoubleTapDownwith info andonDoubleTapCancel - Changed 
onHoverEnterandonHoverLeaveto 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 
Draggables not being removed fromdraggableslist - Increase Flutter SDK constraint to 
>= 2.5.0. - Method 
PositionComponent.toRect()now works for flipped/rotated components. - Make the root bundle exposed via 
Flame.bundleactually configurable - Take in an optional 
Cameraas a parameter toFlameGame - Make super.onLoad mandatory to avoid memory leaks
 QueryableOrderedSet'sstrictModeis configurable so it is no longer necessary to callregisterbeforequery- Add option to rotate 
SpriteWidget - Fix bug where 
onRemovewas called during resizing - Add 
onAttachandonDetachtoGame 
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.removeandBaseGame.removeAllhelpers for removing components - Add 
BaseComponent.removeandBaseComponent.removeAllhelpers for removing children - Rename 
Camera.cameraSpeedtoCamera.speed - Rename 
addShapetoaddHitboxinHitboxmixin - 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 
paintusage on components - Create 
OpacityEffect - Create 
ColorEffect - Adding ability to pause 
SpriteAnimationComponent - Adding 
SpriteGroupComponent - Fix truncated last frame in non-looping animations
 - Default size of 
SpriteComponentissrcSizeinstead of spritesheet size - Export test helper methods
 - Rename 
ScaleEffecttoSizeEffect - Introduce 
scaleonPositionComponent - Add 
ScaleEffectthat works onscaleinstead ofsize - Add class 
NotifyingVector2 - Add class 
Transform2D - Added helper functions 
testRandom()andtestWidgetsRandom() - Remove 
FPSCounterfromBaseGame - Refactor 
PositionComponentto work withTransform2D: the component now works more reliably when nested - Properties 
renderFlipX,renderFlipYremoved and replaced with methodsflipHorizontally()andflipVertically(). - Method 
.angleToremoved as it was not working properly. - In debug mode 
PositionComponentnow displays an indicator for the anchor position. - Update 
Cameradocs to showcase usage withGameclass - Fixed a bug with 
worldBoundsbeing set tonullinCamera - Remove 
.viewportfromBaseGame, usecamera.viewportinstead MockCanvasis now strongly typed and matches numeric coordinates up to a tolerance- Add 
loadAllImagestoImages, which loads all images from the prefixed path - Reviewed the keyboard API with new mixins (
KeyboardHandlerandHasKeyboardHandlerComponents) - Added 
FocusNodeon the game widget and improved keyboard handling in the game. - Added ability to have custom mouse cursor on the 
GameWidgetregion - Change sprite component to default to the Sprite size if not provided
 TextBoxComponentwaits for cache to be filled ononLoadTextBoxComponentcan have customizablepixelRatio- Add 
ContainsAtLeastMockCanvasto facilitate testing withMockCanvas - Support for 
drawImageforMockCanvas Gameis now aComponentComponentEffectis now aComponentHasGameRefcan now operate independently fromGameinitialDelayandpeakDelayfor effects to handle time before and after an effectcomponent.onMountnow 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 
JoystickPlayeraPositionComponent - Extract shared logic when handling components set in BaseComponent and BaseGame to ComponentSet.
 - Rename 
camera.shake(amount: x)tocamera.shake(duration: x) - Fix 
SpriteAnimationComponentdocs to useFuture.wait - Add an empty 
postRendermethod that will run after each components render method - Rename 
TapabletoTappable - Fix 
SpriteAnimationComponentdocs to useFuture.wait - Add an empty 
postRendermethod that will run after each components render method - Rename 
HasTapableComponentstoHasTappableComponents - Rename 
prepareCanvastopreRender - Add 
intensitytoCamera.shake FixedResolutionViewportto 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 
ParticleAPI 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.sizeto take zoom into consideration - Fix 
camera.followComponentwhenzoom != 1 - Add 
anchorforShapeComponentconstructor - Fix rendering of polygons in 
ShapeComponent - Add 
SpriteAnimationsupport to parallax - Fix 
Parallaxalignment for images with different width and height - Fix 
ImageCompositionimage bounds validation - Improved the internal 
RenderObjectwidget performance - Add 
Matrix4extensions Camera.applyis done with matrix transformationsCamerazooming is taking currentrelativeOffsetinto account- Fix gestures for when 
isHud = trueandCamerais modified - Fix 
Camerazoom 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 
Shapeso that thepositionis 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.paintto 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 
sizeandpositioninPositionComponentfinal - Add a 
snapToandonPositionUpdatemethod 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 
followVector2method to theCamera - Make 
gameReflate - Fix Scroll example
 - Add a 
renderPointmethod toCanvas - Add zoom to the camera
 - Add 
moveToTargetas 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.darttodevice.dart - Moving render functions from 
util.darttoextensions/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 
CompositiontoImageCompositionto prevent confusion with the composition component - Added 
rotationandanchorarguments toImageComposition.add - Added 
Imageextensions - Added 
Colorextensions - 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.shouldRemoveuseComponent.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 
toImagemethod for theSpriteclass - Uniform use of 
dtinstead oftin all update methods - Add more optional arguments for unified constructors of components
 - Fix order that parent -> children render in
 
1.0.0-rc6 #
- Use 
Offsettype directly inJoystickAction.updatecalculations - Changed 
parseAnchorinexamples/widgetsto 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 
findinstead ofglobstarpattern inscripts/lint.shas 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 
Timercallback doesn't fire for non-repeating timers, also fixing bug withParticlelifespan - Adding shortcut for loading Sprites and SpriteAnimation from the global cache
 - Adding loading methods for the different 
ParallaxComponentparts and refactor how the delta velocity works - Add tests for 
Timerand fix a bug whereprogresswas not reported correctly - Refactored the 
SpriteBatchclass to be more elegant and to supportVector2. - Added fallback support for the web on the 
SpriteBatchclass - Added missing documentation on the 
SpriteBatchclass - Added an utility method to load a 
SpriteBatchon theGameclass - Updated the 
widgets.mddocumentation - Removing methods 
initialDimensionsandremoveGestureRecognizerto avoid confusion - Adding standard for 
SpriteComponentandSpriteAnimationComponentconstructors - 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 
gameargument onGameWidgetis 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 
resizemethod on components toonGameResize - Make 
Resizablehave agameSizeproperty 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 
assetswill not be added to prefixes automatically) - Fix lint issues with 0.28.0
 
0.28.0 #
- Fix spriteAsWidget deprecation message
 - Add 
lineHeightproperty toTextConfig - Adding pause and resume methods to time class
 
0.27.0 #
- Improved the accuracy of the 
FPSCounterby 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 
updateandrendermethods - 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 
Bgmclass 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 
destroyOnFinishflag 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#reversedallowing 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 
elapsedproperty 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
 



