GameTimeController class
Bridges GameClock to Flame's per-frame update(dt) loop (via tick)
and to Flutter via elapsed (Rx, safe to read from Obx for a
countdown/HUD timer) — both sides observe the exact same clock instance,
so there's no separate synchronization step for them to drift apart on.
Pause has exactly ONE owner: when session is supplied,
GameSessionController's own multi-reason pause state (already
deduplicating user/system pause — see game_session_controller.dart) is
the sole source of truth and tick simply no-ops while it reports
GameSessionPhase.paused; this controller never tracks a second,
competing pause flag in that case. Without a session, setPaused is
the fallback for a standalone timer that has no game session at all.
- Inheritance
-
- Object
- GetLifeCycle
- DisposableInterface
- GetxService
- GameTimeController
Constructors
- GameTimeController({GameSessionController? session, Duration? maxDeltaPerTick, Duration? fixedStep})
Properties
-
elapsed
→ Rx<
Duration> -
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
-
onDelete
→ InternalFinalCallback<
void> -
Internal callback that starts the cycle of this controller.
finalinherited
-
onStart
→ InternalFinalCallback<
void> -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclases.
This method should be internal and is required to define the
lifetime cycle of the subclass.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- session → GameSessionController?
-
final
Methods
-
$configureLifeCycle(
) → void -
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onClose(
) → void -
Called before
onDeletemethod.onClosemight be used to dispose resources used by the controller. Like closing events, or streams before the controller is destroyed. Or dispose objects that can potentially create some memory leaks, like TextEditingControllers, AnimationControllers. Might be useful as well to persist some data on disk.inherited -
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
setPaused(
bool value) → void -
setScale(
double value) → SdkResult< double> -
tick(
double dtSeconds) → int -
Advances by
dtSeconds(Flame'sComponent.update(dt)convention — adoublein seconds) and publishes the new elapsed. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- maybe → GameTimeController?
-
no setter