Skip to main content
Version: Dev

Time

BatFramework provides timers managed by a global TimeManager.

Timer​

bf.Timer(duration=2.0, end_callback=lambda: print("done")).start()
  • duration — seconds
  • end_callback — called when the timer finishes
  • loop — how many times to repeat (0 = once, higher values repeat)
  • start(), stop(), pause(), resume(), delete()
  • get_progression() — 0.0 to 1.0

By default timers use the "global" register and always tick.

SceneTimer​

SceneTimer is bound to a scene's time register. It only advances while that scene is active (on enter / off exit).

bf.SceneTimer(
duration=1.5,
end_callback=spawn_enemy,
scene_name="level1",
).start()

Each Scene registers its name with TimeManager automatically.

TimeManager​

Singleton that updates all timer registers every frame (called by Manager).

You usually do not call it directly, but you can activate/deactivate registers or adjust time scale per register if needed.