在对战游戏中使用榜单,可以鼓励棋友与别人进行比较,从而激发他更多的提升自己的分数的热情。
本节概要
- 实现象棋游戏的积分机制
- 上报玩家积分
- 呈现玩家排行
现在实现一个榜单,我们有三个方面的问题要面对:
- 积分方案的设计
- 服务端实现榜单查询云服务
- 积分查询和上报
对于我们目前阶段的中国象棋游戏,我们鼓励对战,这是我们游戏的主要内容。所以我们的积分体系中对在「单机对战」中获胜的事件、以及在「挑战云主机」获胜事件进行积分奖励:
- 战胜手机 AI + 5分
- 战胜云服务器 + 30分
现在我们先来处理用户的积分问题!
实现积分机制
为了能给每个用户一个唯一的 ID,我们需要添加一个新的三方插件 uuid,在 pubspec.yaml 中添加 uuid 的最新版本,保存后 vscode 会自动开始插件 pub get 指令下载插件代码:
...
dependencies:
...
uuid: ^2.0.4
...
接着,我们在 lib/services 文件夹下新建 ranks.dart 文件,在其中首先创建一个 RankItem 类:
class RankItem {
//
String name;
int winCloudEngine, winPhoneAi;
RankItem(Map<String
本文介绍了如何在对战游戏中实现积分榜机制,包括积分设计方案、服务端查询云服务和积分查询上报。通过设计积分奖励系统,如战胜AI和云服务器给予不同积分,以及使用uuid为用户生成唯一ID。同时,详细讲解了RankItem和Ranks类的实现,以及模拟数据的使用来展示排行榜。玩家积分在本地保存并在变动时上传,最终在RankPage中展示排行榜。
订阅专栏 解锁全文
958

被折叠的 条评论
为什么被折叠?



