gpt4 book ai didi

ios - Game Center show Completion Banner 不断显示

转载 作者:行者123 更新时间:2023-11-29 10:42:33 26 4
gpt4 key购买 nike

在我的游戏中(我使用的是SpriteKit,因此只支持iOS 7),当玩家达到他的前10分时,他会获得成就.我已经实现了如下成就方法:

-(void) First10Points
{
GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier: @"Achievement_First10Points"];

if (achievement)
{
achievement.showsCompletionBanner = YES;
achievement.percentComplete = 100.0;

NSArray *achievements = [NSArray arrayWithObjects:achievement, nil];

[GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) {
if (error != nil) {
NSLog(@"Error in reporting achievements: %@", error);
}
}];
}
}

这很好用,成就确实是在 10 分时获得的,游戏中心的横幅在游戏中向玩家表明了这一点。但是,当横幅消失时,它会在一秒钟左右后重新出现,并继续出现,直到我终止游戏。在执行此循环操作时仍然可以玩游戏。我似乎不明白为什么会这样,而且我在网上搜索时也没有遇到过这个问题。有人有想法吗?或者我应该以其他方式实现我的成就?

最佳答案

一种可能是您多次调用 First10Points 方法。在再次呈现成就之前,您应该检查玩家是否已经达到 10 分成就。如果他们确实已经到达,则不要调用该方法。

尝试添加一个变量,例如 BOOL first10 = NO; 当您运行检查 (score == 10) 时,设置 first10 = YES; 每次调用 First10Points 之前,确保 (first10 == NO)

关于ios - Game Center show Completion Banner 不断显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23816353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com