Я установил достижение за прохождение первого уровня моей игры, и оно работает, но когда я переигрываю уровень и прохожу его, оно снова показывает баннер с уведомлением, как я могу предотвратить это?
Достижение Game Center разблокируется несколько раз
comment
Взгляните на этот вопрос - похоже, вы не проверяете, разблокированы ли достижения.
- person thegrinner   schedule 02.08.2012
Ответы (2)
Используйте этот метод, чтобы отправить достижение:
-(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];
}];
}
person
Kaan Dedeoglu
schedule
05.08.2012
Сэр, вы спасли мой день
- person alper_k; 04.09.2013
Сохраните, что пользователь прошел уровень на NSUserDefaults
, затем когда пользователь пройдет уровень, проверьте NSUserDefaults
на наличие вашего ключа, если он есть то не делайте код достижения для Game Center.
person
WhoaItsAFactorial
schedule
01.08.2012
Это работает до некоторой степени. Я обнаружил, что если я выполняю достижение, а затем выхожу из игрового центра и вхожу в учетную запись, для которой не выполнено достижение, это делает невозможным получение нового игрока :(
- person matt saravitz; 02.08.2012
вы можете сохранить его с псевдонимом игрока. но лучше использовать loadAchievementsWithCompletionHandler.
- person erkanyildiz; 08.08.2012