Croatian (Hrvatski) translation by Maja Petek (you can also view the original English article)
Uvod
Game Center je Appleova društvena mreža za igranje. Omogućuje korisnicima da prate svoje najbolje rezultate na ljestvicama, uspoređuju dostignuća, pozivaju prijatelje da igraju igru, i započnu multiplayer igru kroz automatsko spajanje. Stoga, ako ste izgradili iOS igru i želite da korisnici imaju mogućnost objavljivanja svojih rezultata na Game Center leaderboard ljestvici, ovo je tutorial upravo za Vas!
Za više informacija o aplikacijama i Game Centru, posjetite Apple Developer stranicu.
Xcode Projekt
Za potrebe ovog tutoriala, kreiramo sam osnovni Xcode projekt koji možete preuzeti s GitHub-a. Objasniti ću sve potrebne korake da kreirate leaderboard ljestvicu na iTunes Connect-u i potreban kod da na njoj objavite rezultat, zajedno s gumbom za otvaranje leaderboard ljestvice unutar aplikacije.
Ovako izgleda Storyboard ploča aplikacije:

Ovaj projekt ima UILabel s crvenim tekstom koji sam nazvao scoreLabel
i nekoliko UIButtons gumba. Crveni će rezultatu dodati 10 bodova i plavi će otvoriti GKGameCenterViewController i prikazati tu leaderboard ljestvicu.
Prva stvar koju treba učiniti jest omogućiti Game Center u Capabilities tabularu u Xcode-u.

