IT

Tutorial 6 — Salvare punteggi e opzioni

I file del giocatore vanno nella cartella var/ del gioco sul desktop, e nello storage del browser (IndexedDB) sul web: lo stesso codice.

// un record
$best = $this->engine->storage->readJson('scores.json', ['best' => 0]);
if ($this->score > $best['best']) {
    $this->engine->storage->writeJson('scores.json', ['best' => $this->score]);
}

// delle impostazioni (salvate subito)
$difficulty = $this->engine->options->get('difficulty', 'normal');
$this->engine->options->set('difficulty', 'hard');

Quando si lascia la pagina o si chiude la finestra, l'evento close permette di salvare lo stato:

$this->engine->lifecycle()->on('close', fn () => $this->engine->storage->writeJson('partie.json', $this->state()));

Non leggere mai file del giocatore al momento del build: la cartella var/ non viene pubblicata.