Phaser Scene Navigation
Overview
Standardize Phaser scene transitions and navigation testing patterns. Improve reliability of scene navigation testing.
Scene Transition Methods
this.scene.start('SceneName', data)- Start new scene with datathis.scene.switch('SceneName')- Switch to existing scene- Test seam:
window.__TEST__.commands.clickStartGame()- Navigate via UI
See references/transition-methods.md for detailed transition patterns.
Navigation Testing
Use test seam commands when available:
clickStartGame()- Navigate to gameclickPlayAgain()- Restart game
Wait patterns:
- Wait for scene initialization before accessing test seam
- Wait 1-2 seconds after transition before checking test seam
- Use console logs to verify scene transitions
Don't rely solely on test seam sceneKey (may lag on transitions)
See references/navigation-testing.md for detailed testing patterns.
Scene Lifecycle
- Test seams are set up in
create()method - Each scene creates its own
window.__TEST__object - Old scene's test seam may persist briefly after transition
- Wait 1-2 seconds after transition before checking test seam
Common Navigation Patterns
- MainMenu → GameScene: Use
clickStartGame()test command - GameScene → LevelCompleteScene: Automatic on exit reach
- GameScene → GameOverScene: Automatic on timer expire
- Any scene → MainMenu: Use
this.scene.start('MainMenu')
Resources
references/transition-methods.md- Scene transition methods and data passingreferences/navigation-testing.md- Wait patterns, console log verification