Руководства
Таблицы лидеров и сохранения
Копировать страницу
Таблица лидеров и сохраненные данные без собственного сервера. Отправляйте результаты, показывайте топ 50, и сохраняйте прогресс в облачном хранилище, чтобы он следовал игрокам на любом телефоне.
#Таблица лидеров
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}`;
}Экранируйте имена перед помещением их в HTML, как и с любым текстом от людей.
У каждого приложения есть одна таблица лидеров, с каждым игроком'лучший. Рекорды - целые числа, и чем больше, тем лучше; для времени или "наименьшее количество ходов", отправьте что-то вроде 1000000 - milliseconds.
#Сохраненный прогресс
Облачное хранилище хранит до 1024 ключей на игрока в вашем приложении на Lia'сервер, и следует за ним на любом телефоне.
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 */ });Значения до 4096 символов, поэтому храните большие вещи (редактор уровня'карт, например) на вашем собственном сервере или разделите их по ключам и прочитайте их с помощью getItems.
#Куда что идет
| Храните его в | Когда |
|---|---|
Lia.cloudStorage | Прогресс, настройки и все, что игрок ожидает на новом телефоне |
Lia.deviceStorage | Кэши, черновики и все, что вы можете потерять (до 5 MB) |
Lia.secureStorage | Токен для вашего собственного сервера (до 10 элементов) |
| Ваш собственный сервер | Всё, что'стоит денег или определяет призы, монеты, купленные с помощью $LIA, и то, что видят другие игроки |
Облачное хранилище - это игрок'чтобы изменить с вашей страницы, поэтому относитесь к нему как к чему-либо с вашей страницы: хорошо для их собственного прогресса, но не для балансов. Тестируйте и делитесь в живом режиме.
Автоматически переведено. Английский — источник истины. Читать на английском