Centrul de jocuri și tabelele leaderboard pentru aplicația dvs. iOS

Introducere

Centrul de jocuri este rețeaua de jocuri sociale a Apple. Acesta permite utilizatorilor să urmărească scorurile lor ridicate pe un clasament, să compare realizările, să invite prietenii să joace un joc și să înceapă un joc multiplayer prin auto-potrivire. Deci, dacă ați construit un joc iOS și doriți ca utilizatorii să poată posta scorurile lor la un tabel al Game Center, acesta este tutorialul potrivit pentru dvs.!

Pentru mai multe informații despre aplicații și despre Centrul de jocuri, vizitați pagina Apple Developer.

Proiectul Xcode

Din motive de acest tutorial, am creat un proiect Xcode de bază pe care îl puteți descărca de la GitHub. Voi explica toți pașii necesari pentru a crea un tablou de bord pe iTunes Connect și codul necesar pentru a trimite un scor la acesta, împreună cu un buton pentru a deschide tabela de clasare din cadrul aplicației. 

Iată cum arată Storyboard-ul aplicației:

Acest proiect are a UILabel cu text roșu pe care l-am sunat scoreLabel și câteva UIButtons. Cel roșu va adăuga 10 puncte la scor și îl va trimite la un clasament al Game Center, iar cel albastru va deschide GKGameCenterViewController și să arate că leaderboard.

Primul lucru pe care trebuie să-l faceți este să permiteți Centru de jocuri în Capacități în Xcode.

Apoi trebuie să importați GameKit în partea de sus a dvs. ViewController.swift fișier și adăugați GKGameCenterControllerDelegate protocol la declarația de clasă.

importați clasa GameKit ViewController: UIViewController, GKGameCenterControllerDelegate 

Să adăugăm câteva variabile acum. Puteți să inserați acest cod în dreptul dvs. ViewController clasă:

/ * Variabile * / var gcEnabled = Bool () // Verificați dacă utilizatorul are activat Centrul de jocuri var gcDefaultLeaderBoard = String () // Verificați ID-ul leaderboardID var score = 0 // IMPORTANT: înlocuiți șirul roșu de mai jos cu propriul tău Leaderboard ID-ul (cel pe care l-ați setat în iTunes Connect) permiteți LEADERBOARD_ID = "com.score.mygamename"

Prima variabilă indică dacă aveți activat Centrul de jocuri, iar cel de-al doilea va fi folosit ulterior de codul de autentificare local player pentru a permite GameKit să identifice tabela de clasă prestabilită.

scor va fi inițial 0, desigur.

LEADERBOARD_ID este a Şir  pe care trebuie să o setați pentru ca Game Center să trimită scorul dvs. la server prin intermediul identificatorului clasamentului implicit. Alegeți numele dorit, dar rețineți că trebuie să aibă o sintaxă inversă pe web. De aceea am identificat acest clasament drept com.score.mygamename, Unde mygamename ar trebui să fie înlocuită cu numele aplicației în litere mici, fără spații.

Înainte de a activa Game Center în pagina iTunes Connect a aplicației, să terminăm codul de bază. Adăugați această linie în viewDidLoad ():

 // Apelați controlerul de autentificare GC authenticateLocalPlayer ()

Și adăugați următoarea funcție de mai jos viewDidLoad ():

// MARK: - AUTHENTICATE LOCAL PLAYER func autenateLocalPlayer () permite localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer () localPlayer.authenticateHandler = (ViewController, eroare) -> Void in if ((ViewController)! = Nil) // 1 . Vezi autentificare dacă jucătorul nu este autentificat (viewController !, animat: true, completion: nil) else if (localPlayer.isAuthenticated) // 2. Jucătorul este deja autentificat și logat, încărcați automat jocul. gcEnabled = true // Obțineți ID-ul clasamentului inițial localPlayer.loadDefaultLeaderboardIdentifier (completionHandler: (leaderboardIdentifer, error) în dacă eroare! = nil print (eroare) altceva self.gcDefaultLeaderBoard = leaderboardIdentifer! 3. Centrul de jocuri nu este activat pe dispozitivul utilizator self.gcEnabled = imprimare falsă ("Playerul local nu a putut fi autentificat!") Imprimare (eroare)

În cazul în care un utilizator nu sa conectat la Centrul de jocuri din Setări pe dispozitivul lor, metoda de mai sus va afișa ecranul de conectare al Centrului de jocuri de îndată ce se conectează la serverul GC. După ce jucătorul este conectat, aplicația primește ID-ul clasamentului implicit. 

