【发布时间】:2023-04-01 10:33:01
【问题描述】:
我设置了通过游戏第一关的成就,它可以工作,但是当我重玩关卡并通过它时,它再次显示通知横幅,我该如何防止这种情况发生?
【问题讨论】:
-
看看this的问题 - 听起来你没有检查成就是否已经解锁。
标签: iphone objective-c ios xcode game-center
我设置了通过游戏第一关的成就,它可以工作,但是当我重玩关卡并通过它时,它再次显示通知横幅,我该如何防止这种情况发生?
【问题讨论】:
标签: iphone objective-c ios xcode game-center
使用此方法提交成就:
-(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];
}];
}
【讨论】:
保存用户已通过关卡到NSUserDefaults,然后当用户通过关卡时检查NSUserDefaults是否有你的钥匙,如果有则不要为游戏中心做成就代码。
【讨论】: