Abstract
Lightweight scene management using a stack-based scene graph.
Useful for menus, gameplay, pause overlays, and level transitions.
class MenuScene extends Scene { onEnter() { console.log('menu started'); } render() { drawText('Press SPACE', ...); }}const sm = new SceneManager();sm.push(new MenuScene('menu'));// In your game loop:engineStart({ update(dt) { sm.current?.update(dt); }, render() { sm.current?.render(); },}); Copy
class MenuScene extends Scene { onEnter() { console.log('menu started'); } render() { drawText('Press SPACE', ...); }}const sm = new SceneManager();sm.push(new MenuScene('menu'));// In your game loop:engineStart({ update(dt) { sm.current?.update(dt); }, render() { sm.current?.render(); },});
Human-readable scene identifier.
Called when the scene becomes active (first pushed, or resumed after pop).
Called when the scene is no longer active (popped or replaced).
Called every frame while this scene is active.
Lightweight scene management using a stack-based scene graph.
Useful for menus, gameplay, pause overlays, and level transitions.