Game Center è la rete di gioco sociale di Apple. Consente agli utenti di tracciare i punteggi più alti in una classifica, confrontare i risultati, invitare gli amici a giocare e iniziare una partita multiplayer tramite l'auto-matching. Quindi, se hai creato un gioco iOS e vuoi che gli utenti possano pubblicare i loro punteggi in una classifica del Game Center, questo è il tutorial giusto per te!
Per maggiori informazioni sulle app e il Game Center, visita la sua pagina degli sviluppatori Apple.
Per il bene di questo tutorial, ho creato un progetto Xcode di base che puoi scaricare da GitHub. Spiegherò tutti i passaggi necessari per creare una classifica su iTunes Connect e il codice necessario per inviarci un punteggio, insieme a un pulsante per aprire la classifica dall'interno dell'app.
Ecco come appare lo storyboard dell'app:
Questo progetto ha un UILabel con il testo rosso che ho chiamato scoreLabel
e un paio di UIButtons. Il rosso aggiungerà 10 punti al punteggio e lo invierà a una classifica del Game Center, e quello blu aprirà il GKGameCenterViewController e mostra quella classifica.
La prima cosa da fare è abilitare Centro giochi nel funzionalità scheda in Xcode.
Quindi devi importare GameKit nella parte superiore del tuo ViewController.swift file e aggiungi il GKGameCenterControllerDelegate
protocollo alla dichiarazione di classe.
importare la classe GameKit ViewController: UIViewController, GKGameCenterControllerDelegate
Aggiungiamo alcune variabili ora. Puoi incollare questo codice direttamente nel tuo ViewController
classe:
/ * Variabili * / var gcEnabled = Bool () // Controlla se l'utente ha abilitato Game Center var gcDefaultLeaderBoard = String () // Controlla l'indice leaderboard var punteggio = 0 // IMPORTANTE: sostituisci la stringa rossa sotto con la tua classifica ID (quello che hai impostato in iTunes Connect) lascia LEADERBOARD_ID = "com.score.mygamename"
La prima variabile indica se hai abilitato Game Center e il secondo verrà utilizzato in seguito dal codice di autenticazione del lettore locale per consentire a GameKit di identificare la classifica predefinita.
Punto
inizialmente sarà 0, ovviamente.
LEADERBOARD_ID
è un Stringa
che devi impostare per fare in modo che Game Center invii il tuo punteggio al server attraverso l'identificatore predefinito della classifica. Scegli il nome che desideri, ma tieni presente che deve avere una sintassi invertita sul web. Ecco perché ho identificato questa classifica come com.score.mygamename
, dove mygamename
dovrebbe essere sostituito dal nome dell'app in caratteri minuscoli, senza spazi.
Prima di abilitare Game Center nella pagina iTunes Connect della tua app, finiamo il codice di base. Aggiungi questa linea in viewDidLoad ()
:
// Chiama il controller di autenticazione GC authenticateLocalPlayer ()
E aggiungi la seguente funzione qui sotto viewDidLoad ()
:
// MARK: - AUTENTICO PLAYER LOCAL func authenticateLocalPlayer () let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer () localPlayer.authenticateHandler = (ViewController, error) -> Void in if ((ViewController)! = Nil) // 1 Mostra login se il giocatore non è loggato in self.present (ViewController !, animato: true, completion: nil) else if (localPlayer.isAuthenticated) // 2. Il player è già autenticato e connesso, carica il centro del gioco. gcEnabled = true // Ottieni l'ID della classifica predefinita localPlayer.loadDefaultLeaderboardIdentifier (completionHandler: (leaderboardIdentifer, error) in if error! = nil print (errore) else self.gcDefaultLeaderBoard = leaderboardIdentifer! else // 3. Game Center non è abilitato sul dispositivo dell'utente self.gcEnabled = false print ("Il lettore locale non può essere autenticato!") Print (errore)
Nel caso in cui un utente non abbia effettuato l'accesso a Game Center da Impostazioni sul proprio dispositivo, il metodo sopra mostrerà la schermata di login di Game Center non appena si connetterà al server GC. Una volta che il giocatore ha effettuato l'accesso, l'app ottiene l'id della classifica predefinita.
Nel prossimo metodo faremo l'app afferrare il LEADERBOARD_ID
stringa precedentemente creata e passala come ID della classifica predefinita del server Game Center.
// MARK: - AGGIUNTA 10 PUNTI AL PUNTEGGIO E INVIA IL PUNTEGGIO AGGIORNATO AL CENTRO DI GIOCO @IBAction func addScoreAndSubmitToGC (_ mittente: AnyObject) // Aggiungi 10 punti al punteggio attuale punteggio = 10 scoreLabel.text = "\ (punteggio ) "// Invia punteggio alla classifica GC let bestScoreInt = GKScore (leaderboardIdentifier: LEADERBOARD_ID) bestScoreInt.value = Int64 (punteggio) GKScore.report ([bestScoreInt]) (errore) in if error! = Nil print (errore !. localizedDescription) else print ("Miglior punteggio inviato alla tua classifica!")
Il codice sopra aggiunge anche 10 punti al punteggio corrente, quindi ogni volta che fai clic su Aggiungi punteggio e invia a GC pulsante, vedrai cambiare l'etichetta del punteggio rosso e l'app presenterà il punteggio aggiornato alla classifica del GC.
Ora devi aggiungere un GameKit metodo delegato che eliminerà il controller GC.
// Delega per chiudere il controller GC func gameCenterViewControllerDidFinish (_ gameCenterViewController: GKGameCenterViewController) gameCenterViewController.dismiss (animato: true, completion: nil)
C'è solo un metodo da codificare prima di creare la tua classifica su iTunes Connect, che è l'azione per il pulsante che aprirà il Game CenterViewController
.
// MARK: - OPEN GAME CENTER LEADERBOARD @IBAction func checkGCLeaderboard (_ mittente: AnyObject) let gcVC = GKGameCenterViewController () gcVC.gameCenterDelegate = self gcVC.viewState = .leaderboards gcVC.leaderboardIdentifier = LEADERBOARD_ID presente (gcVC, animato: true, completamento: nil)
Come puoi vedere sopra, questo codice crea un'istanza del controller GC, assegna il suo delegato a quel controller, imposta lo stato di visualizzazione del controller per mostrare le classifiche e passa lungo il tuo LEADERBOARD_ID
prima di presentare il controller.
Ora abbiamo terminato la codifica, ma non è ancora possibile eseguire l'app. Se lo fai, riceverai un errore da Xcode dato che non hai creato la tua classifica personale nella pagina iTunes Connect della tua app.
Dovresti aver già creato un'app per iOS in iTunes Connect con il tuo identificatore di pacchetto. Ora inserisci la tua app dalla dashboard di iTunes Connect e fai clic su Caratteristiche e poi Centro giochi.
Quindi fare clic su + icona accanto Classifiche.
Scegliere Classifica unica nella schermata successiva.
Qui devi digitare il nome che vuoi dare alla tua classifica. Nell'immagine qui sotto, ho usato Il mio nome della classifica proprio come un esempio. Puoi chiamare il tuo Migliore classifica dei punteggi o qualsiasi cosa tu desideri.
Nel ID della classifica campo, incolla la stringa del LEADERBOARD_ID
abbiamo creato in precedenza nel progetto Xcode.
Poiché il punteggio è un numero, selezionare Numero intero nel Tipo di formato del punteggio campo. Puoi scegliere l'opzione che desideri Tipo di presentazione e Ordinamento. Partire Punteggio (facoltativo) vuoto.
Infine, fai clic su Aggiungi lingua pulsante.
Nella finestra popup, devi selezionare la lingua della tua classifica. L'impostazione predefinita è sempre l'inglese. Digita nuovamente il nome inglese della classifica e seleziona a Formato del punteggio (Ho scelto le virgole per separare i gruppi di cifre).
Il Punteggio Suffisso formato i campi sono opzionali; puoi lasciare entrambi i campi vuoti o digitare il suffisso desiderato. Ad esempio, se il tuo gioco ha punti punteggio, puoi digitare "punto" e "punti" per il plurale, quindi il controller del Game Center aggiungerà quel suffisso alla fine dei punteggi visualizzati nella classifica, come "1 punto" o "100 punti".
Puoi anche aggiungere un'icona. L'immagine deve essere un file .jpeg, .jpg o .png che sia 512x512 o 1024x1024 pixel, almeno 72 DPI e nello spazio colore RGB senza uno sfondo trasparente. Clic Scegli il file per caricare la tua immagine.
Infine clicca Salvare, e hai finito. Puoi ripetere i passaggi sopra per aggiungere altre lingue, assicurati di digitare i nomi delle classifiche in base alla lingua selezionata.
Dopo aver aggiunto una finestra, puoi controllare i dettagli della classifica. Se tutto è a posto, fare clic Salvare, e verrai reindirizzato alla pagina Funzioni, con la tua nuova classifica.
Ora è il momento di abilitare Game Center nella sezione App Store della tua app. Clic App Store e Prepararsi per la presentazione.
Scorri verso il basso finché non lo trovi Centro giochi con un interruttore accanto ad esso. Abilita questo e diventerà verde. Quindi fare clic sul + firmare accanto a Classifiche, seleziona la tua classifica dall'elenco e fai clic su Fatto.
Clic Salvare nell'angolo in alto a destra della finestra, e tutto finirà per configurare Game Center su iTunes Connect.
Ora puoi tornare al tuo progetto Xcode ed eseguire l'app su un dispositivo reale o anche su iOS Simulator. Se non hai già effettuato l'accesso a Game Center, verrà visualizzato il controller di accesso. Sembra questo:
Accedi con le tue credenziali e puoi iniziare a testare l'app!
Nel nostro addScoreAndSubmitToGC ()
metodo, abbiamo aggiunto il seguente stampare()
chiamata:
stampare ("Miglior punteggio inviato alla tua classifica!")
Quindi, se si tocca il pulsante rosso, il scoreLabel
mostrerà "10" e la console Xcode stamperà Miglior punteggio inviato alla tua classifica!
Tocca il pulsante rosso altre tre volte, quindi tocca quello blu per aprire la classifica e controlla che il punteggio inviato sia 40. Dovresti vedere qualcosa di simile a questo:
Se vuoi vedere Game Center in azione con un'app di gioco completamente funzionale, ti consigliamo di dare un'occhiata al mio modello di gioco CodeCanyon Four Dots. È un modello per un gioco infinito minimale che salva i punteggi migliori e li invia al Game Center.
I modelli di gioco come questo sono un ottimo modo per iniziare la partita successiva. CodeCanyon ha centinaia di modelli di giochi iOS che puoi usare per avviare lo sviluppo, permettendoti di costruire il prossimo gioco killer molto più velocemente!
Grazie per la lettura, e ci vediamo la prossima volta! Consulta alcuni dei nostri altri tutorial sullo sviluppo di app Swift e iOS.