游戏中的玩家停止玩游戏

时间:2013-08-20 16:41:44

标签: ios parse-platform

我正在开发一款需要互联网连接的iOS游戏。我遇到的问题是当播放器停止播放时在服务器(parse.com)上设置Bool。现在我正在这样做......

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"Player logged out");
    [self playerLoggedOut];
}

-(void)playerLoggedOut
{
    PFUser *currentUser = [PFUser currentUser];

    if (currentUser) {

        [currentUser setObject:[NSNumber numberWithBool:NO] forKey:@"playing"];

        [currentUser saveEventually];
        [sharedInstance requestSentWithDesc:@"Player logged out"];
    }
}

但这似乎不起作用,当我认为上述内容永远不会被调用时,游戏也会崩溃。

还有......

-(void)applicationWillTerminate:(UIApplication *)application

但我不确定什么时候打电话。

有可能使用计时器,但如果播放器从未重新登录,或者很长时间没有登录,我不确定如何使用计时器。

2 个答案:

答案 0 :(得分:0)

对于当前的处理,您需要启动后台任务(请参阅here),该任务在您发出请求之前启动并在完成块中结束(因此请更改您使用的保存方法)。

对于其他情况,这将不起作用,您可能希望添加某种“保持活动”消息和/或解析监视用户交互的云代码,如果它们对于集合不活动则会自动将其记录出来时间。

答案 1 :(得分:0)

如果您的游戏崩溃,您必须获取任何日志,例如: enter image description here 或者是其他东西。您可以在NSLog(@"worked to the bitter end!");-(void)playerLoggedOut方法的末尾添加requestSentWithDesc