From 444375dd148e9dfd15b255bce13a256d46aee1f0 Mon Sep 17 00:00:00 2001 From: Erick Date: Sat, 27 Mar 2021 14:53:29 -0300 Subject: [PATCH] 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 * Update packages/flame/CHANGELOG.md Co-authored-by: Jochum van der Ploeg * followup * format Co-authored-by: Jochum van der Ploeg --- examples/lib/commons/square_component.dart | 2 +- examples/lib/stories/controls/joystick_player.dart | 6 +++--- examples/lib/stories/controls/keyboard.dart | 2 +- examples/lib/stories/controls/mouse_movement.dart | 6 +++--- examples/lib/stories/controls/multitap.dart | 2 +- examples/lib/stories/controls/multitap_advanced.dart | 2 +- .../lib/stories/controls/overlapping_tapables.dart | 2 +- examples/lib/stories/controls/scroll.dart | 2 +- packages/flame/CHANGELOG.md | 2 ++ packages/flame/example/lib/main.dart | 12 +++--------- .../flame/lib/src/components/text_box_component.dart | 2 +- packages/flame/lib/src/nine_tile_box.dart | 4 +++- packages/flame/lib/src/palette.dart | 6 +++++- packages/flame/lib/src/sprite.dart | 2 +- tutorials/1_basic_square/README.md | 2 +- tutorials/1_basic_square/code/lib/main.dart | 2 +- 16 files changed, 29 insertions(+), 27 deletions(-) diff --git a/examples/lib/commons/square_component.dart b/examples/lib/commons/square_component.dart index 98997e7b1..d29679148 100644 --- a/examples/lib/commons/square_component.dart +++ b/examples/lib/commons/square_component.dart @@ -4,7 +4,7 @@ import 'package:flame/components.dart'; import 'package:flame/palette.dart'; class SquareComponent extends PositionComponent { - Paint paint = BasicPalette.white.paint; + Paint paint = BasicPalette.white.paint(); SquareComponent() { size = Vector2.all(100.0); diff --git a/examples/lib/stories/controls/joystick_player.dart b/examples/lib/stories/controls/joystick_player.dart index c07d83abd..5f9ed1c28 100644 --- a/examples/lib/stories/controls/joystick_player.dart +++ b/examples/lib/stories/controls/joystick_player.dart @@ -7,9 +7,9 @@ import 'package:flame/extensions.dart'; import 'package:flame/palette.dart'; import 'package:flutter/material.dart'; -final _whitePaint = BasicPalette.white.paint; -final _bluePaint = Paint()..color = const Color(0xFF0000FF); -final _greenPaint = Paint()..color = const Color(0xFF00FF00); +final _whitePaint = BasicPalette.white.paint(); +final _bluePaint = BasicPalette.blue.paint(); +final _greenPaint = BasicPalette.green.paint(); class JoystickPlayer extends Component implements JoystickListener { static const speed = 32.0; diff --git a/examples/lib/stories/controls/keyboard.dart b/examples/lib/stories/controls/keyboard.dart index ca2a3c7f7..c37bae05c 100644 --- a/examples/lib/stories/controls/keyboard.dart +++ b/examples/lib/stories/controls/keyboard.dart @@ -6,7 +6,7 @@ import 'package:flame/palette.dart'; import 'package:flutter/services.dart' show RawKeyDownEvent, RawKeyEvent; class KeyboardGame extends Game with KeyboardEvents { - static final Paint white = BasicPalette.white.paint; + static final Paint white = BasicPalette.white.paint(); static const int speed = 200; Rect rect = const Rect.fromLTWH(0, 100, 100, 100); diff --git a/examples/lib/stories/controls/mouse_movement.dart b/examples/lib/stories/controls/mouse_movement.dart index 734eb2a08..db9337ae8 100644 --- a/examples/lib/stories/controls/mouse_movement.dart +++ b/examples/lib/stories/controls/mouse_movement.dart @@ -7,8 +7,8 @@ import 'package:flutter/material.dart'; class MouseMovementGame extends BaseGame with MouseMovementDetector { static const speed = 200; - static final Paint blue = Paint()..color = const Color(0xFF0000FF); - static final Paint white = BasicPalette.white.paint; + static final Paint _blue = BasicPalette.blue.paint(); + static final Paint _white = BasicPalette.white.paint(); static final Vector2 objSize = Vector2.all(50); Vector2 position = Vector2(0, 0); @@ -28,7 +28,7 @@ class MouseMovementGame extends BaseGame with MouseMovementDetector { super.render(canvas); canvas.drawRect( _toRect(), - onTarget ? blue : white, + onTarget ? _blue : _white, ); } diff --git a/examples/lib/stories/controls/multitap.dart b/examples/lib/stories/controls/multitap.dart index 9d89e0f42..0228d4483 100644 --- a/examples/lib/stories/controls/multitap.dart +++ b/examples/lib/stories/controls/multitap.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; /// Includes an example including advanced detectors class MultitapGame extends BaseGame with MultiTouchTapDetector { - static final whitePaint = BasicPalette.white.paint; + static final whitePaint = BasicPalette.white.paint(); static final tapSize = Vector2.all(50); final Map taps = {}; diff --git a/examples/lib/stories/controls/multitap_advanced.dart b/examples/lib/stories/controls/multitap_advanced.dart index 5a83c9cdb..c60173cd2 100644 --- a/examples/lib/stories/controls/multitap_advanced.dart +++ b/examples/lib/stories/controls/multitap_advanced.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; /// Showcases how to mix two advanced detectors class MultitapAdvancedGame extends BaseGame with MultiTouchTapDetector, MultiTouchDragDetector { - static final whitePaint = BasicPalette.white.paint; + static final whitePaint = BasicPalette.white.paint(); static final tapSize = Vector2.all(50); final Map taps = {}; diff --git a/examples/lib/stories/controls/overlapping_tapables.dart b/examples/lib/stories/controls/overlapping_tapables.dart index fd4fef5e1..3cd1ddcf1 100644 --- a/examples/lib/stories/controls/overlapping_tapables.dart +++ b/examples/lib/stories/controls/overlapping_tapables.dart @@ -14,7 +14,7 @@ class TapableSquare extends PositionComponent with Tapable { rng.nextInt(256), 0.9, ); - return PaletteEntry(color).paint; + return PaletteEntry(color).paint(); } Paint currentPaint; diff --git a/examples/lib/stories/controls/scroll.dart b/examples/lib/stories/controls/scroll.dart index eebb3592b..82c61e4e4 100644 --- a/examples/lib/stories/controls/scroll.dart +++ b/examples/lib/stories/controls/scroll.dart @@ -9,7 +9,7 @@ import 'package:flame/extensions.dart'; class ScrollGame extends BaseGame with ScrollDetector { static const speed = 2000.0; final _size = Vector2.all(50); - final _paint = BasicPalette.white.paint; + final _paint = BasicPalette.white.paint(); Vector2 position = Vector2.all(100); Vector2? target; diff --git a/packages/flame/CHANGELOG.md b/packages/flame/CHANGELOG.md index 08a2479ed..91b1a01a7 100644 --- a/packages/flame/CHANGELOG.md +++ b/packages/flame/CHANGELOG.md @@ -6,6 +6,8 @@ - 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 diff --git a/packages/flame/example/lib/main.dart b/packages/flame/example/lib/main.dart index 531761134..936c51fc0 100644 --- a/packages/flame/example/lib/main.dart +++ b/packages/flame/example/lib/main.dart @@ -15,19 +15,13 @@ void main() { ); } -class Palette { - static const PaletteEntry white = BasicPalette.white; - static const PaletteEntry red = PaletteEntry(Color(0xFFFF0000)); - static const PaletteEntry blue = PaletteEntry(Color(0xFF0000FF)); -} - class Square extends PositionComponent { static const speed = 0.25; static const squareSize = 128.0; - static Paint white = Palette.white.paint; - static Paint red = Palette.red.paint; - static Paint blue = Palette.blue.paint; + static Paint white = BasicPalette.white.paint(); + static Paint red = BasicPalette.red.paint(); + static Paint blue = BasicPalette.blue.paint(); @override void render(Canvas c) { diff --git a/packages/flame/lib/src/components/text_box_component.dart b/packages/flame/lib/src/components/text_box_component.dart index b156ab0d6..a12a9df32 100644 --- a/packages/flame/lib/src/components/text_box_component.dart +++ b/packages/flame/lib/src/components/text_box_component.dart @@ -26,7 +26,7 @@ class TextBoxConfig { } class TextBoxComponent extends PositionComponent { - static final Paint _imagePaint = BasicPalette.white.paint + static final Paint _imagePaint = BasicPalette.white.paint() ..filterQuality = FilterQuality.high; Vector2 _gameSize = Vector2.zero(); diff --git a/packages/flame/lib/src/nine_tile_box.dart b/packages/flame/lib/src/nine_tile_box.dart index f124b7d1e..4a8a5dc75 100644 --- a/packages/flame/lib/src/nine_tile_box.dart +++ b/packages/flame/lib/src/nine_tile_box.dart @@ -11,6 +11,8 @@ import 'sprite.dart'; /// in the direction in which they are located and expanding the center in both directions. /// That allows you to have non distorted borders. class NineTileBox { + static final _whitePaint = BasicPalette.white.paint(); + /// The sprite used to render the box, must be a 3x3 grid of square tiles. Sprite sprite; @@ -86,6 +88,6 @@ class NineTileBox { final xSrc = sprite.src.left + _tileSizeDouble * i; final ySrc = sprite.src.top + _tileSizeDouble * j; final src = Rect.fromLTWH(xSrc, ySrc, _tileSizeDouble, _tileSizeDouble); - c.drawImageRect(sprite.image, src, dest, BasicPalette.white.paint); + c.drawImageRect(sprite.image, src, dest, _whitePaint); } } diff --git a/packages/flame/lib/src/palette.dart b/packages/flame/lib/src/palette.dart index c48547407..45d72fba4 100644 --- a/packages/flame/lib/src/palette.dart +++ b/packages/flame/lib/src/palette.dart @@ -3,7 +3,7 @@ import 'dart:ui'; class PaletteEntry { final Color color; - Paint get paint => Paint()..color = color; + Paint paint() => Paint()..color = color; const PaletteEntry(this.color); @@ -27,4 +27,8 @@ class PaletteEntry { class BasicPalette { static const PaletteEntry white = PaletteEntry(Color(0xFFFFFFFF)); static const PaletteEntry black = PaletteEntry(Color(0xFF000000)); + static const PaletteEntry red = PaletteEntry(Color(0xFFFF0000)); + static const PaletteEntry green = PaletteEntry(Color(0xFF00FF00)); + static const PaletteEntry blue = PaletteEntry(Color(0xFF0000FF)); + static const PaletteEntry magenta = PaletteEntry(Color(0xFFFF00FF)); } diff --git a/packages/flame/lib/src/sprite.dart b/packages/flame/lib/src/sprite.dart index 61c29108d..7e7fe6635 100644 --- a/packages/flame/lib/src/sprite.dart +++ b/packages/flame/lib/src/sprite.dart @@ -9,7 +9,7 @@ import 'flame.dart'; import 'palette.dart'; class Sprite { - Paint paint = BasicPalette.white.paint; + Paint paint = BasicPalette.white.paint(); Image image; Rect src = Rect.zero; diff --git a/tutorials/1_basic_square/README.md b/tutorials/1_basic_square/README.md index 4175a75e7..15db60a1d 100644 --- a/tutorials/1_basic_square/README.md +++ b/tutorials/1_basic_square/README.md @@ -108,7 +108,7 @@ Right, now we have all the data and variables we need to start implementing our class MyGame extends Game { // BasicPalette is a help class from Flame, which provides default, pre built instances // of Paint that can be used by your game - static final squarePaint = BasicPalette.white.paint; + static final squarePaint = BasicPalette.white.paint(); // Update mehod ommited diff --git a/tutorials/1_basic_square/code/lib/main.dart b/tutorials/1_basic_square/code/lib/main.dart index 461c7f445..006e3f8c9 100644 --- a/tutorials/1_basic_square/code/lib/main.dart +++ b/tutorials/1_basic_square/code/lib/main.dart @@ -13,7 +13,7 @@ void main() { class MyGame extends Game { static const int squareSpeed = 400; - static final squarePaint = BasicPalette.white.paint; + static final squarePaint = BasicPalette.white.paint(); late Rect squarePos; int squareDirection = 1;