flame 1.33.0
flame: ^1.33.0 copied to clipboard
A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.
1.33.0 #
Note: This release has breaking changes.
- REFACTOR: Re-organize internal event imports (#3742). (7523e014)
- PERF:
addAllshouldn't create unnecessary growing lists (#3737). (d1fa9d0d) - FIX: Store json maps directly in AssetsCache (#3746). (8a9f493f)
- FIX: Unique
ComponentKeytoString (#3739). (9a4a8f20) - FIX: Depreciated AssetManifest.json switched to AssetManifest API (#3734). (a2bd9827)
- FEAT: Dummy commit. (8f7437d3)
- FEAT: Added fromCache method to AssetsCache (#3740). (33a7123f)
- FEAT: Add a "raw" field to access the underlying Flutter event in the new event system (#3731). (36eb3929)
- DOCS: Layout components (#3752). (0aa145bb)
- DOCS: Deprecate TapDetector in favour of TapCallbacks (#2886). (b173697b)
- BREAKING FEAT: Implements ExpandedComponent (#3662). (212ed354)
- BREAKING FEAT: Support secondary taps (right click) on new callbacks system (#3741). (46bd3856)
1.32.0 #
1.31.0 #
Note: This release has breaking changes.
- FIX: Resume engine on mount if paused by backgrounding (#3631) (#3637). (b556dc35)
- FIX: Export
ComponentRenderContext(#3669). (086096ca) - FIX: The
ParallaxComponentshould respect thevirtualSize(#3666). (9f29c785) - FIX: Attach layout listeners to new children (#3648). (4821ec2c)
- FEAT: Add support for model parsing and rendering in flame_3d, including skeletal animations (#3675). (cc58aef5)
- FEAT: Add Random extensions (#3672). (50e5f296)
- FEAT: Padding component (#3661). (6c953a28)
- FEAT: Add canPop to RouterComponent (#3659). (6bd3b48f)
- FEAT: Add children and priority to SpriteBatchComponent (#3649). (97b9ba83)
- BREAKING REFACTOR: Remove shrinkwrap (#3660). (e8860f62)
1.30.1 #
1.30.0 #
Note: This release has breaking changes.
- FIX:
angleToandlookAtshould consider parental transformations (#3629). (e6f3d105) - FIX:
angleTo,absoluteAngleand theanglesetter now returns normalized angles between[-pi, pi](#3629). (e6f3d105) - FIX: Delay should work with SpeedEffectControllers (#3618). (bfbb49f5)
- FIX: Pass in intended parent to remove (#3626). (7a05f74d)
- FIX: Call
super.onDisposelast and checkmountedbeforesetState(#3623). (3d2716c1) - FIX: Angled line intersections should work with 32-bit vectors (#3617). (e32bff45)
- FIX: PostProcessComponent should size dynamically (#3611). (baecb861)
- FEAT: Add
targetargument toSpawnComponent(#3635). (3747e1e8) - FEAT: Add
spawnCounttoSpawnComponent(#3634). (f377d7e7) - FEAT: Adding RasterSpriteComponent.fromImage constructor (#3627). (74a84ba7)
- FEAT: Implement measure to fix ghost lines and graphical artifacts in Sprites (#3590). (6fd36bc1)
- BREAKING FEAT: Pass
WidgetTesterfortestGoldenprepare function (#3624). (10509326)
1.29.0 #
Note: This release has breaking changes.
- FIX: Only expose
ReadOnlyOrderedsetfromcomponent.children(#3606). (79351d19) - FIX: Dispose picture is postprocess (#3604). (3b24cdac)
- FIX: Materialize post process list before removing items (#3591). (e858cc1f)
- DOCS: Update structure and add RowComponent + ColumnComponent docs (#3599). (d04843a4)
- BREAKING FEAT: Children should retain
parentafter parent is remove from tree (#3602). (008829af)
1.28.1 #
- REFACTOR: Replace dart:io usage with defaultTargetPlatform (#3567). (77925eb8)
- FIX: Add fragment shader extension from flutter_shaders (#3578). (27115729)
- FIX: Use
virtualSizewhen callingonParentResizeon children ofViewport(#3577). (245fb3f5) - FEAT: Add method to toggle overlays (#3581). (ad7c37e1)
1.28.0 #
Note: This release has breaking changes.
- FIX: Priority change should be reflected directly (#3564). (ab2fd639)
- FIX: Deprecate
HasGameRefin favor ofHasGameReference(#3559). (a882261b) - FIX: The SpriteButton label should be nullable (#3557). (80a598cd)
- FIX: Update ordered_set, remove ComponentSet (#3554). (728e13f8)
- FEAT: Post Process API (#3404). (c3316ae4)
- FEAT: Add helper methods on LineSegment (translate, inflate, deflate, spread) (#3561). (6d388870)
- FEAT: Support for disabled state for
SpriteButton(#3560). (eaa2b442) - FEAT: Add a Render Context API (#3409). (532f0191)
- FEAT: Adding tickCount to TimerComponent (#3552). (dcd694e8)
- FEAT: Ability to reset SpriteAnimation on removal (#3553). (59ae5831)
- BREAKING FIX: Use 32bit Vector2 in Flame to be compatible with shaders and forge2d (#3515). (19dcecf5)
1.27.0 #
1.26.1 #
1.26.0 #
- FIX: RouterComponent should be on top (#3524). (aa52a2a5)
- FEAT: Support custom attributes syntax to allow for multiple styles in the text rendering pipeline (#3519). (fbc58053)
- FEAT: Layout shrinkwrap (#3513). (b3fbdd9d)
- FEAT: Layout Components (#3507). (678cf057)
- FEAT: Add
RotateAroundEffect(#3499). (0688f410) - DOCS: Fix missing reference on documentation for InlineTextNode (#3520). (e3aa78b2)
- DOCS: Make onRemove() behavior more clear in API doc (#3502). (f387ad76)
1.25.0 #
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




