Tag: 游戏中心

Game Center排行榜(Sandbox)中只显示一名玩家

在Game Center的沙箱环境中,我testing了两个不同的用户。 不幸的是,我只能在排行榜上看到一名球员。 只有login的玩家。 我认为它应该更新一段时间后,但现在(24小时后),我仍然只看到领先董事会中的一个用户。 这在沙箱环境中是否正确?

iOS开发:更新我的iPhone 4到iOS 4.3 Beta 3后,我的应用程序说“这个游戏不被Game Center识别”

我使用XCode 3.2.5和iOS 4.2在过去的几个月里一直在构build一个iPhone游戏,而我将把它提交给App Store。 然而,在我这样做之前,我想对iOS 4.3 Beta 3进行testing,所以我下载了最新的beta SDK,将它安装在一个单独的位置,并将设备更新到iOS 4.3 Beta 3.现在,当我运行游戏并试图在Game Center中对本地玩家进行身份validation,并popup一个框提示“此游戏未被Game Center识别”。 为什么? 我尝试通过Game Center应用程序注销Game Center,然后重新启动我的应用程序,但我已经注销,所以问题似乎不是尝试使用非沙盒帐户的结果。 另外,我注意到它在4.3 Beta 3模拟器中运行良好。 我只在更新的设备上得到这个错误。 有任何想法吗? 非常感谢你的智慧!

明确答案是什么playersToInvite是

