Game Center ist das Social-Gaming-Netzwerk von Apple. Benutzer können ihre hohen Punktzahlen in einer Bestenliste nachverfolgen, Erfolge vergleichen, Freunde zu einem Spiel einladen und durch automatisches Matching ein Mehrspieler-Spiel starten. Wenn Sie also ein iOS-Spiel erstellt haben und möchten, dass Benutzer ihre Ergebnisse in einer Game Center-Bestenliste veröffentlichen können, ist dies das richtige Tutorial für Sie!
Weitere Informationen zu Apps und zum Game Center finden Sie auf der Apple-Entwicklerseite.
Für dieses Tutorial habe ich ein einfaches Xcode-Projekt erstellt, das Sie von GitHub herunterladen können. Ich erkläre alle notwendigen Schritte zum Erstellen einer Bestenliste in iTunes Connect und den erforderlichen Code, um eine Partitur einzureichen, sowie eine Schaltfläche zum Öffnen der Bestenliste in der App.
So sieht das Storyboard der App aus:
Dieses Projekt hat eine UILabel mit rotem text hab ich angerufen scoreLabel
und ein paar UIButtons. Der rote Punkt fügt der Punktzahl 10 Punkte hinzu und übermittelt ihn an eine Game Center-Bestenliste. Der blaue Punkt öffnet die GKGameCenterViewController und zeigen Sie diese Rangliste.
Das allererste, was Sie tun müssen, ist zu aktivieren Spielezentrum in dem Fähigkeiten Registerkarte in Xcode.
Dann müssen Sie GameKit oben in Ihr importieren ViewController.swift Datei und fügen Sie die GKGameCenterControllerDelegate
Protokoll zur Klassendeklaration.
Importieren der GameKit-Klasse ViewController: UIViewController, GKGameCenterControllerDelegate
Fügen wir nun einige Variablen hinzu. Sie können diesen Code direkt in Ihre einfügen ViewController
Klasse:
/ * Variables * / var gcEnabled = Bool () // Überprüfen Sie, ob der Benutzer Game Center aktiviert hat. Var gcDefaultLeaderBoard = String () // Überprüfen Sie die Standard-LeaderboardID. Var Score = 0 // WICHTIG: Ersetzen Sie die rote Zeichenfolge unten durch Ihre eigene Bestenliste ID (die Sie in iTunes Connect festgelegt haben), lassen Sie LEADERBOARD_ID = "com.score.mygamename"
Die erste Variable gibt an, ob Sie Game Center aktiviert haben, und die zweite wird später vom lokalen Spielerauthentifizierungscode verwendet, um GameKit zu ermöglichen, die Standard-Rangliste zu identifizieren.
Ergebnis
wird anfangs natürlich 0 sein.
LEADERBOARD_ID
ist ein String
Sie müssen festlegen, dass Game Center Ihre Punktzahl über die standardmäßige Ranglisten-ID an den Server übermittelt. Wählen Sie den gewünschten Namen aus, bedenken Sie jedoch, dass er eine Web-umgekehrte Syntax haben muss. Deshalb habe ich diese Rangliste als identifiziert com.score.mygamename
, woher mein Spielername
sollte durch den Namen Ihrer App in Kleinbuchstaben ohne Leerzeichen ersetzt werden.
Bevor Sie das Game Center auf der iTunes Connect-Seite Ihrer App aktivieren, beenden Sie den grundlegenden Code. Fügen Sie diese Zeile in hinzu viewDidLoad ()
:
// Aufruf des GC-Authentifizierungscontrollers authenticateLocalPlayer ()
Und fügen Sie die folgende Funktion rechts unten hinzu viewDidLoad ()
:
// MARK: - AUTHENTICATE LOCAL PLAYER func authenticateLocalPlayer () let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer () localPlayer.authenticateHandler = (ViewController, Fehler) -> Volle in if ((ViewController)! = Nil) // 1 Zeigt das Login an, wenn der Spieler nicht selbst angemeldet ist (ViewController !, animiert: wahr, Abschluss: nil) else if (localPlayer.isAuthenticated) // 2. Der Spieler ist bereits authentifiziert und angemeldet, lädt das Game Center selbst. gcEnabled = true // Liefert die Standard-Leaderboard-ID localPlayer.loadDefaultLeaderboardIdentifier (completionHandler: (leaderboardIdentifer, error) in if error! = nil print (error) else self.gcDefaultLeaderBoard = leaderboardIdentifer! 3. Game Center ist auf dem Benutzergerät nicht aktiviert. Self.gcEnabled = false print ("Lokaler Spieler konnte nicht authentifiziert werden!") Print (Fehler)
Falls sich ein Benutzer nicht über Einstellungen auf seinem Gerät bei Game Center angemeldet hat, wird bei der obigen Methode der Game Center-Anmeldebildschirm angezeigt, sobald eine Verbindung zum GC-Server hergestellt wird. Sobald der Player angemeldet ist, erhält die App die Standard-ID der Bestenliste.
In der nächsten Methode machen wir die App zum packen LEADERBOARD_ID
Zeichenfolge, die Sie zuvor erstellt haben, und übergeben Sie sie als Standard-Leaderboard-ID des Game Center-Servers.
// MARK: - FÜGEN SIE 10 PUNKTE HINZUFÜGEN UND SENDEN SIE DEN AKTUALISIERTEN SCORE TO GAME CENTER @IBAction func addScoreAndSubmitToGC (_ sender: AnyObject) // Füge der aktuellen Bewertung 10 Punkte hinzu + = 10 scoreLabel.text = "\ (score) ) "// Partitur an GC-Bestenliste übergeben lassen BestScoreInt = GKScore (LeaderboardIdentifier: LEADERBOARD_ID) BestScoreInt.value = Int64 (Score) GKScore.report ([BestScoreInt]) (Fehler) in if error! = Nil print (error !.) localizedDescription) else print ("Beste Punktzahl für Ihre Bestenliste!")
Der obige Code fügt der aktuellen Bewertung außerdem 10 Punkte hinzu, also jedes Mal, wenn Sie auf klicken Score hinzufügen und an GC übermitteln Wenn Sie auf die Schaltfläche klicken, ändert sich das rote Score-Label und die App übermittelt den aktualisierten Score an Ihre GC-Bestenliste.
Sie müssen jetzt eine hinzufügen GameKit Methode delegieren, die den GC-Controller entlässt.
// Delegierter zum Abweisen des GC-Controllers func gameCenterViewControllerDidFinish (_ gameCenterViewController: GKGameCenterViewController) gameCenterViewController.dismiss (animiert: true, completion: nil)
Es gibt nur noch eine Methode zum Code, bevor Sie Ihre Bestenliste in iTunes Connect erstellen. Dies ist die Aktion für die Schaltfläche, mit der das Game Center geöffnet wirdViewController
.
// MARK: - OPEN GAME CENTER LEADERBOARD @IBAction-Funktion func checkGCLeaderboard (_ sender: AnyObject) gcVC = GKGameCenterViewController () gcVC.gameCenterDelegate = self Fertigstellung: Null)
Wie Sie oben sehen können, instanziiert dieser Code den GC-Controller, weist ihm seinen Controller zu, setzt den Ansichtsstatus des Controllers auf Leaderboards und übergibt Ihren Controller LEADERBOARD_ID
bevor Sie den Controller präsentieren.
Jetzt sind wir mit dem Codieren fertig, aber Sie können die App noch nicht ausführen. In diesem Fall erhalten Sie eine Fehlermeldung von Xcode, da Sie auf der iTunes Connect-Seite Ihrer App kein eigenes Leaderboard erstellt haben.
Sie sollten bereits eine iOS-App mit Ihrer eigenen Bundle-ID in iTunes Connect erstellt haben. Geben Sie jetzt Ihre App über Ihr iTunes Connect-Dashboard ein und klicken Sie auf Eigenschaften und dann Spielezentrum.
Klicken Sie dann auf + Symbol neben Bestenlisten.
Wählen Einzelne Rangliste auf dem nächsten Bildschirm.
Hier müssen Sie den Namen eingeben, den Sie Ihrer Bestenliste geben möchten. In der Abbildung unten habe ich verwendet Mein Leaderboard-Name nur als Beispiel. Sie können Ihre anrufen Beste Ergebnisliste oder alles, was Sie wünschen.
In dem Leaderboard-ID In das Feld fügen Sie die Zeichenfolge von ein LEADERBOARD_ID
Wir haben zuvor im Xcode-Projekt erstellt.
Da die Punktzahl eine Zahl ist, wählen Sie Ganze Zahl in dem Score-Formattyp Feld. Sie können die gewünschte Option wählen Art der Übermittlung und Sortierreihenfolge. Verlassen Score Range (optional) leer.
Zum Schluss klicken Sie auf Sprache hinzufügen Taste.
Im Popup-Fenster müssen Sie die Sprache Ihrer Bestenliste auswählen. Die Standardeinstellung ist immer Englisch. Geben Sie den englischen Namen Ihrer Bestenliste erneut ein und wählen Sie a aus Score-Format (Ich habe Kommas gewählt, um Gruppen von Ziffern zu trennen).
Das Score-Format-Suffix Felder sind optional; Sie können beide Felder leer lassen oder das gewünschte Suffix eingeben. Wenn Ihr Spiel beispielsweise Punkte hat, können Sie "Punkt" und "Punkte" für ein Plural eingeben, sodass der Game Center-Controller dieses Suffix an das Ende der in Ihrer Rangliste angezeigten Punkte anfügt, beispielsweise "1 Punkt" oder "100" Punkte ".
Sie können auch ein Symbol hinzufügen. Das Bild muss eine .jpeg-, .jpg- oder .png-Datei mit 512 x 512 Pixel oder 1024 x 1024 Pixeln und mindestens 72 DPI sein. Der RGB-Farbraum enthält keinen transparenten Hintergrund. Klicken Datei wählen um dein Bild hochzuladen.
Klicken Sie zuletzt auf sparen, und du bist fertig. Sie können die obigen Schritte wiederholen, um weitere Sprachen hinzuzufügen. Geben Sie einfach die Namen der Bestenlisten entsprechend der ausgewählten Sprache ein.
Nachdem Sie ein Fenster hinzugefügt haben, können Sie die Angaben zu Ihrer Bestenliste überprüfen. Wenn alles in Ordnung ist, klicken Sie auf sparen, und Sie werden mit Ihrer brandneuen Bestenliste zur Funktionsseite weitergeleitet.
Nun ist es an der Zeit, Game Center im App Store-Bereich Ihrer App zu aktivieren. Klicken Appstore und Bereiten Sie sich auf die Einreichung vor.
Scrollen Sie nach unten, bis Sie gefunden haben Spielezentrum mit einem Schalter daneben. Aktivieren Sie dies und es wird grün. Dann klicken Sie auf die + Zeichen neben Bestenlisten, Wählen Sie Ihre Bestenliste aus der Liste aus und klicken Sie auf Erledigt.
Klicken sparen In der oberen rechten Ecke des Fensters sind Sie mit dem Einrichten des Game Centers in iTunes Connect fertig.
Sie können jetzt zu Ihrem Xcode-Projekt zurückkehren und die App auf einem echten Gerät oder sogar auf dem iOS-Simulator ausführen. Wenn Sie noch nicht bei Game Center angemeldet sind, wird der Anmeldungscontroller angezeigt. Es sieht aus wie das:
Melden Sie sich mit Ihren Anmeldeinformationen an, und Sie können die App testen!
In unserer addScoreAndSubmitToGC ()
Methode haben wir folgendes hinzugefügt drucken()
Anruf:
print ("Beste Punktzahl für Ihre Bestenliste!")
Wenn Sie also auf die rote Schaltfläche tippen, wird die scoreLabel
zeigt "10" an und die Xcode-Konsole druckt Bester Score für Ihre Bestenliste!
Tippen Sie noch dreimal auf die rote Schaltfläche und dann auf die blaue, um Ihre Bestenliste zu öffnen, und überprüfen Sie, ob die übermittelte Punktzahl 40 ist. Sie sollten etwa Folgendes sehen:
Wenn Sie Game Center mit einer voll funktionsfähigen Spiel-App in Aktion sehen möchten, sollten Sie sich meine CodeCanyon-Spielvorlage Four Dots ansehen. Es ist eine Vorlage für ein minimales endloses Spiel, bei dem die besten Ergebnisse gespeichert und an das Game Center übermittelt werden.
Spielvorlagen wie diese sind eine großartige Möglichkeit, um im nächsten Spiel einen Vorsprung zu erlangen. CodeCanyon bietet Hunderte von iOS-Spielvorlagen, mit denen Sie die Entwicklung beschleunigen können. So können Sie das nächste Killerspiel wesentlich schneller erstellen!
Danke fürs Lesen und bis zum nächsten Mal! In unseren anderen Tutorials zur Swift- und iOS-App-Entwicklung finden Sie weitere Informationen.