Zatim morate uvesti GameKit na vrhu vaše ViewController.swift datoteke i dodati GKGameCenterControllerDelegate
protokol klasi deklaracije.
import GameKit class ViewController: UIViewController, GKGameCenterControllerDelegate {
Dodajmo sada nekoliko varijabli. Možete zalijepiti ovaj kod izravno u svoju ViewController
klasu:
/* Variables */ var gcEnabled = Bool() // Check if the user has Game Center enabled var gcDefaultLeaderBoard = String() // Check the default leaderboardID var score = 0 // IMPORTANT: replace the red string below with your own Leaderboard ID (the one you've set in iTunes Connect) let LEADERBOARD_ID = "com.score.mygamename"
Prva varijabla označava imate li omogućen Game Center, a drugi će kasnije koristiti lokalni kôd za autentifikaciju igrača kako bi GameKit prepoznao zadanu leaderboard ljestvicu.
score
će početno biti 0, naravno.
LEADERBOARD_ID
je String
koji morate podesiti kako bi Game Center poslao vaš rezultat na server kroz zadani leaderboard identifikator.Odaberite naziv koji želite, ali imajte na umu da mora imati web-obrnutu sintaksu. Zato sam identificirao ovu leaderboard ploču kao com.score.mygamename
, gdje bi mygamename
trebao biti zamijenjen nazivom vaše aplikacije s malim slovima bez razmaka.
Prije nego što onemogućimo Game Center u iTunes Connect stranici vaše aplikacije, dovršimo osnovni kod. Dodajmo ovaj niz u viewDidLoad()
:
// Call the GC authentication controller authenticateLocalPlayer()
I dodajte sljedeću funkciju točno ispod viewDidLoad()
:
// MARK: - AUTHENTICATE LOCAL PLAYER func authenticateLocalPlayer() { let localPlayer: GKLocalPlayer = GKLocalPlayer.localPlayer() localPlayer.authenticateHandler = {(ViewController, error) -> Void in if((ViewController) != nil) { // 1. Show login if player is not logged in self.present(ViewController!, animated: true, completion: nil) } else if (localPlayer.isAuthenticated) { // 2. Player is already authenticated & logged in, load game center self.gcEnabled = true // Get the default leaderboard ID localPlayer.loadDefaultLeaderboardIdentifier(completionHandler: { (leaderboardIdentifer, error) in if error != nil { print(error) } else { self.gcDefaultLeaderBoard = leaderboardIdentifer! } }) } else { // 3. Game center is not enabled on the users device self.gcEnabled = false print("Local player could not be authenticated!") print(error) } } }
U slučaju da se korisnik nije prijavio u Game Center iz postavki (Sttings) na svom uređaju, gornja metoda će prikazati Game Center zaslon za prijavu čim se poveže s GC poslužiteljem. Nakon što se igrač prijavio, aplikacija dobiva zadani leaderboard ID.
U sljedećoj metodi ćemo učiniti da aplikacija dohvati LEADERBOARD_ID
string koji ste prethodno kreirali i proslijedili ga kao zadani leaderboard ID za Game Center poslužitelj.
// MARK: - ADD 10 POINTS TO THE SCORE AND SUBMIT THE UPDATED SCORE TO GAME CENTER @IBAction func addScoreAndSubmitToGC(_ sender: AnyObject) { // Add 10 points to current score score += 10 scoreLabel.text = "\(score)" // Submit score to GC leaderboard let bestScoreInt = GKScore(leaderboardIdentifier: LEADERBOARD_ID) bestScoreInt.value = Int64(score) GKScore.report([bestScoreInt]) { (error) in if error != nil { print(error!.localizedDescription) } else { print("Best Score submitted to your Leaderboard!") } } }
Kod iznad također dodaje 10 bodova trenutnom rezultatu, pa svaki put kada kliknete Add Score and Submit To CG gumb, vidjeti ćete da se crvena oznaka bodova mijenja, i aplikacija će poslati taj ažurirani rezultat vašej GC leaderboard ljestvici.
Sada morate dodati GameKit metodu delegata koja će odbaciti GC kontroler.
// Delegate to dismiss the GC controller func gameCenterViewControllerDidFinish(_ gameCenterViewController: GKGameCenterViewController) { gameCenterViewController.dismiss(animated: true, completion: nil) }
Postoji samo jedna metoda za kodiranje prije kreiranja leaderboarda na iTunes Connect, a to je akcija za gumb koji će otvoriti GameCenter ViewController
.
// MARK: - OPEN GAME CENTER LEADERBOARD @IBAction func checkGCLeaderboard(_ sender: AnyObject) { let gcVC = GKGameCenterViewController() gcVC.gameCenterDelegate = self gcVC.viewState = .leaderboards gcVC.leaderboardIdentifier = LEADERBOARD_ID present(gcVC, animated: true, completion: nil) }
Kao što možete vidjeti gore, ovaj kôd instancira GC kontroler, dodjeljuje svog delegata tom kontroleru, postavlja stanje pregleda kontrolera za prikazivanje ploča s najboljim rezultatima i prosljeđuje vaš LEADERBOARD_ID
prije predstavljanja kontrolera.
Sada smo gotovi s kodiranjem, ali još ne možete pokrenuti aplikaciju. Ako to učinite, dobiti ćete pogrešku od Xcode-a jer niste izradili vlastiti leaderboard na iTunes Connect stranici vaše aplikacije.
Podesite Game Center na iTunes Connect
Trebali ste već izraditi iOS aplikaciju u programu iTunes Connect s vlastitim identifikatorom paketa. Sada unesite aplikaciju s nadzorne ploče programa iTunes Connect i kliknite Features, a zatim Game Center.
Zatim kliknite ikonu + pored Leaderboards.

Na sljedećem zaslonu odaberite Single Leaderboard.

Ovdje morate upisati ime koje želite dati svojoj leaderboard ploči. Na screenshot snimci ispod upotrijebio sam naziv My Leaderboard Name samo kao primjer. Vi možete dodijeliti naziv Best Score Leaderboard ili neki drugi ako želite.
U polju Leaderboard ID zalijepite LEADERBOARD_ID
niz koji smo prethodno izradili u Xcode projektu.
Budući da je rezultat broj, odaberite Integer u polju Score Format Type. Možete odabrati željenu opciju za Submission Type i Sort Order. Score Range (Optional) ostavite prazno.
Na kraju, kliknite gumb Add Language.

U skočnom prozoru morate odabrati jezik svog leaderboarda. Zadan je uvijek engleski jezik. Ponovo upišite engleski naziv svojeg leaderboarda i odaberite Score Format ( ja sam odabrao zareze za odjeljivanje grupa od znamenki).
Score Format Suffix polja su neobavezna; možete ostaviti oba polja prazna ili upisati željeni sufiks. Na primjer, ako vaša igra ima bodove, možete upisati 'točku' i 'bodove' za množinu pa će Game Center kontrolor dodati taj sufiks na kraj rezultata prikazanih na vašoj leaderboard ljestvici, poput '1 bod' ili '100 točaka”.
Možete dodati i ikonu. Slika mora biti .jpeg, .jpg ili .png datoteka koja je 512x512 ili 1024x1024 piksela, barem 72 DPI i u RGB-u bez prozirne pozadine. Kliknite Choose File da biste prenijeli sliku.
Na kraju kliknite Save i gotovi ste. Možete ponoviti gore navedene korake kako biste dodali više jezika - samo unesite nazive ljestvice s rezultatima prema odabranom jeziku.

Nakon što dodate prozor, možete provjeriti pojedinosti o leaderboard ljestvici. Ako je sve u redu, kliknite Save i biti ćete preusmjereni na Features stranicu, s novim leaderboardom.


Sada je vrijeme da omogućite Game Center u odjeljku App Store u aplikaciji. Kliknite App Store i Prepare For Submission.

Pomaknite se prema dolje dok ne pronađete Game Center prekidačem pokraj njega. Ovo omogućite i postati će zeleno. Zatim kliknite znak + pored Leaderboards, odaberite svoj leaderboard s popisa i kliknite Done.

Kliknite Save u gornjem desnom kutu prozora i završiti ćete postavljanje Game Center-a na iTunes Connect.

Sada se možete vratiti na svoj Xcode projekt i pokrenuti aplikaciju na stvarnom uređaju ili čak na iOS Simulatoru. Ako već niste prijavljeni na Game Center, pojaviti će se Sign In kontroler. Izgleda ovako:

Prijavite se sa svojim vjerodajnicama i možete početi testirati aplikaciju!
U našu addScoreAndSubmitToGC ()
metodu dodali smo sljedeći print()
poziv:
print("Best Score submitted to your Leaderboard!")
Dakle, ako dotaknete crveni gumb, scoreLabel
će prikazati '10' , a Xcode konzola će ispisati Best Score submitted to your Leaderboard!

Dodirnite crveni gumb još tri puta, a zatim dodirnite plavi kako biste otvorili ploču s rezultatima i provjerite je li poslana ocjena 40. Trebali biste vidjeti nešto ovako:

Zaključak
Ako želite vidjeti Game Center u akciji s potpuno funkcionalnom aplikacijom za igru, možda biste željeli pogledati moj predložak igre Four Dots na CodeCanyon-u. To je predložak za minimalnu beskonačnu igru koja sprema najbolje rezultate i proslijeđuje ih u Game Center.

Ovakvi predlošci igara su sjajan način da započnete sa svojom sljedećom igrom. CodeCanyon ima stotine predložaka igara za iOS koje možete iskoristiti kako biste započeli razvoj - što vam omogućuje da izgradite sljedeću ubojitu igru mnogo brže!
Hvala Vam na čitanju i vidimo se sljedeći put! Pogledajte i neke druge naše tutoriale o razvoju Swift i iOS aplikacija.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post