2012-08-01 33 views
6

Tôi thiết lập thành tích để vượt qua cấp độ đầu tiên của trò chơi và nó hoạt động nhưng khi tôi phát lại cấp độ và vượt qua nó sẽ hiển thị lại biểu ngữ thông báo, làm cách nào để ngăn điều này xảy ra?Thành tích Trung tâm trò chơi mở khóa nhiều lần

+0

Hãy xem [này] (http://stackoverflow.com/questions/4768163/check-if-youve-already-unlocked-an- câu hỏi thành tích-trong-game-center-gamekit) - có vẻ như bạn không kiểm tra xem các thành tích đã được mở khóa chưa. – thegrinner

Trả lời

11

Sử dụng phương pháp này để gửi các thành tích:

-(void) reportAchievementWithID:(NSString*) achievementID { 

    [GKAchievement loadAchievementsWithCompletionHandler:^(NSArray *achievements, NSError *error) { 

     if(error) NSLog(@"error reporting ach"); 

     for (GKAchievement *ach in achievements) { 
      if([ach.identifier isEqualToString:achievementID]) { //already submitted 
       return ; 
      } 
     } 

     GKAchievement *achievementToSend = [[GKAchievement alloc] initWithIdentifier:achievementID]; 
     achievementToSend.percentComplete = 100; 
     achievementToSend.showsCompletionBanner = YES; 
     [achievementToSend reportAchievementWithCompletionHandler:NULL]; 

    }]; 

} 
+0

Thưa bạn, bạn đã cứu ngày của tôi –

-2

Lưu người dùng đã vượt qua cấp độ NSUserDefaults, sau đó khi người dùng vượt qua kiểm tra mức NSUserDefaults cho khóa của bạn, nếu có thì không làm mã thành tích cho Trung tâm trò chơi.

+0

Điều đó hoạt động ở mức độ nào đó. Tôi thấy rằng nếu tôi hoàn thành thành tích và sau đó đăng xuất khỏi trung tâm trò chơi và đăng nhập vào tài khoản doest có thành tích đã hoàn thành, bạn không thể kiếm được tiền cho người chơi mới: ( –

+0

bạn có thể lưu trữ nó bằng bí danh người chơi nhưng sử dụng loadAchievementsWithCompletionHandler – erkanyildiz

Các vấn đề liên quan