Guias
Rankings e salvamentos
Copiar página
Um ranking e progresso salvo sem um servidor seu. Envie pontuações, mostre os melhores 50, e mantenha o progresso no armazenamento em nuvem para que ele siga os jogadores para qualquer telefone.
#Um ranking
async function gameOver(score) {
const { best } = await Lia.submitScore(score);
if (score === best) Lia.haptic("success");
showBoard(await Lia.leaderboard());
}
function showBoard({ top, me }) {
list.innerHTML = top
.map((row) => `<li class="${row.me ? "me" : ""}"><b>${row.rank}</b> @${escapeHtml(row.name)} <span>${row.score}</span></li>`)
.join("");
if (me && me.rank > top.length) footer.textContent = `You: #${me.rank} with ${me.score}`;
}Escape nomes antes de colocá-los em HTML, como com qualquer texto de pessoas.
Cada aplicativo tem uma classificação, com cada jogador's melhor. Pontuações são números inteiros e quanto maior, melhor; para um tempo ou "menor número de movimentos", envie algo como 1000000 - milliseconds.
#Progresso salvo
Armazenamento na nuvem mantém até 1024 chaves por jogador no seu aplicativo em Lia'servidor, e segue-os para qualquer telefone.
const SAVE = "save";
async function load() {
const text = await Lia.cloudStorage.getItem(SAVE);
return text ? JSON.parse(text) : { level: 1, coins: 0 };
}
let saving = null;
function save(state) {
// Coalesce saves: at most one write every 2 seconds.
clearTimeout(saving);
saving = setTimeout(function () {
Lia.cloudStorage.setItem(SAVE, JSON.stringify(state)).catch(function () {
Lia.deviceStorage.setItem(SAVE, JSON.stringify(state)); // keep it on the phone meanwhile
});
}, 2000);
}
Lia.onPause(function () { /* save now: they may not come back */ });Valores são até 4096 caracteres, então mantenha coisas grandes (um editor de nível's mapas, por exemplo) no seu próprio servidor ou divida-os entre chaves e leia-os de volta com getItems.
#O que vai onde
| Mantenha-o em | Quando |
|---|---|
Lia.cloudStorage | Progresso, configurações e qualquer coisa que o jogador espera em um novo telefone |
Lia.deviceStorage | Caches, rascunhos e qualquer coisa que você possa perder (até 5 MB) |
Lia.secureStorage | Um token para o seu próprio servidor (até 10 itens) |
| Seu próprio servidor | Qualquer coisa que'é o que vale dinheiro ou decide prêmios, moedas compradas com $LIA, e o que outros jogadores veem |
Armazenamento na nuvem é o jogador'para mudar da sua página, então trate como qualquer coisa da página: bom para seu próprio progresso, não para saldos. Teste e compartilhe em produção.
Traduzido automaticamente. O inglês é a fonte de verdade. Leia em inglês