首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GameKit:谁是大师?

GameKit:谁是大师?
EN

Stack Overflow用户
提问于 2011-12-22 14:02:30
回答 1查看 311关注 0票数 2

我正在构建一个应用程序(顺便说一句,它已经在应用程序商店中了,名为MotAMot):一个讨价还价的免费应用程序。

该游戏提出了几种不同的游戏模式:独立游戏,多个玩家使用相同的iDevice,多个玩家同时玩相同的棋盘,但每个玩家都使用自己的iDevices。

我使用一个GKPeerPickerController实例来管理这两个设备之间的连接。

我唯一关心的是,我无法决定谁是iPhone,谁将扮演服务器角色,谁是客户端。当玩家向对方发出邀请时,很酷,我可以决定这个玩家将是服务器。

比如说,玩家1邀请玩家2加入游戏。但是在同一时间(或者仅仅几秒钟后),玩家2在获得设备上显示的邀请弹出之前邀请了1号玩家。我的问题是:我如何确定player 1邀请了第一个玩家2(或者相反)?我的意思是,我当然得到了一些回调,因为我正在实现GKPeerPickerControllerDelegate协议。但是,我似乎在这两种设备上都得到了相同的消息,而不管真正的连接是谁发起的。

代码语言:javascript
复制
// New connection
- (void)peerPickerController:(GKPeerPickerController *)picker
          didConnectPeer:(NSString *)peer
               toSession:(GKSession *)session
{
    // Set the session
    [self setCurrentSession:session];

    // I'm implementing the GKSessionDelegate protocol
    [session setDelegate:self];

// I'll handle any received data from my enemy
    [session setDataReceiveHandler:self withContext:nil];

// I'm cleaning the room
    [myPicker setDelegate:nil];
    [myPicker dismiss];
    [myPicker autorelease];
    myPicker = nil;
}


// A peer changed its state
- (void)session:(GKSession *)session peer:(NSString *)peer didChangeState:    (GKPeerConnectionState)state
{
    switch (state)
    {
        case GKPeerStateConnected:
            [self peerConnected:peer];
            break;
         case GKPeerStateDisconnected:
            // Libération de la session
            [currentSession release];
            currentSession = nil;            
            break;
        case GKPeerStateAvailable:
            break;
        case GKPeerStateConnecting:
             break;
        case GKPeerStateUnavailable:
             break;
    }
}

有人会知道这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-22 14:08:35

为什么你不能用老办法解决这个问题呢?例如,文明IV使您进入服务器房屏幕,在这种情况下,您是等待客户端的服务器,不接受任何新的连接是有意义的。

我会做一些类似的事情。事实证明,this person有一个问题(稍微相关),据我理解,它是以类似的方式解决的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8604980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档