游戏中心文件表明 当您的应用程序直接从Game Center应用程序启动以主持一个匹配时, playersToInvite参数不为零。 有几个人曾经问过这是如何工作的,也就是说,似乎没有办法从Game Center应用程序中select一个朋友,并邀请他们从 Game Center中玩游戏; 它只适用于你在游戏中邀请。 这个文档的date或者有没有一个秘密的方法来从Game Center开始一个特定于游戏的比赛? 我想testing我的inviteHandler但我一直无法确定如何将这个parameter passing给应用程序。 [GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) { // clean up games in progress here if (acceptedInvite) { NSLog(@"acceptedInvite %@", acceptedInvite); // The acceptedInvite parameter is non-nil when the application receives an // invitation directly from another player. GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController […]

游戏中心结果发布

我正在做一个基于回合的游戏……传输的唯一信息是玩家的分数以及是否已经发送了一个回合。 当下一个玩家收到回合。 数据存储到“scoreToBeat”并turnSent = 1。 玩家然后轮到他们。 之后游戏结束被称为turnSent = 1。 我使用了Ray Wenderlich在http://www.raywenderlich.com/5480/beginning-turn-based-gaming-with-ios-5-part-1上的基于回合的教程。 在他的情况下,比赛结束,是一个领带。 像这样…我似乎无法让它显示失去的人。 for (GKTurnBasedParticipant *part in currentMatch.participants) { part.matchOutcome = GKTurnBasedMatchOutcomeTied; } 我似乎无法得到它显示失去它的人总是performance出胜利。 这是我许多的最新尝试…在比赛顺便说一句,有2名球员…任何想法将不胜感激。 for (GKTurnBasedParticipant *part in currentMatch.participants) { if(part==currentMatch.currentParticipant) { if(points>scoreToBeat) { part.matchOutcome=GKTurnBasedMatchOutcomeWon; } else { part.matchOutcome=GKTurnBasedMatchOutcomeLost; } } else { if(points>scoreToBeat) { part.matchOutcome=GKTurnBasedMatchOutcomeLost; } else { part.matchOutcome=GKTurnBasedMatchOutcomeWon; } }

IOS 7排行榜游戏中心

我已经成功地将Game Centerfunction添加到我的应用程序。 当应用程序打开它成功validation用户,并显示“欢迎回(用户名)”的旗帜。 不过,我不确定如何在游戏中添加排行榜。 我想知道如果有人可以帮助我答:帮助我了解如何链接我在iTunes连接与应用程序的排行榜,并使排行榜的价值高分。 和B:使排行榜显示在应用程序的所有排名。 到目前为止,我的应用程序中的所有gamecenter代码如下所示。 接口文件: #import <Foundation/Foundation.h> #import <GameKit/GameKit.h> @interface GCHelper : NSObject { BOOL gameCenterAvailable; BOOL userAuthenticated; } @property (assign, readonly) BOOL gameCenterAvailable; + (GCHelper *)sharedInstance; -(void)authenticateLocalUser; @end 实施文件: #import "GCHelper.h" @implementation GCHelper @synthesize gameCenterAvailable; #pragma mark initialization static GCHelper *sharedHelper = nil; + (GCHelper *) sharedInstance { if (!sharedHelper) { […]

GKTurnBasedEventListener不能被设置为我的ViewController的委托?

在objC中, Rawendrich为GKTurnBasedEventListener编写的语法,当时是GKTurnBasedEventHandler ,现在由Apple改为如下。 if (!gameCenterAvailable) return; void (^setGKEventHandlerDelegate)(NSError *) = ^ (NSError *error) { GKTurnBasedEventHandler *ev = [GKTurnBasedEventHandler sharedTurnBasedEventHandler]; ev.delegate = self; }; NSLog(@"Authenticating local user…"); if ([GKLocalPlayer localPlayer].authenticated == NO) { [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: setGKEventHandlerDelegate]; } else { NSLog(@"Already authenticated!"); setGKEventHandlerDelegate(nil); } 现在把这个转换成swift之后,写下GKTurnBasedEventListener而不是GKTurnBasedEventHandler ,这是以下方法。 // Converted with Swiftify v1.0.6381 – https://objectivec2swift.com/ if !gameCenterAvailable { […]

在Game Center上validation本地用户时滞后

对于我的cocos2d游戏,我在AppDelegate的applicationDidFinishLaunching方法中validation本地用户。 但是,只要authentication完成,当“欢迎回来,X”消息滑落并备份时,就会在我的游戏中造成短暂的延迟。 问题是我无法控制何时validation完成 – 很明显,持续时间高度依赖于设备的数据连接。 有时,当我在菜单场景中时,消息(以及不可避免的伴随延迟)出现,这是可以接受的,因为我的菜单或多或less是静态的。 通常情况下,游戏已经开始的时候会发生。 因为我的游戏是一个无休止的卷轴,所以这个信息总是会导致玩家的移动,甚至有时会导致玩家死亡(半秒滞后就足够了: – /)。 我怎样才能绕过这个? 我以前在菜单场景之前有一个加载场景来加载我的一些资源,而且由于加载需要一段时间,在加载场景中总是有很好的机会完成authentication,但是当然我不能保证这将是真实的!

如何解决游戏中心的邀请朋友?

我正在通过游戏中心进行多人游戏,我遇到了一个问题。 当我尝试邀请我的一个朋友时,我失败了。 我已经尝试与模拟器和iPhone和两个iPhone和总是相同的问题。 我已经为我的问题search了一个解决scheme,发现有很多开发者有这个问题。 我正在使用iOS 6,而且应用程序仍处于生产状态,所以它在沙盒中。 我使用Ray Wenderlich教程中的相同代码 – CatRace(也有太多人写这个问题,但是没有人提供解决scheme。 有谁知道如何解决这个问题?

在Game Center排行榜沙盒中只显示一个结果 – 正常吗?

我得到的结果显示在沙箱模式的排行榜,但我期望每个结果出现。 只有一个结果显示。 这是正常的吗? 从最高到最低sorting的sorting选项似乎意味着应该显示多个结果。 什么显示是我的高分,如果超过分数则更新。 只有一个结果显示我是否提出了一个VC: – (void) presentLeaderboards { GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init]; gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards; gameCenterController.gameCenterDelegate = self; [self presentViewController:gameCenterController]; } 或者如果我使用Game Center应用程序。 以下是我如何提交分数: -(void) submitScore:(int64_t)score category:(NSString*)category { if (!_gameCenterFeaturesEnabled) { DLog(@"Player not authenticated"); return; } GKScore* gkScore = [[GKScore alloc] initWithLeaderboardIdentifier:category]; gkScore.value = score; [GKScore reportScores:@[gkScore] withCompletionHandler:^(NSError *error) { if […]

我可以通过明确的邀请告诉iOS Gamecenter自动匹配吗?

在我的多人iOS游戏中,一个玩家必须是“主人”,并决定某些游戏设置。 当他通过GC邀请朋友的时候,很显然他是在驾驶座位上,但是当人们被自动匹配时,我需要做一个吸pipe程序,让一个人进入做出select的对话。 现在我不知道如何从一个清晰的设置告诉自动匹配的连接。 任何想法是否可以从某些API行为中扣除? 我认为didFindMatch调用总是返回至less有一个被邀请的玩家,如果它不是纯粹自动匹配的(至less是一个观察),但是文档没有明确的确认,并说明它最初可能是空的。