47 Commits

Author SHA1 Message Date
5529869a76 Adding custom mouse cursors for flame (#935)
* Adding custom mouse cursors for flame

* linting and adding fvm to gitignore

* PR suggestions

* Apply suggestions from code review

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-09-05 20:55:26 -03:00
c833319c49 Feat: Add keyboard with focus node implementation (#909)
* Add keyboard with focus node implementation

* a

* format and make it stabel compatible

* Add mixin to game

* fixes

* add tests

* format

* docs

* more docs

* Update doc/keyboard-input.md

Co-authored-by: Erick <erickzanardoo@gmail.com>

* rename test

* Apply suggestions from code review

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* fix test

* Update tutorials/2_sprite_animations_gestures/README.md

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* docs

* Apply suggestions from code review

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* yo

Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
2021-08-31 19:38:21 -03:00
9ec00d4ad7 Use Transform2D in PositionComponent (#904) 2021-08-21 19:32:32 -03:00
53fe9e8238 Remove FPSCounter from BaseGame (#913) 2021-08-10 22:00:52 +02:00
a93f838483 Fix PositionComponent.scale bug (#912)
* Add test for scale

* Fix zoom example

* Update min_coverage
2021-08-10 16:14:32 +02:00
54fbd260bc Scale for PositionComponent (#892)
* Draft of PositionComponent.scale

* Use matrix transformations

* Update tests to take matrix transform into consideration

* Add tests for collision detection with scale

* Rename ScaleEffect to SizeEffect

* Use transform matrix to prepare canvas

* Fix scaledSizeCache

* Add changelog entries and docs

* Dartdoc on public access methods

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Move cache classes to own directory

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
2021-08-06 21:59:52 +02:00
e43d0c021e Adding SpriteGroupComponent (#893)
* Adding SpriteGroupComponent

* fixing lint issue

* Update sprite_group_component.dart
2021-08-02 09:54:13 -03:00
b2ea597734 Initial implementation of paint effects (#880)
* Initial implementation of paint effects

* Improving HasPaint

* Adding color effect

* Adding exaustive tests for the HasPaint mixin

* Adding tests for the effects

* some adjustments

* Fixing some imports

* Adding docs

* Adding types to the has paint mixin

* Fixing constructor name for the opacity effect

* Apply suggestions from code review

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Luan's suggestion

* Luan's comments

* formatting issues

* dartcodemetrics don't help me :(

* Adding assert

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-07-31 15:58:52 -03:00
7e4bc1464e Fix parallax fullscreen bug when game is resized (#887)
* Fix parallax fullscreen bug when game is resized

* Test

Signed-off-by: Lukas Klingsbo <me@lukas.fyi>

* Fix imports

* Remove accidental line

* Re-add mustCallSuper on onGameResize
2021-07-29 14:23:37 +02:00
1034ca850b Fix coordinate systems transformations and add example (#885) 2021-07-28 01:35:32 -04:00
af014ac798 Fix the resolution of TextBoxComponent (#878)
* Fix the resolution of TextBoxComponent

* scale canvas

* Scale down

* Scale down on rendering

* Don't affect the debug rendering
2021-07-27 19:56:51 +02:00
e3f9f1a469 addShape -> addHitbox (#882) 2021-07-26 20:19:45 +02:00
64a40ff641 Refactor joystick (#876)
* Refactor joystick

* Fix directional tests

* Joystick example

* Any PositionComponent can be used as knob and background

* Add MarginButtonComponent

* Fix JoystickExample

* Update joystick docs

* Fix joystick direction tests

* Fix effect tests

* Fix analyze issue

* Update docs

* Update docs

* Move joystick to input export

* Update packages/flame/lib/src/geometry/shape.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Add test and description for screenAngle

* Update examples/lib/stories/controls/joystick_player.dart

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Update doc/input.md

Co-authored-by: Erick <erickzanardoo@gmail.com>

* controls -> input in examples to align with export file

* controls -> input

* Add simple joystick example

* Fix imports

* velocity -> relativeDelta

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
Co-authored-by: Erick <erickzanardoo@gmail.com>
2021-07-15 12:00:41 +02:00
750f63ed97 Rename Camera.cameraSpeed to Camera.speed (#879) 2021-07-15 11:42:48 +02:00
380781e126 Adding Builder classes for our widgets catalog (#853)
* Add

* Adding SpriteWidgetBuilder

* Adding SpriteButtonBuilder

* Add NineTileBoxBuilder

* a few adjustments on the docs

* Adding error and loading builders to the widgets

* Improving APIs for the widget review

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-07-13 17:36:13 -03:00
c825d58042 Use matrix transformations in FixedResolutionViewport (#869)
* Use matrix transformations in FixedResolutionViewport

* Update viewport tests

* Moved transformations to resize

* Use getters for scaledSize and resizeOffset

* Added a FixedResolutionViewport example
2021-07-08 11:47:28 +02:00
1e79a42161 Rename Tapable to Tappable (#868) 2021-07-07 10:48:58 +02:00
f818310e5b Extract shared children logic when handling components to ComponentSet (#859) 2021-07-04 02:44:15 -04:00
5a51a1a7fb Make the JoystickPlayer a PositionComponent (#860)
* Make the JoystickPlayer a PositionComponent

* Fix formatting
2021-06-29 09:28:18 +02:00
948f277e5d Fix gestures when isHud = true and camera is transformed (#843)
* Fix gestures when isHud = true and camera is transformed

* Use Info instead of Event everywhere
2021-06-09 23:47:59 +02:00
2c1bba8f86 Use Matrix4 tranformation for Camera.apply (#840)
* Added Matrix4 extension

* Added unit tests for Matrix4 extension class

* Update doc/util.md

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>

* Updated code

* Updated docs

* Update

* Update Matrix4

* Added Translate method

* Update based on Luan and Spydon review

* Update after review

* Forgot few changes

* Update

* Use Matrix4 tranformation for `Camera.apply`

* Remove accidentally added zoom

* Add transform to MockCanvas

* Use same Matrix4 if nothing changed

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
2021-06-09 16:55:13 +02:00
a7fd05f2b5 Make game.size take zoom into consideration (#836)
* Make game.size take zoom into consideration

* Fix formatting

* Fix formatting

* Apply suggestions from code review

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Move _sizeBuffer

* Apply suggestions from code review

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Update list from wolfenrains suggestion

* Fix formatting

* Update CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
2021-06-09 16:39:45 +02:00
55aea41788 Adding animation support to parallax (#835)
* Adding animation support to parallax

* Solving workaround

* Fixing image composition add assert

* adding docs, linting and a better example

* lint

* Apply suggestions from code review

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Update examples/lib/stories/parallax/sandbox_layer.dart

* Update doc/components.md

* Update examples/lib/stories/parallax/sandbox_layer.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Update examples/lib/stories/parallax/animation.dart

* formating

* Update .min_coverage

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-06-07 13:31:19 -03:00
021b453b54 Migrated the Particle API to Vector2 (#728)
* Migrated the `Particle` API to `Vector2`

* Update doc/particles.md

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Follow-up on Erick's review

* Fix

* Apply suggestions from code review

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>

* Update

* Update

* Update

* Update packages/flame/lib/src/extensions/vector2.dart

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>

* Updated

* Update

* Using scale

Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
2021-05-27 21:40:50 +02:00
9c1808ca92 Add hoverables (#797) 2021-05-21 09:04:12 -04:00
8f7c773f82 Fix parallax size (#800)
* Non-fullscreen ParallaxComponent

* Updated examples with no size needed

* Formatting

* Add docs for fullscreen parallax

* Fix formatting

* Remove need of nullable size

* Add basic parallax sizing test

* Fix formatting

* Remove unused imports

* Info text for the parallax examples
2021-05-20 16:58:49 +02:00
ef7427941c Possibility to change priority and reorder the component list (#793)
* Possibility to change component priority

* Fix formatting

* Posibility to change priority

* Docs for priority change

* Priority example

* Add section explaining priority

* Update doc/game.md

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Update examples/lib/stories/components/components.dart

Co-authored-by: Erick <erickzanardoo@gmail.com>

* No null priorities in the super call chain

* Possibility to wait for all children to be loaded

* Test for addChildren

* Introduce parent to Component

* Check whether parent is BaseComponent

Co-authored-by: Erick <erickzanardoo@gmail.com>
2021-05-19 19:07:54 +02:00
e4281d6471 onCollisionEnd callbacks for Collidable and HitboxShape (#792)
* Add onCollisionEnd for HitboxShape and Collidable

* Add tests for collision callbacks

* Detect multiple collsions with same collidable in test

* Remove unused import

* Break out duplicated code

* Fix formatting

* Use correct hash set

* Update examples/lib/stories/collision_detection/multiple_shapes.dart

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Update examples/lib/stories/collision_detection/multiple_shapes.dart

Co-authored-by: Erick <erickzanardoo@gmail.com>

* Use hashValues instead of _combineHashCodes

* hashValues is order dependent so we need to sort the objects first

* Add section about onCollisionEnd

* Fix missed hashValues

* Use xor instead of hashValues

* Update examples/lib/stories/collision_detection/collision_detection.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-05-18 16:21:49 +02:00
8dfa682e21 Fix SpriteWidget anchor (#787)
* Fix SpriteWidget anchor

* Fix formatting
2021-05-10 22:14:36 +02:00
6d17424c13 Fix collision detection and rendering of local shape angles (#773)
* Fix collision detection with anchor other than center

* Fix rotation around anchor

* Simplify advanced collision detection example

* Add some tests

* Simplify multiple shapes example more

* Move shapeCenter logic into Shape

* Render center point

* More debugging in MultipleShapes

* Wtf.

* Re-add "possibly" calculation

* Rotate shape around parent center

* Only consider the parent center

* Format multiple shapes example

* Add simple shapes example

* Add caching in polygon

* Fix rendering of polygon shapes

* Remove print

* Add changelog entry

* Fix analyze complaints

* Remove all shapes that contain the pressed point

* Take zoom into consideration in multiple shapes example

* Remove useless import

* map instead of generate

* Fix position component test

* Simpler negative vector2

* "Correct" format

* Add ShapeComponent instead of camera aware shapes

* Fix formatting

* Remove zoom from collision detection example

* No need for gameRef in MultipleShapes example

* Fix naming in only_shapes
2021-05-04 22:31:36 +02:00
b65bac8aed Updating dashbook and adding an example with info (#779) 2021-05-03 09:12:50 -03:00
0cb64fb57f Draggables weren't using the new coordinate system (#777)
* refactoring drag start events

* Fixing joystick, adding tests and examples

* format fixes
2021-04-30 10:01:42 -03:00
d9e0acd3ff Abstracting text API to enable custom renderers (#772)
* Abstracting text API to enable custom renderers

* Addressing comments

* Lint

* Update doc/text.md

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>

* Adding dartdoc about TextRenderer

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
2021-04-29 09:24:17 -03:00
91864d0b88 Making velocities and deltas have the game and global values (#769)
* Making velocities and deltas have the game and global values

* Re adding code metircs

* Re adding code metircs

* Update packages/flame/lib/src/gestures/events.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Renaming example variable

* fixing example

* Linting

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-04-25 14:54:04 -03:00
ccefeed1be Improve camera (#770) 2021-04-24 14:18:27 -04:00
defcb456e1 Adding SpriteAnimationGroupComponent (#766)
* Adding SpriteAnimationGroupComponent

* adding tests

* Changing ci to use flutter stable

* Addressing Spydon's comments

* reverting analysis_options.yml

* linting
2021-04-21 11:30:48 -03:00
27237043d5 Add variable height to the isometric tile layer (#756) 2021-04-21 00:47:54 -04:00
6dd37161c4 Implement coordinate transformations correctly for cameras and viewports (#764) 2021-04-21 00:20:37 -04:00
6b2f8032fe Making Flame events aware of camera (#755)
* some initial refactoring

* Fixing examples and joystick component

* Fixing examples

* Addressing comments from PR

* Fixing tutorials

* Updating docs

* Fixing tests

* PR followup

* A big follow up

* linting

* doc nit

* Changelog and fix tutorial

* Addressing comments

* Fixing BaseGame project and scale offset methods

* Formatting

* doc suggestions

* Update packages/flame/lib/src/gestures/events.dart

Co-authored-by: Luan Nico <luanpotter27@gmail.com>

* Hopefully, the last follow up

* Linting and adding dart-code-metrics again

* fixing tutorial

Co-authored-by: Luan Nico <luanpotter27@gmail.com>
2021-04-15 15:28:46 -03:00
1091f441ac Bring back collision detection example (#736) 2021-04-05 13:33:12 +02:00
1ff1b7a8bb Fix scroll example now that the scroll detector works (#745) 2021-04-03 20:00:11 -04:00
bc3820c0fa Make gameRef late (#742) 2021-04-03 19:47:37 -04:00
23a72f5f39 Follow a Vector2 in Camera and add onPositionUpdate (#716)
* No setter for position and size

* Use setter for position and size

* Add onPositionUpdate and snapTo to Camera

* Fix formatting

* Fix size in test

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Better naming for internal position state

* Anchor and angle defaults on effect test utils

* No setter for position and size

* Fix scale effect

* Fix formatting

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
Co-authored-by: Erick Zanardo <erickzanardoo@gmail.com>
2021-03-31 20:48:44 +02:00
444375dd14 Transforming PaletteEntry#paint into a full method and adding more colors to BasicPalette (#725)
* Transforming PaletteEntry#paint into a full method

* Fixing some errors that went unoticed

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* Update packages/flame/CHANGELOG.md

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>

* followup

* format

Co-authored-by: Jochum van der Ploeg <jochum@vdploeg.net>
2021-03-27 14:53:29 -03:00
640bfea941 Migrate examples to null-safety (#707) 2021-03-24 19:04:33 -04:00
496b94e712 Bump versions for rc8 (#704) 2021-03-12 19:52:32 -05:00
769bb711c3 Migrate examples back, change to monorepo (#701) 2021-03-12 09:24:50 -05:00