【问题标题】:Cocos2d, need to save nsuserdefault object id to game centerCocos2d,需要保存nsuserdefault对象id到游戏中心
【发布时间】:2012-07-23 05:36:36
【问题描述】:

我有一个对象 ID“分数”需要保存到我的排行榜。

我按照一个例子进入了这部分

-(void) onPlayerInfoReceived:(NSArray*)players
{
    CCLOG(@"onPlayerInfoReceived: %@", [players description]);
    GameKitHelper* gkHelper = [GameKitHelper sharedGameKitHelper];
    [gkHelper submitScore:1234 category:@"scoreboard"];

    [gkHelper showLeaderboard];
}

除了我需要保存它。

  _score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];    

并且不需要玩家工具包助手参考,因为它在同一个文件中。

【问题讨论】:

  • 我认为在开始尝试编写游戏之前,您需要花一些时间来学习 Objective-C 和一般编程的基础知识。

标签: iphone objective-c ios xcode4 cocos2d-iphone


【解决方案1】:

我不太明白这里的问题,但我会试一试。不过,在我这样做之前,您绝对应该按照 @Nick Bull 所说的去做,并学习编程和 Objective-c 的基础知识。

现在,我认为您想要的是将保存在 NSUserDefaults 中的分数报告给 GameCenter,而不是“1234”。

替换这一行:

[gkHelper submitScore:1234 category:@"scoreboard"];

有了这个:

[gkHelper submitScore:[[NSUserDefaults standardUserDefaults] integerForKey:@"score"] category:@"scoreboard"];

[[NSUserDefaults standardUserDefaults] integerForKey:@"score"] 返回一个 int 对吗?因此,您应该能够将其作为参数传递到您的提交分数方法中。

【讨论】:

  • 你看我一开始是这样做的,并认为这是错误的,因为游戏中心没有更新,但我现在知道游戏中心需要永远更新,这很烦人。此外,在执行此操作之前,您必须至少拥有 2 个帐户。有点烦人,但无论如何谢谢这里是你的复选标记。
  • 谢谢,很高兴能帮上忙。是的,Game Center 的速度有多慢以及有时测试有多不方便,这非常令人讨厌。
猜你喜欢
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
相关资源
最近更新 更多