2009-07-05 74 views

回答

15

这里有一个相当不错的概述在这里如何配置和使用GameKit为您的应用程序的以下链接。

不幸的是,你将无法使用GKPeerPickerController标准UI选择器来配置GKSession实例为你,如果你想支持超过2个设备。相反,您必须开发自己的UI元素来设置和配置主/服务器和多个客户端之间的连接。

这里有一个简单的方法来实现的GameKit超过2个设备:

当你初始化initWithSessionID一个GKSession实例:显示名:sessionMode,用途:

  • sessionMode:GKSessionModeServer为服务器/主服务器
  • sessionMode:其他(多个)客户端的GKSessionModeClient

sessionMode:GKSessionModePeer是第三可用选项,并且在苹果提供如GKTank演示最示例代码中使用的选项。

注意:您可能可以使用GKSessionModePeer,并且仍然有超过2个设备的网络,因为对等模式会将设备同时置于服务器和客户端模式,直到建立连接。将一台设备显式配置为服务器可能会简化对于测试GameKit API非常有用的设置。

对于服务器:

GKSession *session = [[GKSession alloc] initWithSessionID:kTestSessionID displayName:nil sessionMode:GKSessionModeServer]; 

对于客户端(S):

GKSession *session = [[GKSession alloc] initWithSessionID:kTestSessionID displayName:nil sessionMode:GKSessionModeClient]; 
0

据我所知,在使用GameKit框架时,您只能连接一对设备,一个充当服务器,另一个充当客户端(如果两者都初始化为对等设备,则必须决定哪个设备一个会随意地作为服务器,或随机选择一个)。

实际上,可能有很多设备都运行您的应用程序,但连接将始终通过配对的设备建立。

当然,你可以通过wifi编写你自己的基于bonjour的网络代码,并克服这个限制,尽管它需要更多的编码。

4

在过去,我读过你可以连接多达16个使用Gamekit的设备。我相信在对等模式下你只能做两个事情,要做两个以上的事情需要一个设备设置为主设备而其他设备设置为客户机模式。

我想找一些演示使用主/客户端的例子,客户端应该适用于所有三种。

你可以拨打+maxPlayersAllowedForMatchOfType:GKMatchRequest(iOS6 +)来获得实际的数字,每个设备可能会有所不同,所以你应该使用它作为上限。

+0

为什么这么说呢,你可以使用的GameKit最多可连接四台设备?或对等模式最多两个? – nico 2009-07-20 16:55:46

+0

四是极限游戏套件将支持主/服务器模式。点对点仅允许两个设备。 API就是这样。 – 2009-07-21 17:37:22

相关问题