2014-08-30 92 views
2

我將成就添加到xCode項目中。下面我使用的代碼在獲得成就方面效果很好,但唯一的問題是它在調試控制檯的後臺不斷獲得獎勵。每次我加載遊戲時都會發生這種情況。遊戲中心的成就每次都會得到獎勵

我還發現,當第一次完成橫幅被重複授予成就時。

今天我的問題是如何編輯代碼,只獎勵一次成就,顯示橫幅,然後再也不會出現?

-(void)Scoring 
{ 
    ScoreNumber = ScoreNumber + AddedScore; 
    AddedScore = AddedScore - 1; 

    if (AddedScore < 0) { 
     AddedScore = 0; 
    } 

    Score.text = [NSString stringWithFormat:@"%i", ScoreNumber]; 

    if (ScoreNumber > 110 && ScoreNumber < 1000) { 
     LevelNUmber = 2; 
     //self.view.backgroundColor = [UIColor greenColor]; 
     GKAchievement *achievement= [[GKAchievement alloc] initWithIdentifier:@"_level1easy"]; 
     achievement.percentComplete = 100.0; 
     achievement.showsCompletionBanner = YES; 
     if(achievement!= NULL) 
      { 
       NSArray *achievements = [NSArray arrayWithObjects:achievement, nil]; 
       [GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) { 
        if (error != nil) { 
         NSLog(@"Error in reporting achievements: %@", error); 
        } else { 
         NSLog(@"Achievement 1 Success"); 
         } 
       }]; 
      } 
     } 

回答

1

如果我正確理解你的問題,那麼你只需要在某處保存你的成就狀態,然後在進入評分方法時檢查它。例如,可能嘗試保存在NSUserdefaults中;

NSUserDefaults *savedScoring = [NSUserDefaults standardUserDefaults]; 
[savedScoring setObject:self.showsCompletionBanner forKey:@"showsCompletionBanner"]; 

然後在遊戲加載時檢查。