2009-07-05 4 views

Antwort

15

Es gibt einen ziemlich guten Überblick hier über den folgenden Link wie Sie GameKit für Ihre App konfigurieren und verwenden.

Leider Sie wird für Sie nicht die GKSession Instanz verwenden können, um die GKPeerPickerController Standard-UI-Picker zu konfigurieren, wenn Sie mehr als 2 Geräte unterstützen wollen. Stattdessen müssen Sie eigene UI-Elemente entwickeln, um die Verbindungen zwischen dem Master/Server und den mehreren Clients einzurichten und zu konfigurieren.

Hier ist ein einfacher Weg, GameKit für mehr als 2 Geräte zu aktivieren:

Wenn Sie eine GKSession Instanz mit initWithSessionID initialisieren: display: Session, zu verwenden:

  • Session: GKSessionModeServer für der Server/Master
  • sessionMode: GKSessionModeClient für die anderen (mehrere) Clients

Session: GKSessionModePeer ist die dritte verfügbare Option und ist die Option in den meisten Beispielcode von Apple wie die GKTank Demo zur Verfügung gestellt verwendet.

Hinweis: Sie können wahrscheinlich GKSessionModePeer verwenden und trotzdem ein Netzwerk mit mehr als 2 Geräten haben, da der Peer-Modus das Gerät gleichzeitig in den Server- und Client-Modus versetzt, bis eine Verbindung hergestellt wird.Explizites Konfigurieren eines Geräts als Server kann die Einrichtung vereinfachen, die zum Testen der GameKit-API nützlich ist.

Für den Server:

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

Für den Auftraggeber (n):

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

Beachten Sie, dass alle Methoden von GKSession in iOS 7 und höher veraltet sind. – Blip

0

Soweit ich weiß, können Sie bei der Verwendung des GameKit-Frameworks nur ein Paar Geräte koppeln, eines als Server und das andere als Client (wenn beide als Peers initialisiert werden, müssen Sie entscheiden, welche) man wird als Server agieren, entweder willkürlich oder durch zufällige Auswahl).

In der Praxis gibt es möglicherweise viele Geräte, auf denen Ihre Anwendung ausgeführt wird. Verbindungen werden jedoch immer über gekoppelte Geräte hergestellt.

Natürlich können Sie Ihren eigenen bonjour-basierten Netzwerkcode über WLAN schreiben und dieses Limit überwinden, obwohl es viel mehr Codierung erfordern wird.

4

In der Vergangenheit habe ich gelesen, dass Sie bis zu sechzehn Geräte mit Gamekit verbinden können. Ich glaube, dass Sie nur zwei im Peer-Modus tun können, um mehr als zwei zu tun, erfordert ein Gerät als Master und die anderen im Client-Modus.

Ich würde nach Beispielen suchen, die die Verwendung von Master/Client demonstrieren, die Clientseite sollte für alle drei gelten.

Sie können +maxPlayersAllowedForMatchOfType: auf GKMatchRequest (iOS6 +) rufen die tatsächliche Zahl zu erhalten, die pro Gerät variieren, so dass Sie wahrscheinlich, dass als obere Grenze verwendet werden sollen.

+0

warum sagen Sie Sie bis zu vier Geräte anschließen können GameKit mit? oder bis zu zwei im Peer-Modus? – nico

+0

Vier ist das Limit Gamekit wird für Master/Server-Modus unterstützen. Peer to Peer erlaubt nur zwei Geräte. So ist die API. –

+0

@KendallHelmstetterGelner Link funktioniert nicht. Bitte aktualisieren Sie es. – NightFury

Verwandte Themen