ES

Tutorial 6 — Guardar las puntuaciones y las opciones

Los archivos del jugador van a la carpeta var/ del juego en el escritorio, y al almacenamiento del navegador (IndexedDB) en la web: el mismo código.

// una mejor puntuación
$best = $this->engine->storage->readJson('scores.json', ['best' => 0]);
if ($this->score > $best['best']) {
    $this->engine->storage->writeJson('scores.json', ['best' => $this->score]);
}

// ajustes (se guardan al instante)
$difficulty = $this->engine->options->get('difficulty', 'normal');
$this->engine->options->set('difficulty', 'hard');

Cuando se abandona la página o se cierra la ventana, el evento close permite guardar el estado:

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

No leas nunca un archivo del jugador en el momento del build: la carpeta var/ no se publica.