2009-07-05 76 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

相關問題