gpt4 book ai didi

IOS 游戏中心 GKLocalPlayerListener

转载 作者:技术小花猫 更新时间:2023-10-29 11:24:37 31 4
gpt4 key购买 nike

我试图在回合制游戏中实现一个事件监听器,以便玩家可以在他的回合处于事件状态时或在他被 friend 邀请时接收到。 GKTurnBasedEventHandler 在 IOS 7 中被弃用,我在文档中读到我应该使用 GKLocalPlayerListener;但这就是它的延伸。是否已经有人使用过它,因为任何地方都没有信息。

这是我之前尝试过的,但没有用。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[localPlayer authenticateWithCompletionHandler:^(NSError *error)
{
if (localPlayer.isAuthenticated)
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[localPlayer registerListener:self];
}
}];

return YES;
}

-(void)handleInviteFromGameCenter:(NSArray *)playersToInvite
{
NSLog(@"test");
}

- (void)player:(GKPlayer *)player receivedTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
{
NSLog(@"test");
}

最佳答案

这是我用来注册 GKLocalPlayerListener 的一些代码

__weak GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) {
if (viewController) {
[authenticateFromViewController presentViewController:viewController animated:YES completion:^{
[localPlayer registerListener:self];
NSLog(@"Authenticated. Registering Turn Based Events listener");
}];
} else if (localPlayer.authenticated) {
[localPlayer registerListener:self];
NSLog(@"User Already Authenticated. Registering Turn Based Events listener");
} else {
NSLog(@"Unable to Authenticate with Game Center: %@", [error localizedDescription]);
}
};

文档指出您应该只注册 GKLocalPlayerEventListener 一次,这样您就可以通过检查您是否已经注册来改进此代码。

请注意 authenticateWithCompletionHandler 在 iOS 6 中已弃用,他们建议像我上面那样设置 authenticateHandler 属性。

关于IOS 游戏中心 GKLocalPlayerListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19443097/

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