我已经做了所有事情并将游戏中心集成到我的游戏中,我的游戏是一个跑步游戏,所以我在我的游戏中添加了一些成就,比如最好的跑步者(500米),极限跑步者(1000米),王者跑步者(2000米)喜欢那。
一切正常,但问题是,如果用户跑了 500 米,它将解锁成就板上的最佳跑步者徽章。但如果用户像这样跑 501 或 510 或 540,我没有更新成就,我需要解锁这个徽章用户跑了 500 - 999 米。我尝试了很多来解决这个问题,但没有运气。
我的代码是它的更新分数方法
int dismetr = self.currentScore >= 500;
self.currentScore = dismetr;
[self checkAchievements];
我在这里静态地将值设置为 500
并在switch case方法中
- (void) checkAchievements
{
NSString* identifier = NULL;
double percentComplete = 0;
switch(self.currentScore)
{
case 500:
{
if (self.currentScore >= 500) {
NSLog(@"ACHIVEMENT 500");
identifier= kAchievement500meter ;
percentComplete= 100.0;
break;
}
}
case 1000:
// onother statments
}
if(identifier != NULL)
{
[self.gameCenterManager submitAchievement: identifier percentComplete: percentComplete];
}
}
无论如何它都不会更新分数。但是如果我把
它的更新分数方法
int dismetr = 500;
self.currentScore = dismetr;
[self checkAchievements];
在这种方法中
- (void) checkAchievements
{
NSString* identifier = NULL;
double percentComplete = 0;
switch(self.currentScore)
{
case 500:
{
NSLog(@"ACHIVEMENT 500");
identifier= kAchievement500meter ;
percentComplete= 100.0;
break;
}
case 1000:
// onother statments
}
if(identifier != NULL)
{
[self.gameCenterManager submitAchievement: identifier percentComplete: percentComplete];
}
}
它正在正确更新分数..我能做些什么来解决这个问题。请帮助我做到这一点。
提前致谢。