@flare-engine/ 领导板
类型 LeaderboardsProvider 接口 + NoopLeaderboardsProvider +反应上下文,加 createMemoryLeaderboards ——为测试,本地dev,和单玩家游戏的后端免费内幕提供商. 混凝土平台适配器(Game Center,Google Play Games,Steam)是后发射的;在此之前在应用边界自线.
安装
bun add @flare-engine/leaderboards
使用量
import {
LeaderboardsContext,
useLeaderboards,
NoopLeaderboardsProvider,
} from '@flare-engine/leaderboards';
export function App() {
return (
<LeaderboardsContext.Provider value={NoopLeaderboardsProvider}>
{/* ... */}
</LeaderboardsContext.Provider>
);
}
useLeaderboards() 返回活动提供者。 这个 LeaderboardsProvider 表面为 submitScore(id, score, meta?), (中文(简体) ), getTopN(id, n),以及 getPlayerRank(id) - 全都是动脉 盗用 NoopLeaderboardsProvider 对于另一个供应商来说,不需要改变消费者.
当地供应商- createMemoryLeaderboards
记忆 LeaderboardsProvider 包含有文件记载的语义,用于测试和去除:
import { createMemoryLeaderboards } from '@flare-engine/leaderboards';
const boards = createMemoryLeaderboards({
playerId: 'p1',
displayName: 'You',
seed: {
daily: [
{ playerId: 'a', displayName: 'Ada', score: 300 },
{ playerId: 'b', displayName: 'Bo', score: 100 },
],
},
});
await boards.submitScore('daily', 250);
await boards.getTopN('daily', 10); // [Ada 300 #1, You 250 #2, Bo 100 #3]
await boards.getPlayerRank('daily'); // 2
- 每个
submitScore以当地身份登记的记录playerId默认'local'编号 :displayName默认'Player')——接口没有玩家id. seed预选人口为每块棋盘相竞者行,所以没有后端的查询是有意义的.- 最佳得分取胜:严格更高的提交数取代了当地玩家的分数和元;低等或等分的则被忽略.
- 排名以分数为降级,以插入顺序为分数而断接(更上等),依次为一等分.
getTopN返回最多为n行数(n <= 0或未知的棋盘[](三);getPlayerRank返回本地级别或null当本地玩家没有条目时. - 板子会长出无限制的(没有驱逐)——用于测试和当地的dev,而不是生产储存.
内置后退
在 CI 或 dev 构建中没有平台证书, 请选择 NoopLeaderboardsProvider (或 createMemoryLeaderboards)在您自己的嵌入式旗帜后,在真实身份证明到来之前,任何事物都不要触及一个本地的SDK.