flame 1.21.0 copy "flame: ^1.21.0" to clipboard
flame: ^1.21.0 copied to clipboard

A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.

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.updateSprite assertion (#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 pause and resume to HasTimeScale mixin (#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 PositionType from 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 setToStart on child effect controller of wrapping effect controllers (#3168). (217c95f0)
  • FIX: Fix cascading and fallback propagation of text styles (#3129). (7b706d5f)
  • FEAT: Add onReleased action to AdvancedButtonComponent which will be called within onTapUp (#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.dev 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 render properly from nested FlameGames (#3106). (cb1e3701)
  • FIX: CircleHitbox should properly detect when ray is outside (#3100). (8cd9e123)
  • FIX: Clamp opacity set by the ColorEffect to 1.0 (#3069). (9282cc38)
  • FIX: FutureOr return type of ComponentViewportMargin.onLoad (#3059). (72678c67)
  • FIX: Size for SpriteComponent.fromImage should 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 copyWith method on the TextBoxConfig (#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 HasPerformanceTracker mixin on Game (#3043). (6270353a)
  • BREAKING REFACTOR: Use HasTimeScale for Route (#3064). (30fde805)
  • BREAKING FIX: Removed unused parameters from SpriteWidget (#3074). (f49d24c0)

1.16.0 #

Note: This release has breaking changes.

  • REFACTOR: Fix unrelated types reported by DCM (#3023). (1d020a52)
  • FIX: Vertices in PolygonComponent should subtract vertices positioning (#3040). (4f053ed7)
  • BREAKING FIX: Migrate from RawKeyEvent to KeyEvent (#3002). (330862c9)

1.15.0 #

  • REFACTOR: Minimize Vector2 creation in IsometricTileMapComponent (#3018). (5d3be313)
  • FIX: Set margins of JoystickComponent properly (#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.key public (#2988). (7fbd5af9)
  • FEAT: Add a hitboxFilter argument to raycast() (#2968). (d7c53e23)

1.14.0 #

Note: This release has breaking changes.

  • FIX: Set hitbox debugColor to 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 #

  • FIX: The visibleGameSize should be based on viewport.virtualSize (#2945). (bd130b71)
  • FEAT: Adding ability for a SpawnComponent to not auto start (#2947). (37c7a075)

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 bounds while BoundedPositionBehavior's target is null (#2926). (bab9be6e)
  • FEAT: Ability to use selfPositioning in SpawnComponent (#2927). (b526aa14)
  • FEAT: Add margin and spacing properties to SpriteSheet (#2925). (67f7c126)
  • FEAT: Add children to SpriteAnimationComponent.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 FixedResolutionViewport and make withFixedResolution a redirect constructor (#2817). (3420d0e6)
  • FEAT: Using viewport scale on debug mode text paint (#2883). (07ef46ca)
  • FEAT: Make Viewfinder and Viewport comply with CoordinateTransform interface (#2872). (685e1d95)
  • FEAT: Allow sequence effect to be extended (#2864). (ee11aae9)
  • FEAT: Adding children argument to all constructors in the shape components (#2862). (082743d3)
  • FEAT: Optimization in sprite batch (#2861). (208d7897)
  • FEAT: Add TimeTrackComponent and ChildCounterComponent (#2846). (6269551a)
  • FEAT: MoveAlongPathEffect should maintain initial angle of the component (#2835). (e6e78c0d)
  • FEAT: Add a method to adapt the camera bounds to the world (#2769). (87b69df6)
  • FEAT: Scaling particle feature (#2830). (9faae8a2)
  • BREAKING REFACTOR: Replace Offset with opacityFrom and opacityTo in ColorEffect (#2876). (0fd2662d)
  • BREAKING FIX: Add DisplacementEvent to fix delta coordinate transformations for drag events (#2871). (63994ebc)

Migration instructions #

To specify start and end opacities for ColorEffect use the optional named parameters opacityFrom and opacityTo. So offset.dx should be set as opacityFrom and offset.dy should be set as opacityTo.

  • If you are using DragUpdateEvent events, the devicePosition, canvasPosition, localPosition, and delta are deprecated as they are unclear.
  • Use xStartPosition to get the position at the start of the drag event ("from").
  • Use xEndPosition to get the position at the end of the drag event ("to").
  • If you want the delta, use localDelta. it now already considers the camera zoom. No need to manually account for that.
  • Now you keep receiving drag events for the same component even if the drag event leaves the component (breaking).

1.10.1 #

  • FIX: Properly resize ScreenHitbox when needed (#2826). (24fed757)
  • FIX: Setting world on FlameGame camera setter (#2831). (3a8e2464)
  • FIX: Allow null passthrough parent (#2821). (c4d2f86e)
  • FIX: Do not scale debug texts with zoom (#2818). (c2f3f040)
  • FIX(flame): Export FixedResolutionViewport and make withFixedResolution a redirect constructor (#2817). (3420d0e6)
  • FEAT: Scaling particle feature (#2830). (9faae8a2)

1.10.0 #

  • REFACTOR: Remove unnecessary 'async' keyword across the codebase [DCM] (#2803). (2dfe0e5a)
  • REFACTOR: Avoid nested conditional expressions whenever possible [DCM] (#2784). (7b6a5712)
  • REFACTOR: Mark semantically final variables as final (or const) proper [DCM] (#2783). (71f7b475)
  • FIX: Remove deprecations for 1.10.0 (#2809). (5b67b8f1)
  • FIX: Un-register component keys down the component tree (#2792). (0f679b3f)
  • FIX: AlignComponent set child (remove compare) (#2774). (20aaf656)
  • FIX: Hardcode initCurrentGame lifecycle state as resumed (#2775). (0cd5037c)
  • FIX: Fix TextBoxComponent alignment bug (#2781). (0fb53efb)
  • FIX(flame): The component.removeFromParent method should use parent.remove internally (#2779). (bdb1c79a)
  • FIX: Take unmounted adds into consideration (#2770). (be28a440)
  • FEAT: Add IgnoreEvents mixin to ignore events for the whole subtree (#2811). (313411c3)
  • FEAT: Add advanced button component (#2742). (97fff0ed)
  • FEAT: Introduce the FixedResolutionViewport (#2796). (4c762f94)
  • FEAT: AssetsBundle can be customized in Images and AssetsCache. (#2807). (a23f80e9)
  • FEAT: Backdrop (static backgrounds) component for CameraComponent (#2787). (ab329f71)
  • FEAT: Align component refactoring (#2767). (bde34efe)
  • DOCS: Remove last broad cSpell bypass regex and fix all violations (#2802). (9b16b178)

1.9.1 #

  • FIX: Add necessary generics on mixins on FlameGame (#2763). (b1f5ff26)
  • FIX: Correctly refreshes the widget after new mouse detector (#2765). (64330022)
  • FIX: Allow moving to a new parent in the same tick (#2762). (313650ea)

1.9.0 #

Note: This release has breaking changes.

  • REFACTOR: Enable DCM linting (#2667). (27a8fd61)
  • REFACTOR: Fix lint issues across the codebase - Part 2 (#2677). (10e4109c)
  • FIX: Prevent onRemove/onDetach being called for initial Gesture Detector addition (#2653). (d1721464)
  • FIX: Use root game for gestures (#2756). (f5d0cb38)
  • FIX: Add possibility to remove a child and add it to the same parent (#2755). (285d31ab)
  • FIX: Adding scale parameter to RectangleComponent constructors (#2730). (173908d9)
  • FIX: Set CameraComponent.priority to max (#2732). (820ece1c)
  • FIX: Change to FilterQuality.medium instead of high (#2733). (fc19890c)
  • FIX: Avoid creating new Vector2 in globalToLocal and localToGlobal (#2727). (9fb3bf8d)
  • FIX: Ambiguation is not needed in render box anymore (#2711). (b3d78f58)
  • FIX: HasGameReference should default to FlameGame (#2710). (93dcb3a1)
  • FIX: Make debugCoordinatesPrecision into a variable instead of a getter (#2713). (9918c051)
  • FIX: Absolute angle takes into account BodyComponent ancestors too (#2678). (75aee767)
  • FEAT: SpawnComponent (#2709). (83f5ea45)
  • FEAT: Add globalToLocal and localToGlobal methods to viewport, viewfinder and camera (#2720). (00185a3b)
  • FEAT: Add HoverCallbacks (#2706). (d460b846)
  • FEAT: Add onDispose to game.dart called from game_widget.dart (#2659). (2f44e483)
  • FEAT(flame): Add helper methods to create frame data on SpriteSheet (#2754). (47722199)
  • FEAT: Implement Snapshot mixin on PositionComponent (#2695). (c1ee24a2)
  • FEAT: Add TextElementComponent (#2694). (10fb65f6)
  • FEAT: Component visibility (HasVisibility mixin) (#2681). (76405daf)
  • FEAT: Add HasWorldReference mixin (#2746). (9105411d)
  • FEAT: Add pause and isPaused to SpriteAnimationTicker (#2660). (37271f5c)
  • DOCS: Improve documentation around SpriteFontTextFormatter (#2661). (8401c569)
  • DOCS: Improved spellchecking (#2722). (2f973abe)
  • DOCS: Enable CSpell on tests (#2723). (e051298c)
  • DOCS: Improve comments and documentation for text-rendering Nodes (#2662). (96978e24)
  • DOCS: Fix examples for v1.9.0 (#2757). (152fbb61)
  • BREAKING REFACTOR: Rename (Text) Elements, Nodes and Styles for clarity, add docs (#2700). (4b420b79)
  • BREAKING REFACTOR: Extract TextRendererFactory (#2680). (eeb6749f)
  • BREAKING REFACTOR: Make TextElement more usable on its own (#2679). (1a64443c)
  • BREAKING REFACTOR: Simplify text rendering pipeline (#2663). (34f69b95)
  • BREAKING REFACTOR: Kill TextRenderer, Long Live TextRenderer (#2683). (a1cb9a06)
  • BREAKING FIX: Update should be called before render in first tick (#2714). (51932c09)
  • BREAKING FEAT: Move Forge2DGame to use CameraComponent (#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:

  1. Instead of adding the components directly to your game with add, add them to the world, this will make the CameraComponent responsible for rendering them instead of the game directly.

    world.add(yourComponent);
    
  2. (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);
    
  3. (Optional) If you want to have a specificly set up CameraComponent in your game from the start you can pass in a camera to the constructor.

    class MyGame extends FlameGame {
      MyGame() 
          : super(
              camera: CameraComponent.withFixedResolution(
                width: 800,
                height: 600,
              ),
            );
    
    
  4. (Optional) A lot of the time it is no longer necessary to extend FlameGame, you can instead build your game or level by extending the World and pass it in to the FlameGame.

    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 mustCallSuper from onComponentTypeCheck (#2561). (bcae760c)
  • FIX: Update sdk constraints to >=3.0.0 (#2554). (2f71e06e)
  • FIX: Reduce the Vector2 creations in Anchor (#2550). (5a9434b0)
  • FIX: Fix disappearing text on TextBoxComponent for larger pixelRatios (#2540). (6e1d5466)
  • FEAT: Option to prevent propagating collision events from ShapeHitbox to _hitboxParent (#2594). (a58d7436)
  • FEAT: Adding filterQuality arguments to Parallax load methods (#2596). (ff3d9107)
  • FEAT: Option to use toImageSync in ImageComposition class (#2593). (66d5f97d)
  • FEAT: ComponentKey API (#2566). (b3efb612)
  • FEAT(flame): Set a default negative priority on the world for general use (#2572). (390e9700)
  • FEAT: Add useful methods to Rectangle class (#2562). (4710530b)
  • BREAKING FIX: Convert PositionEvent.canvasPosition to local coordinates (#2598). (87139c85)

1.8.0 #

Note: This release has breaking changes.

  • FIX: Update sdk constraints to >=3.0.0 (#2554). (2f71e06e)
  • FIX: Reduce the Vector2 creations in Anchor (#2550). (5a9434b0)
  • FIX: Fix disappearing text on TextBoxComponent for larger pixelRatios (#2540). (6e1d5466)
  • FIX: Avoid the creation of Vector2 objects in Parallax update (#2536). (3849f07d)
  • FIX: Solve warnings from 3.10.0 analyzer (#2532). (b41622db)
  • FIX: Move errorBuilder and loadingBuilder to constructors (#2526). (55ec0bc3)
  • FEAT: Add onComplete callback to AnimationWidget (#2515). (0b68be8a)
  • FEAT: Add stepEngine to Game (#2516). (1ed2c5a2)
  • FEAT: Customise grid of NineTileBox (#2495). (a25b0a03)
  • FEAT: Accept CollisionType in hitbox constructor (#2509). (89926227)
  • DOCS: Update content types of sphinx code snippets (#2519). (306ad320)
  • BREAKING REFACTOR: Move CameraComponent and events out of experimental (#2505). (87b8a067)
  • BREAKING FEAT: Add SpriteAnimationTicker (#2457). (a50c80cf)

Migration instructions #

In the future (maybe as early as v1.9.0) this camera will be removed, please use the CameraComponent instead.

This is the simplest way of using the CameraComponent:

  1. Add variables for a CameraComponent and a World to your game class

    final world = World();
    late final CameraComponent cameraComponent;
    
  2. In your onLoad method, initialize the cameraComponent and add the world to it.

    @override
    void onLoad() {
      cameraComponent = CameraComponent(world: world);
      addAll([cameraComponent, world]);
    }
    
  3. Instead of adding the root components directly to your game with add, add them to the world.

    world.add(yourComponent);
    
  4. (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 #

  • FIX: A mistake in auto-resizing disabling logic (#2471). (e7ebf8e5)
  • FIX: It should be possible to re-add ColorEffect (#2469). (6fa9e9d5)
  • FEAT: Add isDragged in DragCallbacks mixin (#2472). (de630a1c)

1.7.1 #

  • FIX: Stop auto-resizing on external size change in sprite based components (#2467). (df236af4)

1.7.0 #

Note: This release has breaking changes.

  • REFACTOR: Remove "items" variable from core Broadphase class. (#2284). (1819c575)
  • REFACTOR: Added ComponentTreeRoot (#2300). (619b9b15)
  • REFACTOR: Simplify how images.dart decodes images (#2293). (b4925423)
  • REFACTOR: Use variable name on toString in component_test.dart (#2377). (f5c0e5e9)
  • REFACTOR: Remove unused variable "tapTimes" from multi_touch_tap_detector_test.dart (#2379). (cd2b2a10)
  • REFACTOR: Component rebalancing is now performed via a global queue (#2352). (1ef51879)
  • REFACTOR: Component adoption now handled via ComponentTreeRoot (#2332). (5ceb5dda)
  • FIX: Auto-resize SpriteComponent on sprite change (#2430). (158460d7)
  • FIX: Update MoveAlongPathEffect (#2422). (295cd724)
  • FIX: Removed component to be deleted from _broadphaseCheckCache (#2282). (236a74ce)
  • FIX: TextBoxComponent rendering for new line (#2413). (9008998e)
  • FIX: Buttons in ButtonComponents should not be final (#2410). (55f66add)
  • FIX: Set size of viewports in onLoad (#2452). (d1ac01f5)
  • FIX: Incorrect JoystickComponent position in landscape mode #2387 (#2389). (f125593a)
  • FIX: RouterComponent replace methods to correctly handle previous/nextRoute (#2296). (2b1f2266)
  • FIX: Use the hitboxParent instead of the parent in the componentTypeCheck (#2335). (7920e2ba)
  • FIX: Materialize list in Component.removeWhere (#2458). (13cce4ae)
  • FIX: TextBoxComponent's boxConfig timePerChar generates "Optimized Out" error #2143 (#2328). (5874f600)
  • FIX: Camera no longer "sticks" to boundary with BoundedPositionBehavior (#2307). (914dc6a7)
  • FEAT: Add reusable vector to the Vector2 extension (#2429). (03d45df5)
  • FEAT: Change HasCollisionDetection to be on Component (#2404). (637c258b)
  • FEAT: Added AlignComponent layout component (#2350). (4f5e56f0)
  • FEAT: Add autoResize for SpriteAnimationComponent and SpriteAnimationGroupComponent (#2453). (dbeba238)
  • FEAT: Adding ImageExtension.resize (#2418). (a3f1601d)
  • FEAT: Add position and anchor params for Sprite and SpriteAnimation Particles (#2370). (181e0b59)
  • FEAT: Add autoResize for SpriteGroupComponent (#2442). (1576bd83)
  • FEAT: Introduce flame_noise, deprecate NoiseEffectController (#2393). (b2fdf06a)
  • FEAT: Added HardwareKeyboardDetector (#2257). (95b1fc0f)
  • FEAT: Allow people to opt-out on repaint boundary (#2341). (b6aeec24)
  • FEAT: Add HasTimeScale mixin (#2431). (d2a8fe01)
  • FEAT: Add DoubleTapCallbacks that receives double-tap events. (#2327). (b5f79d1c)
  • FEAT: Add ability to opt-out flip (#2316). (34c3b6bd)
  • FEAT: Make limit field mutable in the Timer class (#2358). (4e0a8c46)
  • DOCS: Rename caveace asset to cave_ace in our examples (#2304). (e2399f91)
  • DOCS: Update cspell github action and configuration (#2325). (e0a4c07f)
  • DOCS: Fix actual typos that made into our dictionary (#2305). (343b8452)
  • DOCS: Add Flame logo for pub.dev (#2338). (65091f34)
  • DOCS: Refactor documentation for GameWidget (#2344). (655824fc)
  • DOCS: Update funding links (#2420). (8294a2a1)
  • DOCS: Fix old doc code (#2322). (90321658)
  • BREAKING REFACTOR: Use ComponentTreeRoot for component removal (#2317). (75446185)
  • BREAKING FEAT: HasDraggableComponents mixin is no longer needed (#2312). (3faf1149)
  • BREAKING FEAT: The HasTappableComponents mixin is no longer needed (#2450). (b5bdf4ec)

Migration instructions #

If you have components that rely on receiving onGameResize calls before they load, then you can retrieve the game's size in onLoad manually via findGame()!.size.

The HasDraggableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onDragStart, onDragUpdate, etc -- then they will no longer work. If you want to receive drag events at the top level of the game, then simply add a DragCallbacks component to the top level of the game.

The HasTappableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onTapDown, onTapUp, etc -- then they will no longer work. If you want to receive tap events at the top level of the game, then simply add a TapCallbacks component to the top level of the game.

1.6.0 #

Note: This release has breaking changes.

  • PERF: Avoid Vector2 creation in Sprite.render (#2261). (736733d9)
  • FIX: Only use initialized game for tests and remove setMount from onGameResize (#2246). (2a0f1d4b)
  • FIX: Re-use paint object in ImageParticle (#2210). (7a945d96)
  • FIX: Depend on test: any for flame_test (#2207). (acfd418d)
  • FEAT: Add a canSee method to the CameraComponent (#2270). (2347c8f5)
  • FEAT: Add moveBy to CameraComponent (#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 returns FutureOr<void> (#2228). (d898b539)
  • BREAKING FEAT: Adds new route methods pushReplacement, pushReplacementNamed, and pushReplacementOverlay (#2249). (a2772b4e)

1.5.0 #

Note: This release has breaking changes.

  • REFACTOR: OpacityEffect now uses opacity instead of alpha internally (#2064). (b3b67301)
  • REFACTOR: Game render box cleanup (#1691). (60a5830d)
  • FIX: Event mixins missing @mustCallSuper (#2036). (c26d5da3)
  • FIX: SpeedController advance() should execute after its effect's onStart() (#2173). (7a1e2e8b)
  • FIX: Refresh vertices on size change of RectangleComponent (#2167). (4020d68b)
  • FIX: Fix coordinate system calculation in FixedAspectRationViewport (#2175). (c9c9881c)
  • FIX: SpriteButtonComponent missing @mustCallSuper added (#2001). (45a9d79b)
  • FIX: Focus handling with a scope on the GameWidget (#1725). (d1cd8517)
  • FIX: RemoveEffect should work within SequenceEffect (#2110). (03e1f33d)
  • FIX: #1966 unit test for Particles (#2097). (59bd7ebb)
  • FIX: OpacityEffect custom paint override (#2056). (fe9d4d9b)
  • FIX: #1998 (#2013). (f63711dc)
  • FIX: solid circles and polygons intersection (#2067). (62c5c2e1)
  • FIX: #2017 (#2039). (7f546b0f)
  • FIX: Exception when having multiple calls to dispose() function of a Svg instance (#2085). (a287904e)
  • FIX: Add missing hitbox parameters (#2070). (8aacb555)
  • FIX: Change Vector2.zero() to Vector2(0, -1) in Vector2Extensions.fromRadians() (#2016). (801c683c)
  • FEAT: Add children to World constructor (#2093). (3af416dc)
  • FEAT: Add paint layers to HasPaint and associated component renders (#2073). (9e6bf4fb)
  • FEAT: Add SizeProvider to clip_component and custom_paint_component. (#2100). (bb710646)
  • FEAT: Added HasGameReference mixin (#1828). (12ce270b)
  • FEAT: Added toString method to all the drags events message handlers (#2014). (a34f1df7)
  • FEAT: Add maintainState property to Route (#2161). (576ceaac)
  • FEAT: add onCancelled to ButtonComponent and HudButtonComponent (#2193). (e7f08906)
  • FEAT: onComponentTypeCheck support for ShapeHitbox (#1981). (f840210b)
  • FEAT: Added glow effect using maskFilter (#2129). (bcecd3c1)
  • FEAT: Add support for styles propagating through the text node tree (#1915). (b5780d42)
  • FEAT: Added SpriteFont class (#1992). (a0d7eada)
  • FEAT: Added CameraComponent.withFixedResolution() constructor (#2176). (e289f118)
  • FEAT: Add optional maxDistance to raycast (#2012). (6b78b10f)
  • FEAT: clampLength for Vector2 extension (#2190). (51a896b2)
  • FEAT: Adding onChildrenChanged (#1976). (3d043b86)
  • FEAT: Adding ComponentNotifier API (#1889). (bd7f51f5)
  • FEAT: removed future + isRemoved field for Component (#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)

  • FIX: Expose hitboxParent from Hitbox (#1928). (3ba93351)

  • FIX: Raycast from CircleHitbox's center (#1918). (57ca47c8)

  • FEAT: quad tree broadphase support (#1894). (e33d5410)

  • FEAT: Make _ButtonState public for SpriteButtonComponent (#1941). (e80412c5)

  • FEAT: Add possibility for solid hitboxes (#1919). (205ac561)

  • FEAT: Adding callbacks for EffectController (#1926) (#1931). (8dcdf155)

  • FEAT: Added DebugTextFormatter (#1921). (426827d1)

  • 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: Adding ClipComponent (#1769). (f34d86db)

  • FEAT: Add support for isometric staggered maps (#1895). (96be8408)

  • FEAT: Experimental integer viewport (#1866). (63822de3)

  • FEAT: RecycledQueue now supports modification during iteration (#1884). (01b59493)

  • FEAT: Allow children of ComposedParticle to have varied lifespan (#1879). (6db519ec)

  • FEAT: Add removeWhere to Component (#1878). (abd28f28)

  • FEAT: Added RecycledQueue class (#1864). (9457e38e)

  • FEAT: Possibility to ignore hitboxes for ray casting (#1863). (b22bc643)

  • DOCS: Added Style Guide and Test Writing Guide (#1897). (999caca1)

  • BREAKING FIX: Make all ComponentSet modifications internal (#1877). (f26a066d) Migration instructions: For most methods Component has the corresponding methods directly on it already. For example, instead of using component.children.addAll you should do component.addAll.

  • BREAKING CHORE: Remove functions/classes that were scheduled for removal in v1.3.0 (#1867). (00ab347c) For each deleted function/method/class, the deprecation comment already specifies what functionality should be used instead.

1.3.0 #

Note: This release has breaking changes.

  • REFACTOR: Use new "super"-constructors in ShapeComponents (#1752). (b69e8d85)
  • REFACTOR: Game is now a class, not a mixin (#1751). (5225a4eb)
  • PERF: Use TextElements within the TextComponent (#1802). (7b044430)
  • PERF: Avoid unnecessary copy in AssetsCache.readBinaryFile (#1749). (7e79638d)
  • FIX: ButtonComponent behavior when the engine is paused (#1726). (197e63d6)
  • FIX: Correct flutter constraint (#1731). (c7383843)
  • FIX: World component can now be queried with componentsAtPoint (#1739). (f750d705)
  • FIX: Merge basic and advanced gesture detectors (#1718). (f08f8e12)
  • FIX: Correct key events in GameWidget.controller (#1745). (01ed2ec9)
  • FIX: Camera incorrect follow with zoom and world boundaries. (c1756177)
  • FIX: Add missing paint arguments on shapes (#1727). (e59f3428)
  • FIX: Delay camera update (#1811). (a5598a8f)
  • FIX: Overlays can now be properly added during onLoad (#1759). (9f35b154)
  • FIX: SpriteAnimationWidget can now be update animation safely (#1738). (eb070195)
  • FIX: JoystickComponent drags using the delta Viewport (#1831). (54e40de6)
  • FIX: Specify size for the SpriteWidget (#1760). (82f75fcb)
  • FEAT: New colors to palette.dart (#1783). (85cd60e1)
  • FEAT: add children argument to SpriteComponent.fromImage (#1793). (80a63362)
  • FEAT: Added Decorator class and HasDecorator mixin (#1781). (8d00847c)
  • FEAT: Added TextFormatter classes (#1720). (c44272be)
  • FEAT: Move to Flutter 3.0.0 and Dart 2.17.0 (#1713). (2a41d0d6)
  • FEAT: Added Rotate3DDecorator (#1805). (f05194c8)
  • FEAT: Added Shadow3DDecorator (#1812). (0a41b2da)
  • FEAT: Add tertiary tap detector mixin (#1815). (e9e7b0d5)
  • FEAT: Add Ray2 class to be used in raytracing/casting (#1788). (26196c01)
  • FEAT: Added RouterComponent (#1755). (24092bd7)
  • FEAT: Structured text and text styles (#1830). (bfdc3a29)
  • FEAT: Drag events that dispatch using componentsAtPoint (#1715). (10669c12)
  • FEAT: Added routes that can return a value (#1848). (f1b276e0)
  • FEAT: PositionComponent now has a built-in Decorator (#1846). (8dd52c33)
  • FEAT: add HasAncestor mixin (#1711). (987a44f4)
  • FEAT: Added ability to control overlays via the RouterComponent (#1840). (e2de70c9)
  • FEAT: Add vector projection and inversion (#1787). (d197870f)
  • DOCS: Klondike tutorial, part 4 (#1740). (02d0b71b)
  • BREAKING REFACTOR: Matcher closeToVector() now accepts Vector2 as an argument (#1761). (c5083501)
  • BREAKING PERF: Game.images/assets are now same as Flame.images/assets by default (#1775). (0ccb0e2e)
  • BREAKING FEAT: Raycasting and raytracing (#1785). (ed452dd1)

1.2.1 #

Note: This release has breaking changes.

  • REFACTOR: Game is now a class, not a mixin (#1751). (5225a4eb)
  • REFACTOR: Use new "super"-constructors in ShapeComponents (#1752). (b69e8d85)
  • PERF: Avoid unnecessary copy in AssetsCache.readBinaryFile (#1749). (7e79638d)
  • FIX: Specify size for the SpriteWidget (#1760). (82f75fcb)
  • FIX: SpriteAnimationWidget can now be update animation safely (#1738). (eb070195)
  • FIX: Overlays can now be properly added during onLoad (#1759). (9f35b154)
  • FIX: Camera incorrect follow with zoom and world boundaries. (c1756177)
  • FIX: Correct key events in GameWidget.controller (#1745). (01ed2ec9)
  • FIX: World component can now be queried with componentsAtPoint (#1739). (f750d705)
  • FIX: Correct flutter constraint (#1731). (c7383843)
  • FIX: ButtonComponent behavior when the engine is paused (#1726). (197e63d6)
  • FIX: Add missing paint arguments on shapes (#1727). (e59f3428)
  • FIX: Merge basic and advanced gesture detectors (#1718). (f08f8e12)
  • FEAT: New colors to palette.dart (#1783). (85cd60e1)
  • FEAT: Added TextFormatter classes (#1720). (c44272be)
  • FEAT: Drag events that dispatch using componentsAtPoint (#1715). (10669c12)
  • FEAT: add HasAncestor mixin (#1711). (987a44f4)
  • FEAT: Move to Flutter 3.0.0 and Dart 2.17.0 (#1713). (2a41d0d6)
  • DOCS: Klondike tutorial, part 4 (#1740). (02d0b71b)
  • BREAKING PERF: Game.images/assets are now same as Flame.images/assets by default (#1775). (0ccb0e2e)

1.2.0 #

Note: This release has breaking changes.

  • REFACTOR: Organize Component class (#1608). (069294f4)

  • 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: Simplify HudButtonComponent (#1647). (30d84b7c)

  • REFACTOR: Component's lifecycle futures moved into LifecycleManager (#1613). (39201c40)

  • REFACTOR: TextRenderer and TextPaint moved to separate files (#1628). (5e1f5966)

  • REFACTOR: Move to package imports (#1625). (843ddc36)

  • REFACTOR: Improve tests (#1609). (f33b3986)

  • FIX: Fix tile flips when using canvas.drawAtlas (#1610). (b4ad498f)

  • FIX: Expose CompositeHitbox (#1589). (78775798)

  • FIX: Anchor equality operator is now more reliable (#1560). (0d6581ef)

  • FIX: Deprecate Anchor.translate() (#1672). (80c648fc)

  • FIX: Avoid leaks when using PictureRecorders (#1643). (d67065e5)

  • FIX: Remove nonVirtual method shouldRemove (#1707). (1efd067e)

  • FIX: Fix flame package example app (#1709). (bd2ef967)

  • FIX: Subscription for events when game changes in GameWidget (#1659). (04f0d5d1)

  • FIX: performance improvements on SpriteBatch APIs (#1637). (4b19a1b2)

  • FIX: Removed warnings using flutter v3 (#1640). (69214827)

  • FIX: ParallaxComponent.update mustCallSuper (#1635). (9474ce74)

  • FIX: Isometric tile map component uses scale when getting block from position (#1569). (0c430786)

  • FIX: Dispose TextBoxComponent image cache properly (#1579). (c0e3257a)

  • FIX: ParentIsA missing mustCallSuper (#1604). (72129019)

  • FIX: Component can now be removed in any lifecycle stage (#1601). (c0a14156)

  • FIX: Export NotifyingVector2 (#1633). (aeaf9999)

  • FIX: RectangleHitbox should shrink to bounds (#1596). (60df3b9f)

  • FIX: Components in uninitialized state can now be safely removed (#1551). (ba617790)

  • FIX: Bug in "tty" TextBoxComponent (#1619). (6cc3e827)

  • FIX: Component.loaded future sometimes failed to complete (#1593). (89ee9b98)

  • FIX: correctly calculating frame length (#1578). (efda45e7)

  • FIX: Optimize AcceleratedParticle and MovingParticle (#1568). (5591c109)

  • FEAT: Method componentsAtPoint now reports the "stacktrace" of points (#1615). (e2398966)

  • FEAT: Allow changing parent from null parent (#1662). (53268b5f)

  • FEAT: Callbacks in HudButtonComponent constructor and ViewportMargin mixin to avoid code duplication (#1685). (f55b2e0d)

  • FEAT: Add more lint rules (#1703). (49252f8e)

  • FEAT: Keep stacktrace when rethrowing an error from GameWidget (#1675). (dd28183b)

  • FEAT: Aligned text in the TextBoxComponent (#1620). (c64aedae)

  • FEAT: Included completed completer in SpriteAnimation (#1564). (71999b19)

  • FEAT: Optional key for Images.load (#1624). (067c34b5)

  • FEAT: Bump to Flutter 2.10.0 (#1617). (beac9013)

  • FEAT: Add isFirstFrame and onStart event to SpriteAnimation (#1492). (701d0706)

  • FEAT: Add FpsComponent and FpsTextComponent (#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: adding KeyboardListenerComponent (#1594). (c887c361)

  • FEAT: new flame bloc API (#1538). (f98970a9)

  • FEAT: Added the onLongTapDown event (#1587). (ed302d89)

  • FEAT: Add ability to add/remove multiple overlays at once (#1657). (0ac84c00)

  • FEAT: Helpers for whether a PositionComponent is flipped. (#1700). (cf67147e)

  • FEAT: World bounds for a CameraComponent (#1605). (abb497ab)

  • FEAT: Implement tap events based on componentsAtPoint (#1661). (2711ba60)

  • FEAT: add ParentIsA to force parent child relations (#1566). (2cdf3868)

  • FEAT: Adding classes for raw geometric shapes (#1528). (666a2b19)

  • FEAT: Add solveQuadratic() utility function (#1665). (d8bbfc06)

  • FEAT: allow external packages to await for game to be loaded (#1699). (a15eda0b)

  • FEAT: Children as argument to FlameGame (#1680). (db336c03)

  • FEAT: Add range constructor on SpriteAnimationData (#1572). (e42b4958)

  • FEAT: Add helper function for creating golden tests (#1623). (d0faaada)

  • FEAT: Added ability to render spritesheet-based fonts (#1634). (3f287898)

  • BREAKING FIX: FixedResolutionViewport noClip -> clip (#1612). (02be4acd)

  • BREAKING FEAT: Adding GameWidget.controlled (#1650). (7ef6a51e)

  • BREAKING FEAT: remove onTimingsCallback for Flutter 3.0 (#1626). (0761a79d)

  • BREAKING FIX: Game.mouseCursor and Game.overlays can now be safely set during onLoad (#1498). (821d01c3) Migration instructions: The mouseCursor property is now a plain property with a setter, not a ChangeNotifier. Consequently, instead of writing game.mouseCursor.value = ..., one needs to write game.mouseCursor = ... now.

  • BREAKING FEAT: Added anchor for the Viewport (#1611). (c3bb14b7) Migration instructions: The coordinate system of the Viewport now always has the origin in the top-left corner of its bounding box (previously it was in the center) -- similar to the local coordinate system of a PositionComponent.

  • BREAKING FEAT: Add ability to render without loading on image related widgets (#1674). (40a061bc) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.

  • BREAKING FEAT: Size effects will now work only on components implementing SizeProvider (#1571). (1bfed571) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.

1.1.1 #

  • REFACTOR: Added classes MoveByEffect and MoveToEffect (#1524). (2171a119)
  • FIX: Invalidate polygon cache on resize (#1529). (11bf75d0)
  • FIX: Bug with anchor parameter in Sprite.render() (#1508). (325df46e)
  • FIX: Make CollisionProspect's a, b have unordered equality (#1519). (5b2471c8)
  • FEAT: able to clear all overlays (#1536). (7b15c9a1)
  • FEAT: Automatic Isometric Grid scaling (#1468). (cae8c0ce)
  • FEAT: Added children parameter to Component constructor (#1525). (f0b31fcf)
  • FEAT: Camera's Viewfinder can now be affected by rotation effects (#1527). (f46cae04)
  • FEAT: Scale (zoom) effects can now be applied to Viewfinder in CameraComponent (#1514). (403b6e60)
  • FEAT: adding HasGameRef.mockGameRef (#1520). (4f389f8b)
  • FEAT: flame tests can now generate golden tests (#1501). (316a0b3b)

1.1.0 #

  • Graduate package to a stable release. See pre-releases prior to this version for changelog entries.

1.1.0-releasecandidate.6 #

  • FIX: Only end collisions where there was a collision (#1471). (e1e87fc4)
  • FIX: debugMode should be inherited from parent when mounted (#1469). (e894d201)
  • FEAT: Added method that returned descendants (#1461). (a41f5376)
  • FEAT: Possibility to mark gesture events as handled (#1465). (4c3960c3)
  • FEAT: adding loaded future to the component (#1466). (6434829b)
  • FEAT: Deprecating Rect methods (#1455). (4ddd90aa)
  • FEAT: Added .anchor property to CameraComponent.Viewfinder (#1458). (d51dc5e1)
  • DOCS: Rect extension docs is out of date (#1451). (7e505722)

1.1.0-releasecandidate.5 #

  • FIX: @mustCallSuper missing on components (#1443). (e01b4b1a)
  • FEAT: Add setter to priority (#1444). (34284686)

1.1.0-releasecandidate.4 #

  • FIX: Setting images.prefix to empty string (#1437). (694102bd)

1.1.0-releasecandidate.3 #

  • REFACTOR: Parent change and component removal logic (#1385). (8b9fa352)
  • FIX: viewfinders behavior under zoom (#1432). (f3cf85b6)
  • FIX: change strokeWidth in Component (#1431). (0e174fe8)
  • FEAT: allowing changing of the images prefix and allowing empty prefixes (#1433). (de4d9416)

1.1.0-releasecandidate.2 #

Note: This release has breaking changes.

  • REFACTOR: Loadable mixin no longer declares onMount and onRemove (#1243). (b1f6a34c)
  • REFACTOR: Organize tests in the game/ folder (#1403). (102a27cc)
  • REFACTOR: Clean up of top-level tests (#1386). (e50003ed)
  • REFACTOR: Resize logic in GameRenderBox (#1308). (17c45c28)
  • REFACTOR: Simplify GameWidgetState.loaderFuture (#1232). (eb30c2e5)
  • REFACTOR: Component.ancestors() is now an iterator (#1242). (ce48d77a)
  • REFACTOR: Add a few more rules to flame_lint, including use_key_in_widget_constructors (#1248). (bac6c8a4)
  • REFACTOR: Removed parameter Component.updateTree({callOwnUpdate}) (#1224). (ed227e7c)
  • REFACTOR: Remove Loadable, optional onLoads (#1333). (05f7a4c3)
  • REFACTOR: Loadable no longer declares onGameResize (#1329). (20776e86)
  • REFACTOR: Use canvas.drawImageNine in NineTileBox (#1314). (d77e5efe)
  • PERF: Allow components to have null children (#1231). (66ad4b08)
  • FIX: flame svg perfomance (#1373). (bce24173)
  • FIX: Fix collision detection comments and typo (#1422). (dfeafdd6)
  • FIX: ParallaxComponent should have static positionType (#1350). (cfa6bd12)
  • FIX: Add missing priority argument for JoystickComponent (#1227). (23b1dd8b)
  • FIX: Step time in SpriteAnimation must be positive (#1387). (08e8eac1)
  • FIX: HudMarginComponent positioning on zoom (#1250). (4f0fb2de)
  • FIX: Call onCollisionEnd on removal of Collidable (#1247). (5ddcc6f7)
  • FIX: Both places should have strictMode = false (#1272). (72161ad8)
  • FIX: remove vector_math dependency (#1361). (56b33da2)
  • FIX: Deprecate pause and resume in GameLoop (#1240). (dc37053f)
  • FIX: Deprecate Images.decodeImageFromPixels (#1318). (1a80130c)
  • FIX: Properly dispose images when cache is cleared (#1312). (825fb0cc)
  • FIX: Fix SpriteAnimationWidget lifecycle (#1212). (86394dd3)
  • FIX: redrawing bug in TextBoxComponent (#1279). (8bef4805)
  • FIX: Add missing paint argument to SpriteComponent.fromImage (#1294). (254a60c8)
  • FIX: black frame when activating overlays (#1093). (85caf463)
  • FIX: prepareComponent should never run again on a prepared component (#1237). (7d3eeb73)
  • FIX: Allow most basic and advanced gesture detectors together (#1208). (5828b6f3)
  • FEAT: Added SpeedEffectController (#1260). (20f521f5)
  • FEAT: Added SineEffectController (#1262). (c888703d)
  • FEAT: Added ZigzagEffectController (#1261). (59adc5f3)
  • FEAT: Add onReleased callback for HudButtonComponent (#1296). (87ee34ca)
  • FEAT: Turn off strictMode for children (#1271). (6936e1d9)
  • FEAT: onCollisionStart for Collidable and HitboxShape (#1251). (9b95686b)
  • FEAT: adding has mounted to component (#1418). (f8f9e045)
  • FEAT: Added NoiseEffectController (#1356). (fad9d1d5)
  • FEAT: exporting cache classes (#1368). (3e058973)
  • FEAT: Update scale events to contain pan info (#1327). (70b96b07)
  • FEAT: Components are now always added in the correct order (#1337). (c753fc46)
  • FEAT: Added transform to Rect (#1360). (1818be41)
  • FEAT: Camera as a component (#1355). (c61a1c18)
  • FEAT: Effect.onComplete callback as an alternative to onFinish() (#1201). (932a8111)
  • FEAT: Add RandomEffectController (#1203). (cdb2650b)
  • FEAT: Component.childrenFactory can be used to set up a global ComponentSet factory (#1193). (223ab758)
  • DOCS: Added documentation for GameLoop class (#1234). (b1d4e587)
  • DOCS: Fix various dartdoc warnings (#1353). (9f096053)
  • BREAKING REFACTOR: Separate ComponentSet from the Component (#1266). (e2655b88)
  • BREAKING FIX: Remove pointerId from Draggable callbacks (#1313). (27adda17)
  • BREAKING FEAT: Use a broadphase to make collision detection more efficient (#1252). (29dd09ca)
  • BREAKING FEAT: Added SequenceEffect (#1218). (7c6ae6de)

1.1.0-releasecandidate.1 #

Note: This release has breaking changes.

  • REFACTOR: Clean up of top-level tests (#1386). (e50003ed)
  • REFACTOR: Remove Loadable, optional onLoads (#1333). (05f7a4c3)
  • REFACTOR: Loadable no longer declares onGameResize (#1329). (20776e86)
  • REFACTOR: Organize tests in the game/ folder (#1403). (102a27cc)
  • REFACTOR: Use canvas.drawImageNine in NineTileBox (#1314). (d77e5efe)
  • REFACTOR: Resize logic in GameRenderBox (#1308). (17c45c28)
  • REFACTOR: Loadable mixin no longer declares onMount and onRemove (#1243). (b1f6a34c)
  • REFACTOR: Removed parameter Component.updateTree({callOwnUpdate}) (#1224). (ed227e7c)
  • REFACTOR: Add a few more rules to flame_lint, including use_key_in_widget_constructors (#1248). (bac6c8a4)
  • REFACTOR: Component.ancestors() is now an iterator (#1242). (ce48d77a)
  • REFACTOR: Simplify GameWidgetState.loaderFuture (#1232). (eb30c2e5)
  • PERF: Allow components to have null children (#1231). (66ad4b08)
  • FIX: prepareComponent should never run again on a prepared component (#1237). (7d3eeb73)
  • FIX: flame svg perfomance (#1373). (bce24173)
  • FIX: Deprecate pause and resume in GameLoop (#1240). (dc37053f)
  • FIX: Deprecate Images.decodeImageFromPixels (#1318). (1a80130c)
  • FIX: Properly dispose images when cache is cleared (#1312). (825fb0cc)
  • FIX: Add missing paint argument to SpriteComponent.fromImage (#1294). (254a60c8)
  • FIX: Add missing priority argument for JoystickComponent (#1227). (23b1dd8b)
  • FIX: remove vector_math dependency (#1361). (56b33da2)
  • FIX: redrawing bug in TextBoxComponent (#1279). (8bef4805)
  • FIX: Fix SpriteAnimationWidget lifecycle (#1212). (86394dd3)
  • FIX: black frame when activating overlays (#1093). (85caf463)
  • FIX: Call onCollisionEnd on removal of Collidable (#1247). (5ddcc6f7)
  • FIX: HudMarginComponent positioning on zoom (#1250). (4f0fb2de)
  • FIX: Both places should have strictMode = false (#1272). (72161ad8)
  • FIX: ParallaxComponent should have static positionType (#1350). (cfa6bd12)
  • FIX: Allow most basic and advanced gesture detectors together (#1208). (5828b6f3)
  • FIX: Step time in SpriteAnimation must be positive (#1387). (08e8eac1)
  • FEAT: Update scale events to contain pan info (#1327). (70b96b07)
  • FEAT: Add RandomEffectController (#1203). (cdb2650b)
  • FEAT: Components are now always added in the correct order (#1337). (c753fc46)
  • FEAT: Effect.onComplete callback as an alternative to onFinish() (#1201). (932a8111)
  • FEAT: exporting cache classes (#1368). (3e058973)
  • FEAT: Added NoiseEffectController (#1356). (fad9d1d5)
  • FEAT: Added SineEffectController (#1262). (c888703d)
  • FEAT: Added SpeedEffectController (#1260). (20f521f5)
  • FEAT: Added ZigzagEffectController (#1261). (59adc5f3)
  • FEAT: Turn off strictMode for children (#1271). (6936e1d9)
  • FEAT: onCollisionStart for Collidable and HitboxShape (#1251). (9b95686b)
  • FEAT: Component.childrenFactory can be used to set up a global ComponentSet factory (#1193). (223ab758)
  • FEAT: Added transform to Rect (#1360). (1818be41)
  • FEAT: Add onReleased callback for HudButtonComponent (#1296). (87ee34ca)
  • DOCS: Fix various dartdoc warnings (#1353). (9f096053)
  • DOCS: Added documentation for GameLoop class (#1234). (b1d4e587)
  • BREAKING REFACTOR: Separate ComponentSet from the Component (#1266). (e2655b88)
  • BREAKING FIX: Remove pointerId from Draggable callbacks (#1313). (27adda17)
  • BREAKING FEAT: Added SequenceEffect (#1218). (7c6ae6de)

CHANGELOG #

[1.0.0] #

  • Add ButtonComponent backed by two PositionComponents
  • Add SpriteButtonComponent backed by two Sprites
  • Allow more flexible construction of EffectControllers and make them able to run back in time
  • Remove old effects system
  • Export new effects system
  • Introduce updateTree to follow the renderTree convention
  • Fix Parallax.load with different loading times
  • Fix render order of components and add tests
  • Fix HitboxCircle when component is flipped
  • Add ColorEffect
  • MoveAlongPathEffect can now be absolute, and can auto-orient the object along the path
  • ScaleEffect.by now applies multiplicatively instead of additively
  • isHud replaced with PositionType
  • Remove web fallback for drawAtlas in SpriteBatch, but added flag useAtlas to activate it

[1.0.0-releasecandidate.18] #

  • Forcing portrait and landscape mode is now supported on web
  • Fixed margin calculation in HudMarginComponent when using a viewport
  • Fixed position calculation in HudMarginComponent when using a viewport
  • Add noClip option to FixedResolutionViewport
  • Add a few missing helpers to SpriteAnimation

[1.0.0-releasecandidate.17] #

  • Added StandardEffectController class
  • Refactored Effect class to use EffectController, added Transform2DEffect class
  • Clarified TimerComponent example
  • Fixed pause and resume engines when GameWidget had rebuilds
  • Removed runOnCreation attribute in favor of the paused attribute on FlameGame
  • Add CustomPainterComponent
  • Alternative implementation of RotateEffect, based on Transform2DEffect
  • Alternative implementation of MoveEffect, based on Transform2DEffect
  • Fix onGameResize margin bug in HudMarginComponent
  • PositionComponent.size now returns a NotifyingVector2
  • Possibility to manually remove TimerComponent
  • Rename Hitbox mixin to HasHitboxes
  • Added RemoveEffect and SimpleEffectController
  • Create default implementations of RectangleComponent, CircleComponent and PolygonComponent
  • Streamlined the argument list for all components extending PositionComponent
  • Improved interaction between viewport and isHud components
  • randomColor method in the Color extension
  • Calling super-method in .render() is now optional
  • Components that manipulate canvas state are now responsible for saving/restoring that state
  • Remove super.render calls that are no longer needed
  • Fixed typo in error message
  • TextPaint to use TextStyle (material) instead of TextPaintConfig
  • Underlying Shapes in ShapeComponent transform with components position, size and angle
  • HitboxShape takes parents ancestors transformations into consideration (not scaling)
  • Fixed black frame when updating game widget (ex: adding overlays)
  • Added possibility to extend JoystickComponent
  • Renamed FlameTester to GameTester
  • Modified FlameTester to be specific for T extends FlameGame
  • Improved TimerComponent
  • Removed methods preRender() and postRender() in Component
  • Use FlameTester everywhere where it makes sense in the tests
  • Improved IsometricTileMap
  • Fix PositionComponent's flipHorizontallyAroundCenter and flipVerticallyAroundCenter
  • Initialization of all PositionComponents can be done from onLoad instead of the constructor
  • Rename HasTappableComponents to HasTappables
  • Rename HasDraggableComponents to HasDraggables
  • Rename HasHoverableComponents to HasHoverableis
  • Added SizeEffect backed by the new effects engine
  • Added ScaleEffect backed by the new effects engine
  • Added OpacityEffect backed by the new effects engine
  • Update OrderedSet to 4.1.0
  • Update OrderedSet to 5.0.0

[1.0.0-releasecandidate.16] #

  • changePriority no longer breaks game loop iteration
  • Move component mixin checks to their own files
  • Fix exception when game was rebuilt
  • Add @mustCallSuper on Component.render
  • Add SpriteSheet.createAnimationVariable method to allow animations with different stepTime for each sprite
  • Use the full delta in JoystickComponent so that it can't go to the wrong direction on the wrong side
  • Improved the menu for documentation version selection
  • Introduce onDoubleTapDown with info and onDoubleTapCancel
  • Changed onHoverEnter and onHoverLeave to return bool (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 from draggables list
  • Increase Flutter SDK constraint to >= 2.5.0.
  • Method PositionComponent.toRect() now works for flipped/rotated components.
  • Make the root bundle exposed via Flame.bundle actually configurable
  • Take in an optional Camera as a parameter to FlameGame
  • Make super.onLoad mandatory to avoid memory leaks
  • QueryableOrderedSet's strictMode is configurable so it is no longer necessary to call register before query
  • Add option to rotate SpriteWidget
  • Fix bug where onRemove was called during resizing
  • Add onAttach and onDetach to Game

[1.0.0-releasecandidate.14] #

  • Reset effects after they are done so that they can be repeated
  • Remove integrated joystick buttons
  • Add MarginHudComponent, used when components need to have a margin to the viewport edge
  • Refactor JoystickComponent
  • Add SpriteAnimationWidget.asset
  • Add SpriteWidget.asset
  • Add SpriteButton.asset
  • Add NineTileBox.asset
  • Fix resolution of TextBoxComponent
  • Add BaseGame.remove and BaseGame.removeAll helpers for removing components
  • Add BaseComponent.remove and BaseComponent.removeAll helpers for removing children
  • Rename Camera.cameraSpeed to Camera.speed
  • Rename addShape to addHitbox in Hitbox mixin
  • Fix bug with Events and Draggables
  • Add generics to components with HasGameRef so that they can be extended and have another gameRef
  • Fix parallax fullscreen bug when game is resized
  • Generalize paint usage on components
  • Create OpacityEffect
  • Create ColorEffect
  • Adding ability to pause SpriteAnimationComponent
  • Adding SpriteGroupComponent
  • Fix truncated last frame in non-looping animations
  • Default size of SpriteComponent is srcSize instead of spritesheet size
  • Export test helper methods
  • Rename ScaleEffect to SizeEffect
  • Introduce scale on PositionComponent
  • Add ScaleEffect that works on scale instead of size
  • Add class NotifyingVector2
  • Add class Transform2D
  • Added helper functions testRandom() and testWidgetsRandom()
  • Remove FPSCounter from BaseGame
  • Refactor PositionComponent to work with Transform2D: the component now works more reliably when nested
  • Properties renderFlipX, renderFlipY removed and replaced with methods flipHorizontally() and flipVertically().
  • Method .angleTo removed as it was not working properly.
  • In debug mode PositionComponent now displays an indicator for the anchor position.
  • Update Camera docs to showcase usage with Game class
  • Fixed a bug with worldBounds being set to null in Camera
  • Remove .viewport from BaseGame, use camera.viewport instead
  • MockCanvas is now strongly typed and matches numeric coordinates up to a tolerance
  • Add loadAllImages to Images, which loads all images from the prefixed path
  • Reviewed the keyboard API with new mixins (KeyboardHandler and HasKeyboardHandlerComponents)
  • Added FocusNode on the game widget and improved keyboard handling in the game.
  • Added ability to have custom mouse cursor on the GameWidget region
  • Change sprite component to default to the Sprite size if not provided
  • TextBoxComponent waits for cache to be filled on onLoad
  • TextBoxComponent can have customizable pixelRatio
  • Add ContainsAtLeastMockCanvas to facilitate testing with MockCanvas
  • Support for drawImage for MockCanvas
  • Game is now a Component
  • ComponentEffect is now a Component
  • HasGameRef can now operate independently from Game
  • initialDelay and peakDelay for effects to handle time before and after an effect
  • component.onMount now runs every time a component gets a new parent
  • Add collision detection between child components

[1.0.0-releasecandidate.13] #

  • Fix camera not ending up in the correct position on long jumps
  • Make the JoystickPlayer a PositionComponent
  • Extract shared logic when handling components set in BaseComponent and BaseGame to ComponentSet.
  • Rename camera.shake(amount: x) to camera.shake(duration: x)
  • Fix SpriteAnimationComponent docs to use Future.wait
  • Add an empty postRender method that will run after each components render method
  • Rename Tapable to Tappable
  • Fix SpriteAnimationComponent docs to use Future.wait
  • Add an empty postRender method that will run after each components render method
  • Rename HasTapableComponents to HasTappableComponents
  • Rename prepareCanvas to preRender
  • Add intensity to Camera.shake
  • FixedResolutionViewport to use matrix transformations for Canvas

[1.0.0-releasecandidate.12] #

  • Fix link to code in example stories
  • Fix RotateEffect with negative deltas
  • Add isDragged to Draggable
  • Fix anchor of rendered text in TextComponent
  • Add new extensions to handle math.Rectangles nicely
  • Implement color parsing methods
  • Migrated the Particle API to Vector2
  • Add copyWith function to TextRenderer
  • Fix debug mode is not propagated to children of non-Position components
  • Fix size property of TextComponent was not correctly set
  • Fix anchor property was being incorrectly passed along to text renderer
  • All components take priority as an argument on their constructors
  • Fix renderRotated
  • Use QueryableOrderedSet for Collidables
  • Refactor TextBoxComponent
  • Fix bugs with TextBoxComponent
  • Improve error message for composed components
  • Fix game.size to take zoom into consideration
  • Fix camera.followComponent when zoom != 1
  • Add anchor for ShapeComponent constructor
  • Fix rendering of polygons in ShapeComponent
  • Add SpriteAnimation support to parallax
  • Fix Parallax alignment for images with different width and height
  • Fix ImageComposition image bounds validation
  • Improved the internal RenderObject widget performance
  • Add Matrix4 extensions
  • Camera.apply is done with matrix transformations
  • Camera zooming is taking current relativeOffset into account
  • Fix gestures for when isHud = true and Camera is modified
  • Fix Camera zoom behavior with offset/anchor

[1.0.0-releasecandidate.11] #

  • Replace deprecated analysis option lines-of-executable-code with source-lines-of-code
  • Fix the anchor of SpriteWidget
  • Add test for re-adding previously removed component
  • Add possibility to dynamically change priority of components
  • Add onCollisionEnd to make it possible for the user to easily detect when a collision ends
  • Adding test coverage to packages
  • Possibility to have non-fullscreen ParallaxComponent
  • No need to send size in ParallaxComponent.fromParallax since Parallax already contains it
  • Fix Text Rendering not working properly
  • Add more useful methods to the IsometricTileMap component
  • Add Hoverables
  • Brief semantic update to second tutorial.

[1.0.0-rc10] #

  • Updated tutorial documentation to indicate use of new version
  • Fix bounding box check in collision detection
  • Refactor on flame input system to correctly take camera into account
  • Adding SpriteAnimationGroupComponent
  • Allow isometric tile maps with custom heights
  • Add a new renderRect method to Sprite
  • Addresses the TODO to change the camera public APIs to take Anchors for relativePositions
  • Adds methods to support moving the camera relative to its current position
  • Abstracting the text api to allow custom text renderers on the framework
  • Set the same debug mode for children as for the parent when added
  • Fix camera projections when camera is zoomed
  • Fix collision detection system with angle and parentAngle
  • Fix rendering of shapes that aren't HitboxShape

[1.0.0-rc9] #

  • Fix input bug with other anchors than center
  • Fixed Shape so that the position is now a late
  • Updated the documentation for the supported platforms
  • Add clear function to BaseGame to allow the removal of all components
  • Moving tutorials to the Flame main repository
  • Transforming PaletteEntry.paint to be a method instead of a getter
  • Adding some more basic colors entries to the BasicPalette
  • Fixing Flutter and Dart version constraints
  • Exporting Images and AssetsCache
  • Make size and position in PositionComponent final
  • Add a snapTo and onPositionUpdate method to the Camera
  • Remove the SpriteAnimationComponent when the animation is really done, not when it is on the last frame
  • Revamp all the docs to be up to date with v1.0.0
  • Make Assets and Images caches have a configurable prefix
  • Add followVector2 method to the Camera
  • Make gameRef late
  • Fix Scroll example
  • Add a renderPoint method to Canvas
  • Add zoom to the camera
  • Add moveToTarget as an extension method to Vector2
  • 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) from util.dart to device.dart
  • Moving render functions from util.dart to extensions/canvas.dart
  • Adapting ParallaxComponent contructors to match the pattern followed on other components
  • Adapting SpriteBatchComponent constructors to match the pattern used on other components
  • Improving Parallax APIs regarding handling its size and the use outside FCS
  • Enabling direct import of Sprite and SpriteAnimation
  • Renamed Composition to ImageComposition to prevent confusion with the composition component
  • Added rotation and anchor arguments to ImageComposition.add
  • Added Image extensions
  • Added Color extensions
  • Change RaisedButton to ElevatedButton in timer example
  • Overhaul the draggables api to fix issues relating to local vs global positions
  • Preventing errors caused by the premature use of size property on game
  • Added a hitbox mixin for PositionComponent to make more accurate gestures
  • Added a collision detection system
  • Added geometrical shapes
  • Fix SpriteAnimationComponent.shouldRemove use Component.shouldRemove
  • Add assertion to make sure Draggables are safe to add
  • Add utility methods to the Anchor class to make it more "enum like"
  • Enable user-defined anchors
  • Added toImage method for the Sprite class
  • Uniform use of dt instead of t in all update methods
  • Add more optional arguments for unified constructors of components
  • Fix order that parent -> children render in

1.0.0-rc6 #

  • Use Offset type directly in JoystickAction.update calculations
  • Changed parseAnchor in examples/widgets to throw an exception instead of returning null when it cannot parse an anchor name
  • Code improvements and preparing APIs to null-safety
  • BaseComponent removes children marked as shouldRemove during update
  • Use find instead of globstar pattern in scripts/lint.sh as the later isn't enabled by default in bash
  • Fixes Aseprite constructor bug
  • Improve error handling for the onLoad function
  • Add test for child removal
  • Fix bug where Timer callback doesn't fire for non-repeating timers, also fixing bug with Particle lifespan
  • Adding shortcut for loading Sprites and SpriteAnimation from the global cache
  • Adding loading methods for the different ParallaxComponent parts and refactor how the delta velocity works
  • Add tests for Timer and fix a bug where progress was not reported correctly
  • Refactored the SpriteBatch class to be more elegant and to support Vector2.
  • Added fallback support for the web on the SpriteBatch class
  • Added missing documentation on the SpriteBatch class
  • Added an utility method to load a SpriteBatch on the Game class
  • Updated the widgets.md documentation
  • Removing methods initialDimensions and removeGestureRecognizer to avoid confusion
  • Adding standard for SpriteComponent and SpriteAnimationComponent constructors
  • Added Composition, allows for composing multiple images into a single image.
  • Move files to comply with the dart package layout convention
  • Fix gesture detection bug of children of PositionComponent
  • The game argument on GameWidget is now required

1.0.0-rc5 #

  • Option for overlays to be already visible on the GameWidget
  • Adding game to the overlay builder
  • Rename retreive -> Retrieve
  • Use internal children set in BaseComponent (fixes issue adding multiple children)
  • Remove develop branches from github workflow definition
  • BaseComponent to return UnmodifiableListView for children

1.0.0-rc4 #

  • Rename Dragable -> Draggable
  • Set loop member variable when constructing SpriteAnimationComponent from SpriteAnimationData
  • Effect shouldn't affect unrelated properties on component
  • Fix rendering of children
  • Explicitly define what fields an effect on PositionComponent modifies
  • Properly propagate onMount and onRemove to children
  • Adding Canvas extensions
  • Remove Resizable mixin
  • Use config defaults for TextBoxComponent
  • Fixing Game Render Box for flutter >= 1.25
  • DebugMode to be variable instead of function on BaseGame

1.0.0-rc3 #

  • Fix TextBoxComponent rendering
  • Add TextBoxConfig options; margins and growingBox
  • Fix debugConfig strokeWidth for web
  • Update Forge2D docs
  • Update PR template with removal of develop branch
  • Translate README to Russian
  • Split up Component and PositionComponent to BaseComponent
  • Unify multiple render methods on Sprite
  • Refactored how games are inserted into a flutter tree
  • Refactored the widgets overlay API
  • Creating new way of loading animations and sprites
  • Dragable mixin for components
  • Fix update+render of component children
  • Update documentation for SVG component
  • Update documentation for PositionComponent
  • Adding Component#onLoad
  • Moving size to Game instead of BaseGame
  • Fix bug with ConcurrentModificationError on add in onMount

1.0.0-rc2 #

  • Improve IsometricTileMap and Spritesheet classes
  • Export full vector_math library from extension
  • Added warning about basic and advanced detectors
  • Ensuring sprite animation and sprite animation components don't get NPEs on initialization
  • Refactor timer class
  • include all changed that are included on 0.28.0
  • Rename game#resize to game#onResize
  • Test suite for basic effects
  • Effects duration and test suite for basic effects
  • Pause and resume for effects
  • Fix position bug in parallax effect
  • Simplification of BaseGame. Removal of addLater (add is now addLater) and rename markForRemoval.
  • Unify naming for removal of components from BaseGame

1.0.0-rc1 #

  • Move all box2d related code and examples to the flame_box2d repo
  • Rename Animation to SpriteAnimation
  • Create extension of Vector2 and unify all tuples to use that class
  • Remove Position class in favor of new Vector2 extension
  • Remove Box2D as a dependency
  • Rebuild of Images, Sprite and SpriteAnimation initialization
  • Use isRelative on effects
  • Use Vector2 for position and size on PositionComponent
  • Removing all deprecated methods
  • Rename resize method on components to onGameResize
  • Make Resizable have a gameSize property instead of size
  • Fix bug with CombinedEffect inside SequenceEffect
  • Fix wrong end angle for relative rotational effects
  • Use a list of Vector2 for Move effect to open up for more advanced move effects
  • Generalize effects api to include all components
  • Extract all the audio related capabilities to a new package, flame_audio
  • Fix bug that sprite crashes without a position

0.29.1-beta #

  • Fixing Game Render Box for flutter >= 1.25

0.29.0 #

  • Update audioplayers to latest version (now assets will not be added to prefixes automatically)
  • Fix lint issues with 0.28.0

0.28.0 #

  • Fix spriteAsWidget deprecation message
  • Add lineHeight property to TextConfig
  • Adding pause and resume methods to time class

0.27.0 #

  • Improved the accuracy of the FPSCounter by using Flutter's internal frame timings.
  • Adding MouseMovementDetector
  • Adding ScrollDetector
  • Fixes BGM error
  • Adding Isometric Tile Maps

0.26.0 #

  • Improving Flame image auto cache
  • Fix bug in the Box2DGame's add and addLater method , when the Component extends BodyComponent and mixin HasGameRef or other mixins ,the mixins will not be set correctly

0.25.0 #

  • Externalizing Tiled support to its own package flame_tiled
  • Preventing some crashs that could happen on web when some methods were called
  • Add mustCallSuper to BaseGame update and render methods
  • Moved FPS code from BaseGame to a mixin, BaseGame uses the new mixin.
  • Deprecate flare API in favor of the package flame_flare

0.24.0 #

  • Outsourcing SVG support to an external package
  • Adding MemoryCache class
  • Fixing games crashes on Web
  • Update tiled dependency to 0.6.0 (objects' properties are now double)

0.23.0 #

  • Add Joystick Component
  • Adding BaseGame#markToRemove
  • Upgrade tiled and flutter_svg dependencies
  • onComplete callback for effects
  • Adding Layers
  • Update tiled dep to 0.5.0 and add support for rotation with improved api

0.22.1 #

  • Fix Box2DComponent render priority
  • Fix PositionComponentEffect drifting
  • Add possibility to combine effects
  • Update to newest box2d_flame which fixes torque bug
  • Adding SpriteSheet.fromImage

0.22.0 #

  • Fixing BaseGame tap detectors issues
  • Adding SpriteWidget
  • Adding AnimationWidget
  • Upgrade Flutter SVG to fix for flame web
  • Add linting to all the examples
  • Run linting only on affected and changed examples
  • Add SequenceEffect
  • Fixed bug with travelTime in RotateEffect

0.21.0 #

  • Adding AssetsCache.readBinaryFile
  • Splitting debugMode from recordFps mode
  • Adding support for multi touch tap and drag events
  • Fix animations example
  • Add possibility for infinite and alternating effects
  • Add rotational effect for PositionComponents

0.20.2 #

  • Fix text component bug with anchor being applied twice

0.20.1 #

  • Adding method to load image bases on base64 data url.
  • Fix Box2DGame to follow render priority
  • Fix games trying to use gameRef inside the resize function

0.20.0 #

  • Refactor game.dart classes into separate files
  • Adding a GameLoop class which uses a Ticker for updating game
  • Adding sprites example
  • Made BaseGame non-abstract and removed SimpleGame
  • Adding SpriteButton Widget
  • Added SpriteBatch API, which renders sprites effectively using Canvas.drawAtlas
  • Introducing basic effects API, including MoveEffect and ScaleEffect
  • Adding ContactCallback controls in Box2DGame

0.19.1 #

  • Bump AudioPlayers version to allow for web support
  • Adding Game#pauseEngine and Game#resumeEngine methods
  • Removing FlameBinding since it isn't used and clashes with newest flutter

0.19.0 #

  • Fixing component lifecycle calls on BaseGame#addLater
  • Fixing Component#onDestroy, which was been called multiple times sometimes
  • Fixing Widget Overlay usage over many game instances

0.18.3 #

  • Adding Component#onDestroy
  • Adding Keyboard events API
  • Adding Box2DGame, an extension of BaseGame to simplify lifecycle of Box2D components
  • Add onAnimateComplete for Animation (thanks @diegomgarcia)
  • Adding AnimationComponent#overridePaint
  • Adding SpriteComponent#overridePaint
  • Updating AudioPlayers to enable Web Audio support

0.18.2 #

  • Add loop for AnimationComponent.sequenced() (thanks @wenxiangjiang)
  • TextComponent optimization (thanks @Gericop)
  • Adding Component#onMount
  • Check if chidren are loaded before rendering on ComposedComponent (thanks @wenxiangjiang)
  • Amend type for width and height properties on Animation.sequenced (thanks @wenxiangjiang)
  • Fixing Tapable position checking
  • Support line feed when create animation from a single image source (thanks @wenxiangjiang)
  • Fixing TextBoxComponent start/end of line bugs (thanks @kurtome)
  • Prevent widgets overlay controller from closing when in debug mode

0.18.1 #

  • Expose stepTime paramter from the Animation class to the animation component
  • Updated versions for bugfixes + improved macOS support. (thanks @flowhorn)
  • Update flutter_svg to 0.17.1 (thanks @flowhorn)
  • Update audioplayers to 0.14.0 (thanks @flowhorn)
  • Update path_provider to 1.6.0 (thanks @flowhorn)
  • Update ordered_set to 1.1.5 (thanks @flowhorn)

0.18.0 #

  • Improving FlareComponent API and updating FlareFlutter dependency
  • Adding HasWidgetsOverlay mixin
  • Adding NineTileBox widget

0.17.4 #

  • Fixing compilations errors regarding changes on box2_flame
  • Add splash screen docs

0.17.3 #

  • Tweaking text box rendering to reduce pixelated text (thanks, @kurtome)
  • Adding NineTileBox component

0.17.2 #

  • Added backgroundColor method for overriding the game background (thanks @wolfenrain)
  • Update AudioPlayers version to 0.13.5
  • Bump SVG dependency plus fix example app

0.17.1 #

  • Added default render function for Box2D ChainShape
  • Adding TimerComponent
  • Added particles subsystem (thanks @av)

0.17.0 #

  • Fixing FlareAnimation API to match convention
  • Fixing FlareComponent renderization
  • New GestureDetector API to Game

0.16.1 #

  • Added Bgm class for easy looping background music management.
  • Added options for flip rendering of PositionComponents easily (horizontal and vertical).

0.16.0 #

  • Improve our mixin structure (breaking change)
  • Adds HasGameRef mixin
  • Fixes for ComposedComponent (for tapables and other apis using preAdd)
  • Added no-parameter alias functions for setting the game's orientation.
  • Prevent double completion on onMetricsChanged callback

0.15.2 #

  • Exposing tile objects on TiledComponent (thanks @renatoferreira656)
  • Adding integrated API for taps on Game class and adding Tapeables mixin for PositionComponents

0.15.1 #

  • Bumped version of svg dependency
  • Fixed warnings

0.15.0 #

  • Refactoring ParallaxComponent (thanks @spydon)
  • Fixing flare animation with embed images
  • Adding override paint parameter to Sprite, and refactoring it have named optional parameters

0.14.2 #

  • Refactoring BaseGame debugMode
  • Adding SpriteSheet class
  • Adding Flame.util.spriteAsWidget
  • Fixing AnimationComponent.empty()
  • Fixing FlameAudio.loopLongAudio

0.14.1 #

  • Fixed build on travis
  • Updated readme badges
  • Fixed changelog
  • Fixed warning on AudioPool, added AudioPool example in docs

0.14.0 #

  • Adding Timer#isRunning method
  • Adding Timer#progress getter
  • Updating Flame to work with Flutter >= 1.6.0

0.13.1 #

  • Adding Timer utility class
  • Adding destroyOnFinish flag for AnimationComponent
  • Fixing release mode on examples that needed screen size
  • Bumping dependencies versions (audioplayers and path_provider)

0.13.0 #

  • Downgrading flame support to stable channel.

0.12.2 #

  • Added more functionality to the Position class (thanks, @illiapoplawski)

0.12.1 #

  • Fixed PositionComponent#setByRect to comply with toRect (thanks, @illiapoplawski)

0.12.0 #

  • Updating flutter_svg and pubspec to support the latest flutter version (1.6.0)
  • Adding Flare Support
  • Fixing PositionComponent#toRect which was not considering the anchor property (thanks, @illiapoplawski)

[0.11.2] #

  • Fixed bug on animations with a single frame
  • Fixed warning on using specific version o flutter_svg on pubspec
  • ParallaxComponent is not abstract anymore, as it does not include any abstract method
  • Added some functionality to Position class

[0.11.1] #

  • Fixed lack of paint update when using AnimationAsWidget as pointed in #78
  • Added travis (thanks, @renancarujo)

[0.11.0] #

  • Implementing low latency api from audioplayers (breaking change)
  • Improved examples by adding some instructions on how to run
  • Add notice on readme about the channel
  • Upgrade path_provider to fix conflicts

[0.10.4] #

  • Fix breaking change on svg plugin

[0.10.3] #

  • Svg support
  • Adding Animation#reversed allowing a new reversed animation to be created from an existing animation.
  • Fix games inside regular apps when the component is inside a sliver
  • Support Aseprite animations

[0.10.2] #

  • Fixed some warnings and formatting

[0.10.1] #

  • Fixes some typos
  • Improved docs
  • Extracted gamepads to a new lib, lots of improvements there (thanks, @erickzanardo)
  • Added more examples and an article

[0.10.0] #

  • Fixing a few minor bugs, typos, improving docs
  • Adding the Palette concept: easy access to white and black colors/paints, create your palette to keep your game organized.
  • Adding the Anchor concept: specify where thins should anchor, added to PositionComponent and to the new text related features.
  • Added a whole bunch of text related components: TextConfig allows you to easily define your typography information, TextComponent allows for easy rendering of stuff and TextBox can make sized texts and also typing effects.
  • Improved Utils to have better and more concise APIs, removed unused stuff.
  • Adding TiledComponent to integrate with tiled

[0.9.5] #

  • Add elapsed property to Animation (thanks, @ianliu)
  • Fixed minor typo on documentation

[0.9.4] #

  • Bumps audioplayers version

[0.9.3] #

  • Fixes issue when switching between games where new game would not attach

[0.9.2] #

  • Fixes to work with Dart 2.1

[0.9.1] #

  • Updated audioplayers and box2d to fix bugs

[0.9.0] #

  • Several API changes, using new audioplayers 0.6.x

[0.8.4] #

  • Added more consistent APIs and tests

[0.8.3] #

  • Need to review audioplayers 0.5.x

[0.8.2] #

  • Added better documentation, tutorials and examples
  • Minor tweaks in the API
  • New audioplayers version

[0.8.1] #

  • The Components Overhaul Update: This is major update, even though we are keeping things in alpha (version 0.*)
  • Several major upgrades regarding the component system, new component types, Sprites and SpriteSheets, better image caching, several improvements with structure, a BaseGame, a new Game as a widget, that allows you to embed inside apps and a stop method. More minor changes.

[0.6.1] #

  • Bump required dart version

[0.6.0] #

  • Adding audio support for iOS (bumping audioplayers version)

[0.5.0] #

  • Adding a text method to Util to more easily render a Paragraph

[0.4.0] #

  • Upgraded AudioPlayers, added method to disable logging
  • Created PositionComponent with some useful methods
  • A few refactorings

[0.3.0] #

  • Added a pre-load method for Audio module

[0.2.0] #

  • Added a loop method for playing audio on loop
  • Added the option to make rectangular SpriteComponents, not just squares

[0.1.0] #

  • First release, basic utilities
2049
likes
160
pub points
98%
popularity
screenshot

Publisher

verified publisherflame-engine.org

A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.

Repository (GitHub)
View/report issues
Contributing

Topics

#flame #game-engine #games #animations

Documentation

API reference

Funding

Consider supporting this project:

opencollective.com
github.com
patreon.com

License

MIT (license)

Dependencies

collection, flutter, meta, ordered_set, vector_math

More

Packages that depend on flame