gpt4 book ai didi

ios - 重置单个游戏中心成就

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:44 25 4
gpt4 key购买 nike

在我的应用程序中,我取得了连续 10 场胜利的成就。因此,当用户连续赢得 5 场比赛时,我报告成就已完成 50% - 这很好用。当用户输掉一些游戏时,我调用我的 resetAchievment 方法,该方法将百分比设置为 0 并再次报告百分比。然而,当我重新启动应用程序时,百分比从 GKAchivement 中读取,它仍然显示 50%。

- ( void ) resetAchievement
{
_gamekitAchievement.percentComplete=0.0f;
_counter = 0;
[self report];
}

- ( void ) report
{
_gamekitAchievement.showsCompletionBanner = YES;
[_gamekitAchievement reportAchievementWithCompletionHandler:^(NSError *error)
{
if (error)
{
NSLog(@"reporting Achievment: %@ failed, error: %@", _gamekitAchievement.identifier, [error localizedDescription]);
}
}];
}

是否不可能再次报告较小的百分比 - 还是我做错了什么?

最佳答案

我完全没有 GameKit 的实际经验,但从阅读文档和搜索网络来看,你似乎只能报告进步而不是回归(?)更不用说这个事实了你只能重置所有成就......也许以下内容仍然可以帮助你实现(咳咳)你想要的:

  • 使用 + (void)loadAchievementsWithCompletionHandler 更新所有本地成就数据:
  • 为了安全起见将此数据存储在 userDefaults 中
  • 不要重置本地成就数据
  • 使用 + (void)resetAchievementsWithCompletionHandler 重置所有成就:
  • 将相关成就的完成百分比更改为 0。
  • 报告本地存储中所有成就的进度

现在,正如我所提到的,由于我不知道的一些原因(例如,向玩家呈现进度的方式),如果没有使用此框架的实践经验,上述内容可能不切实际。无论如何,我想分享这个想法是值得的......

关于ios - 重置单个游戏中心成就,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com