PT

Tutorial 6 — Salvar pontuações e opções

Os arquivos do jogador vão para a pasta var/ do jogo no desktop e para o armazenamento do navegador (IndexedDB) na web: o mesmo código.

// uma melhor pontuação
$best = $this->engine->storage->readJson('scores.json', ['best' => 0]);
if ($this->score > $best['best']) {
    $this->engine->storage->writeJson('scores.json', ['best' => $this->score]);
}

// configurações (gravadas na hora)
$difficulty = $this->engine->options->get('difficulty', 'normal');
$this->engine->options->set('difficulty', 'hard');

No momento em que a página é fechada ou a janela é encerrada, o evento close permite salvar o estado:

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

Nunca leia arquivos do jogador na hora do build: a pasta var/ não é publicada.