În următoarea metodă, vom face aplicația să apară LEADERBOARD_ID șir pe care l-ați creat anterior și îl transmiteți drept id-ul clasamentului principal al serverului Game Center.

// MARCA: - ADĂ 10 PUNCTE PENTRU SCORE ȘI TRANSMIT SCORE ACTUALIZATĂ LA CENTRUL DE JOC @IBAction func addScoreAndSubmitToGC (_ expeditor: AnyObject) // Adaugă 10 puncte la scorul curent scorul + = 10 scoreLabel.text = "(scor ) "// Trimiteți scorul la clasamentul GC lasă bestScoreInt = GKScore (leaderboardIdentifier: LEADERBOARD_ID) bestScoreInt.value = Int64 (scor) GKScore.report ([bestScoreInt]) (eroare) localizedDescription) altceva print ("Cel mai bun punctaj trimis în clasament!")

Codul de mai sus adaugă și 10 puncte la scorul curent, deci de fiecare dată când faceți clic pe Adăugați un scor și trimiteți-le la GC , veți vedea schimbarea etichetei roșii, iar aplicația va trimite scorul actualizat în clasamentul dvs. GC.

Acum trebuie să adăugați o GameKit delegați metoda care va anula controlerul GC.

// Delegați pentru a anula controlul GC func gameCenterViewControllerDidFinish (_ gameCenterViewController: GKGameCenterViewController) gameCenterViewController.dismiss (animat: true, completare: nil)

Există o singură metodă rămasă de cod înainte de a crea leaderboard-ul pe iTunes Connect, care este acțiunea pentru butonul care va deschide Centrul de jocuriViewController.

// MARK: - OPEN CENTRUL DE JOC CENTRAL LEADERBOARD @IBAction func checkGCLeaderboard (_ expeditor: AnyObject) lăsați gcVC = GKGameCenterViewController () gcVC.gameCenterDelegate = auto gcVC.viewState = .leaderboards gcVC.leaderboardIdentifier = LEADERBOARD_ID prezent (gcVC, animat: completare: nil)

După cum puteți vedea mai sus, acest cod instantează controlerul GC, îi atribuie delegatul acelui controler, stabilește starea de vizualizare a controlerului pentru a afișa clasamentele leaderboard-urilor și trece de-a lungul LEADERBOARD_ID înainte de a prezenta controlerul. 

Acum am terminat de codat, dar nu puteți rula aplicația încă. Dacă faceți acest lucru, veți primi o eroare de la Xcode, deoarece nu ați creat propriul leaderboard în pagina de conectare iTunes a aplicației dvs..

Configurați Centrul de jocuri pe iTunes Connect

Ar fi trebuit deja să creați o aplicație iOS în iTunes Conectați-vă cu propriul Bundle Identifier. Acum introduceți aplicația dvs. din tabloul de bord iTunes Connect și dați clic pe Caracteristici și apoi Centru de jocuri.

Apoi faceți clic pe + pictograma de lângă clasamentele.

Alege Un singur tabel pe ecranul următor.

Aici trebuie să tastați numele pe care doriți să-l acordați leaderboard-ului. În captura de ecran de mai jos, am folosit Numele meu de tabel doar ca un exemplu. Ați putea apela a ta Cel mai bun scor Leaderboard sau orice doriți.

În ID-ul tabelului câmp, lipiți șirul LEADERBOARD_ID pe care am creat-o anterior în proiectul Xcode.

Deoarece scorul este un număr, selectați Întreg în Tipul formatului de scoruri camp. Puteți alege opțiunea dorită Tipul de depunere și Ordinea de sortare. Părăsi Interval de scoruri (opțional) gol.

În cele din urmă, faceți clic pe Adăugați limba buton.

În fereastra pop-up, trebuie să selectați limba leaderboard-ului dvs. Implicit este întotdeauna engleza. Introduceți din nou numele în limba engleză a clasamentului dvs. și selectați a Scorul de Format (Am ales virgule pentru grupuri separate de cifre). 

Scorul formatului de scoruri câmpurile sunt opționale; puteți lăsa ambele câmpuri goale sau tastați sufixul dorit. De exemplu, dacă jocul dvs. are puncte de scor, puteți introduce "punct" și "puncte" pentru plural, deci controlerul jocului va adăuga acel sufix până la sfârșitul scorurilor afișate în clasament, cum ar fi "1 punct" sau "100 puncte“.

