2015-06-01 13 views
7

Ich mache eine Multiplayer-Funktion zu einem Spiel, das ich gemacht habe.Handhabung abbrechen in GKMatchmakerviewcontroller

Alles funktioniert, außer wenn ich bin und beide Spieler verbunden sind, wenn eine Person den "Cancel" Knopf drückt, bekommt das andere Gerät keine Benachrichtigung über das Abbrechen.

Auf dem anderen Gerät ändern sich die Wörter zu "Disconnected", aber keine der Delegate-Methoden wird aufgerufen.

Wie kann ich damit umgehen?

Antwort

0

Leider gibt es keine Methode (die ich kenne oder mit fast 3 Monaten der Suche finden konnte), die aufgerufen wird, wenn eine Person die Verbindung trennt, nachdem sie sich verbunden haben.

Daher ist die Art und Weise, die ich darum herumgekommen ist, sobald der GameViewController vorgestellt wird, wartet es eine Sekunde und ruft dann eine Methode auf, um zu überprüfen, ob es mit jemand anderem verbunden ist.

Um dies zu tun habe ich es so, sobald das Spiel beginnt jeder Spieler sendet dem anderen Spieler eine Zufallszahl (verwendet, um später nicht zusammenhängende Einstellungen zu bestimmen - wie wer zuerst geht). Wenn die Methode aufgerufen wird, um zu prüfen, ob sie verbunden ist, überprüft sie einfach, ob die Zufallszahl zugewiesen wurde. Wenn dies der Fall ist, beginnt das Spiel wie üblich, wenn nicht, beendet es das Spiel und springt zurück zum Menü.

1

Sie sollten das Protokoll GKMatchmakerViewControllerDelegate implementieren.

+0

Ich habe bereits, das löst das Problem nicht. – WMios