Pular para o conteúdo
Baixar

Salvar dados

Save guarda valores com um nome, e eles continuam lá quando o jogo é fechado e aberto de novo.

Save::set("recorde", pontos);
int recorde = Save::getInt("recorde");
Função O que faz Exemplo
void Save::set(std::string_view key, valor) Guarda um valor: int, float, bool ou texto. A Brasa grava no disco sozinha, no mesmo quadro. Save::set("volume", 0.5f);
int Save::getInt(std::string_view key, int fallback = 0) O número inteiro guardado, ou fallback se não há. Save::getInt("recorde")
float Save::getNumber(std::string_view key, float fallback = 0.0f) O número guardado. Save::getNumber("volume", 1.0f)
bool Save::getBool(std::string_view key, bool fallback = false) O sim/não guardado. Save::getBool("tem_espada")
std::string Save::getText(std::string_view key, std::string_view fallback = {}) O texto guardado. Save::getText("nome", "Jogador")
bool Save::has(std::string_view key) true se há um valor com esse nome. if (Save::has("recorde")) ...
void Save::remove(std::string_view key) Apaga um valor. Save::remove("tem_espada");
void Save::clear() Apaga tudo (um “novo jogo”). Save::clear();
void Save::set(std::string_view key, const std::vector<int>& values) Guarda uma lista inteira (também de float e de std::string). Save::set("fases", std::vector<int>{1, 2, 5});
std::vector<int> Save::getInts(std::string_view key) A lista guardada (getNumbers e getTexts para os outros tipos); vazia se não há. for (int fase : Save::getInts("fases")) ...
bool Save::setJson(std::string_view key, std::string_view json) e std::string Save::getJson(std::string_view key) Qualquer valor escrito em JSON (listas dentro de listas, tabelas). É como os scripts em Lua guardam tabelas. Save::setJson("mapa", "[[1,0],[0,1]]");
  • O arquivo fica em %APPDATA%\Brasa\Jogos\<nome do jogo>\save.json, fora da pasta do jogo: continua lá quando o jogo é atualizado.
  • O nome do jogo é o das Configurações do projeto. Mudar o nome começa um arquivo novo.
  • Para passar um valor de uma room para outra sem gravar no disco, veja Guardar dados entre rooms.