Skip to content

Scènes

Une scène regroupe les systèmes actifs pour un état de jeu. Changez de scène pour modifier les systèmes en cours d'exécution — menu de pause, gameplay, cinématique.

Définir une scène

Utilisez defineScene() pour créer une scène. Deux formes sont disponibles :

Forme options :

typescript
import { defineScene } from '@gwenjs/core/scene'
import { MovementSystem, RenderSystem } from './systems'

export const GameScene = defineScene({
  name: 'game',
  systems: [MovementSystem, RenderSystem],
})

Forme factory — pour les requêtes inline, les hooks de cycle de vie et la configuration réactive :

typescript
// imports omitted for brevity
export const GameScene = defineScene('game', () => {
  const entities = useQuery({ with: [Position, Velocity] })

  onUpdate((dt) => {
    for (const id of entities) {
      Position.x[id] += Velocity.x[id] * dt
    }
  })
})

Pour naviguer entre scènes, voir Scene Router.

Prochaines étapes

  • Scene Router — Naviguer entre scènes avec un automate fini.
  • Acteurs — Créer des entités nommées basées sur des instances au sein des scènes.
  • Systèmes — Écrire des systèmes qui s'exécutent dans les scènes.