De asemenea, puteți adăuga o pictogramă. Imaginea trebuie să fie un fișier .jpeg, .jpg sau .png care are 512x512 sau 1024x1024 pixeli, cel puțin 72 DPI, iar în spațiul de culori RGB fără un fundal transparent. Clic Alege fișierul pentru a încărca imaginea.

În sfârșit faceți clic pe Salvați, și ați terminat. Puteți repeta pașii de mai sus pentru a adăuga mai multe limbi - asigurați-vă că introduceți numele tabelului în funcție de limba selectată.

Odată ce ați adăugat o fereastră, puteți verifica detaliile tabelului dvs. Dacă totul este bine, faceți clic pe Salvați, și veți fi redirecționat (ă) către pagina cu caracteristici, cu noul dvs. clasament. 

Acum este momentul să activați Centrul de jocuri în secțiunea App Store din aplicația dvs. Clic Magazin de aplicații și Pregătiți-vă pentru depunere

Derulați în jos până când găsiți Centru de jocuri cu un comutator de lângă el. Activați acest lucru și va deveni verde. Apoi faceți clic pe + semnați lângă clasamentele, selectați leaderboard-ul din listă și faceți clic pe Terminat.

Clic Salvați în colțul din dreapta sus al ferestrei și veți fi gata să configurați Centrul de jocuri pe iTunes Connect.

Acum puteți reveni la proiectul dvs. Xcode și puteți rula aplicația pe un dispozitiv real sau chiar pe Simulatorul iOS. Dacă nu sunteți deja conectat (ă) la Centrul de jocuri, controlerul de conectare va apărea. Se pare ca aceasta:

Conectați-vă cu acreditările dvs. și puteți începe testarea aplicației!

În a noastră addScoreAndSubmitToGC () metoda, am adăugat următoarele imprimare() apel:

print ("Cel mai bun punctaj trimis în clasament!")

Deci, dacă atingeți butonul roșu, scoreLabel va afișa "10", iar consola Xcode va fi imprimată Cel mai bun punctaj trimis la clasamentul dvs. de leaderboard!

Apăsați de trei ori butonul roșu, apoi apăsați pe cel albastru pentru a deschide clasamentul și verificați dacă scorul trimis este de 40. Ar trebui să vedeți ceva de genul:

Concluzie

Dacă doriți să vedeți Centrul de jocuri în acțiune cu o aplicație de joc pe deplin funcțională, vă recomandăm să consultați șablonul Game CodeCanyon Four Dots. Este un șablon pentru un joc minim nesfârșit care salvează cele mai bune scoruri și le trimite la Centrul de jocuri.

Șabloanele de joc de acest gen sunt o modalitate foarte bună de a obține un start în următorul joc. CodeCanyon are sute de șabloane de jocuri iOS pe care le puteți utiliza pentru a începe să faceți start-up - lăsându-vă să construiți următorul joc de ucigaș cu mult mai rapid!

Vă mulțumim pentru lectură și vă voi vedea data viitoare! Examinați câteva din celelalte tutoriale ale noastre despre dezvoltarea aplicațiilor Swift și iOS.

  • Care platformă să alegeți pentru următorul joc mobil?

    În acest articol, explorăm mai multe platforme mobile de dezvoltare a jocurilor. După ce ați citit acest articol, ar trebui să aveți o idee bună despre care cadru sau cel mai bun motor ...
    James Tyner
    Dezvoltarea mobilă
  • O introducere în GameplayKit: Partea 1

    În această serie, veți afla despre cadrul GameplayKit introdus în iOS 9 și OS X El Capitan. În acest prim tutorial, veți afla despre entitatea ...
    Davis Allie
    Xcode
  • Dezvoltarea jocurilor cu Swift și SpriteKit

    Dacă sunteți ceva ca mine, ați fost probabil interesați de jocuri pe computer când erați mai tineri. Încă îmi amintesc că petrec mult timp întrebându-mă cum ...
    Derek Jensen
    Dezvoltarea jocurilor
  • Activați-vă jocul mobil cu design, sunet și muzică

    Un joc de succes trebuie să fie frumos proiectat și imersiv. Majoritatea dezvoltatorilor de jocuri nu sunt bine designeri, totuși. Și nu se oprește în design. Sunet…
    Bart Jacobs
    iOS
Cod