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]]"); |
Observações
Seção intitulada “Observações”- 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.
