Debug mode to be variable on BaseGame (#608)

* Debug mode to be variable on BaseGame

* Update debug mode docs

* Fix typo

Co-authored-by: Erick <erickzanardoo@gmail.com>
This commit is contained in:
Lukas Klingsbo
2021-01-06 00:20:52 +01:00
committed by GitHub
parent 5517c25034
commit 90fe03dc32
6 changed files with 13 additions and 12 deletions

View File

@ -28,6 +28,7 @@
- Remove Resizable mixin - Remove Resizable mixin
- Use config defaults for TextBoxComponent - Use config defaults for TextBoxComponent
- Fixing Game Render Box for flutter >= 1.25 - Fixing Game Render Box for flutter >= 1.25
- DebugMode to be variable instead of function on BaseGame
## 1.0.0-rc3 ## 1.0.0-rc3
- Fix TextBoxComponent rendering - Fix TextBoxComponent rendering

View File

@ -13,8 +13,7 @@ class MyGame extends Game with FPS {
## BaseGame features ## BaseGame features
Flame provides some features for debugging, these features are enabled when the method `debugMode` from the `BaseGame` class is overridden, and returning `true`. When it's enabled all `PositionComponent`s will be wrapped into a rectangle, and have its position rendered on the screen, so you can visually verify the component boundaries and position. Flame provides some features for debugging, these features are enabled when the `debugMode` from the `BaseGame` class is set to `true` (or overridden to be true).
When it's enabled all `PositionComponent`s will be wrapped into a rectangle, and have its position rendered on the screen, so you can visually verify the component boundaries and position.
In addition to the debugMode, you can also ask `BaseGame` to record the fps(the `BaseGame` used the [FPSCounter](fps-counter) mixin). To enable it you have to override the `recordFps` method to return `true`, by doing so, you can access the current fps by using the method `fps`.
To see a working example of the debugging features of the `BaseGame`, [check this example](/doc/examples/debug). To see a working example of the debugging features of the `BaseGame`, [check this example](/doc/examples/debug).

View File

@ -47,7 +47,7 @@ class MyGame extends BaseGame {
ParentSquare _parent; ParentSquare _parent;
@override @override
bool debugMode() => true; bool debugMode = true;
MyGame() { MyGame() {
_parent = ParentSquare(Vector2.all(200), Vector2.all(300)); _parent = ParentSquare(Vector2.all(200), Vector2.all(300));

View File

@ -62,7 +62,7 @@ class MyGame extends BaseGame {
final fpsTextConfig = TextConfig(color: const Color(0xFFFFFFFF)); final fpsTextConfig = TextConfig(color: const Color(0xFFFFFFFF));
@override @override
bool debugMode() => true; bool debugMode = true;
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
@ -91,7 +91,7 @@ class MyGame extends BaseGame {
void render(Canvas canvas) { void render(Canvas canvas) {
super.render(canvas); super.render(canvas);
if (debugMode()) { if (debugMode) {
fpsTextConfig.render(canvas, fps(120).toString(), Vector2(0, 50)); fpsTextConfig.render(canvas, fps(120).toString(), Vector2(0, 50));
} }
} }

View File

@ -498,13 +498,13 @@ class MyGame extends BaseGame {
} }
@override @override
bool debugMode() => true; bool debugMode = true;
@override @override
void render(Canvas canvas) { void render(Canvas canvas) {
super.render(canvas); super.render(canvas);
if (debugMode()) { if (debugMode) {
fpsTextConfig.render( fpsTextConfig.render(
canvas, '${fps(120).toStringAsFixed(2)}fps', Vector2(0, size.y - 24)); canvas, '${fps(120).toStringAsFixed(2)}fps', Vector2(0, size.y - 24));
} }

View File

@ -48,7 +48,7 @@ class BaseGame extends Game with FPSCounter {
); );
} }
if (debugMode() && c is PositionComponent) { if (debugMode && c is PositionComponent) {
c.debugMode = true; c.debugMode = true;
} }
@ -151,9 +151,10 @@ class BaseGame extends Game with FPSCounter {
/// Returns whether this [Game] is in debug mode or not. /// Returns whether this [Game] is in debug mode or not.
/// ///
/// Returns `false` by default. Override to use the debug mode. /// Returns `false` by default. Override it, or set it to true, to use debug mode.
/// You can use this value to enable debug behaviors for your game, many components show extra information on screen when on debug mode /// You can use this value to enable debug behaviors for your game and many components will
bool debugMode() => false; /// show extra information on the screen when debug mode is activated
bool debugMode = false;
/// Returns the current time in seconds with microseconds precision. /// Returns the current time in seconds with microseconds precision.
/// ///