iOS更新游戏中心成就
我实施了gameKit,但现在出现了一个问题: 游戏中心没有显示我的成就进度,因此玩家无法获得这些成就。 我的成就中只有一项是正确的,我不知道为什么 更新 如果我只使用一个If语句(那么我只有一个成就),那么它工作得非常完美……因此它必须与我的If条件iOS更新游戏中心成就,ios,if-statement,game-center,gamekit,achievements,Ios,If Statement,Game Center,Gamekit,Achievements,我实施了gameKit,但现在出现了一个问题: 游戏中心没有显示我的成就进度,因此玩家无法获得这些成就。 我的成就中只有一项是正确的,我不知道为什么 更新 如果我只使用一个If语句(那么我只有一个成就),那么它工作得非常完美……因此它必须与我的If条件 -(void)updateHievents{ NSString*实现标识符; 浮动百分比=0.0; BOOL progressinlevelAchization=否; GK成就*水平成就=零; GK成绩*得分成绩=零; 如果(进展水平成就){
-(void)updateHievents{
NSString*实现标识符;
浮动百分比=0.0;
BOOL progressinlevelAchization=否;
GK成就*水平成就=零;
GK成绩*得分成绩=零;
如果(进展水平成就){
LevelAchization=[[GKAchization alloc]initWithIdentifier:AchizationIdentifier];
LevelAchization.percentComplete=进度百分比;
}
如果(分数可能是我的if分数不正确……但我不知道你的if语句是否完全错误,如果用户分数为0,则所有条件都得到满足,因此只有最后的成绩才会被解锁。你的意思是检查分数是否大于某个分数吗?你需要使用>=@andreamazz我的意思是,如果分数为例如13,t11分的成绩应该解锁,22分的成绩应该显示一个百分比……希望你理解我的意思。如果分数是13,你可以将achievementIdentifier
编码为Achievent\u 1000Total
,这就是为什么它是唯一更新的成绩
-(void)updateAchievements{
NSString *achievementIdentifier;
float progressPercentage = 0.0;
BOOL progressInLevelAchievement = NO;
GKAchievement *levelAchievement = nil;
GKAchievement *scoreAchievement = nil;
if (progressInLevelAchievement) {
levelAchievement = [[GKAchievement alloc] initWithIdentifier:achievementIdentifier];
levelAchievement.percentComplete = progressPercentage;
}
if (score <= 11) {
progressPercentage = score * 100 / 11;
achievementIdentifier = @"Achievement_11Points";
}
if (score <= 22) {
progressPercentage = score * 100 / 22;
achievementIdentifier = @"Achievement_22Points";
}
if (score <= 55) {
progressPercentage = score * 100 / 55;
achievementIdentifier = @"Achievement_55Points";
//only the following achievement works
if ([Score addScore] <= 1000) {
progressPercentage = [Score addScore] * 100 / 1000;
achievementIdentifier = @"Achievement_1000Total";
}
scoreAchievement = [[GKAchievement alloc] initWithIdentifier:achievementIdentifier];
scoreAchievement.percentComplete = progressPercentage;
NSArray *achievements = (progressInLevelAchievement) ? @[levelAchievement, scoreAchievement] : @[scoreAchievement];
[GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
if (error != nil) {
NSLog(@"%@", [error localizedDescription]);
}
}];
}