指南
排行榜和保存
复制页面
一个排行榜,以及无需你自己的服务器的保存进度。提交分数,显示前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购买的硬币,以及其他玩家看到的内容 |
云存储就是玩家'从你的页面更改,因此将其视为页面上的任何内容:适合他们自己的进度,不适合余额。测试并分享它。
自动翻译。英语是真实来源。 阅读英文