Google Spill Spill Services: Leaderboards
14
Del
5
Del
Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.
Google Play Spill Services gir mulighet til å legge til sosiale funksjoner til spill gjennom brukernes Google-kontoer. I denne opplæringen vil vi vise hvordan du kan legge til topplistene til en Android-app, sende bruker score, og presentere dagens leaderboard plasseringer i spillet.
Ved hjelp av leaderboards innebærer forbereder IDE, konfigurere leaderboard i Google Play Developer Console, og legge til funksjonalitet til programmet.
Hvis du har gjennomført den siste tutorial på å legge prestasjoner til Android apps, vil du være i stand til å hoppe over noen av trinnene i denne. Vedlagte kildekode inneholder samme app vi brukte for prestasjoner tutorial, med både prestasjoner og leaderboards funksjonalitet lagt til.
1. Forberede IDE
Trinn 1
For å bruke Google Play Services, trenger du visse verktøy installert i din utviklingsmiljø. I tillegg, siden vi bruker Spill Services, vil vi installere BaseGameUtils
biblioteket, som reduserer mengden av koding vi trenger for å implementere funksjoner som Google+ logge på.
For å komme i gang oppretter du en ny app eller bruke en eksisterende. Hvis du har fulgt prestasjoner opplæringen, kan du bruke programmet du bygget for at opplæringen. Hvis du lager ditt eget spill, bestemmer hva du vil bruke leaderboards for, og når du har planer om å sende inn en bruker poengsum. Hver leaderboard poeng vil være et tall. Du kan konfigurere leaderboard å betrakte lavere eller høyere tallverdier som bedre i form av posisjon i topplisten, men selvsagt dette vil avhenge av formålet med spillet ditt.
Koden i nedlastingsmappen inneholder et enkelt spill der brukeren gjetninger et tall. Vi vil bruke antall gjetninger som kreves for å få det riktige svaret som leaderboard poeng. I dette tilfellet, færre gjetninger er bedre, så leaderboard vil presentere lavest score først. For enkelhets skyld vil vi begrense antall gjetninger en bruker kan ta. Dette er et trivielt eksempel for å demonstrere leaderboard konsept og funksjonalitet. Dine egne spill vil sannsynligvis innebære mer kompleksitet.
Trinn 2
La oss komme i Eclipse klar for å utvikle med Google Play Game Services. Åpne Android SDK sjef Hotell og bla til Tilbehør
mappe. Utvid mappen og velg Google Play Services
pluss Google Repository
. Installer Google APIer Platform
fra en av de siste Android-versjoner i tillegg hvis du ønsker å teste på emulator. Installere de valgte pakkene.
Trinn 3
Eclipse vil også trenge å referere noen ekstra ressurser i arbeidsområdet. På datamaskinen navigerer til plasseringen av Google Play Services Library
, som skal være i Android SDK mappen på statister /google /google_play_services /libproject /google-play-services_lib /
. Kopier og lim biblioteket et annet sted på datamaskinen.
Vi trenger nå en referanse til denne kopien i Eclipse. Velg Import >
Android >
Importer eksisterende Android-koden inn Arbeidsområde
fra Fil
menyen. Velg plasseringen av kopien du har gjort. Den importerte Biblioteket skal nå dukke opp som et nytt prosjekt i Eclipse. Høyreklikk den og velg Egenskaper
. I Android
delen velger en Google API bygge målet og merker av for Er Library
.
Trinn 4
Importere BaseGameUtils
ressurs er litt annerledes. Biblioteket ligger på GitHub. Du finner den i Nedlastinger-delen under Sample Games. . Last ned biblioteket og lagre den på datamaskinen
Som du gjorde for Google Play Services biblioteket velger Import > Android > Import Eksisterende Android Kode inn
Arbeidsområde
fra Fil
menyen for å bringe BaseGameUtils biblioteket til Eclipse. Høyreklikk for å navigere til de nye prosjektegenskaper og sørge for at prosjektet er markert som et bibliotek ved å sjekke Er Library
.
Trinn 5
Vi kan nå gjøre app referere til disse to ressursene innenfor arbeidsområdet. Høyreklikk app i Package Explorer og velg Egenskaper
. Naviger til Android
seksjonen og velg Legg
i Bibliotek
delen. Velg både Google Play Services
bibliotek og BaseGameUtils
, og legge dem til din app.
2. Forbered spillet i utviklerkonsollen
Trinn 1
Før du kan opprette en leaderboard, må app for å bli oppført i Google Play Developer Console
. Logg inn og klikk på Spill Services
knappen til venstre. Hvis du allerede har gjort dette for din app i prestasjoner opplæringen, trenger du ikke å gjøre det igjen. Du kan hoppe til punkt 3 på å lage et leaderboard.
Klikk på Konfigurer Google Play spilltjenestene
.
Klikk for å legge et nytt spill, velger du I don 't bruk Google-APIer i spillet mitt ennå, og velge et navn og kategori for spillet ditt. Klikk Fortsett
å gå videre til neste trinn.
Legg til ditt spill tittel. Du kan legge til andre detaljer senere.
Trinn 2
La oss nå knytte app slik at vi kan vise til denne utviklerkonsollen oppføring i selve appen. Klikk på Koblede Apps
oppføring i listen til venstre, og velg Android
.
Skriv inn din app info inkludert navn pakken, noe som gjør at det er den samme som den som du bruker i prosjektet.
Lagre og klikk Autoriser din app nå
. For øyeblikket kan du bare legge inn programnavnet, men du kan legge inn flere detaljer senere. Velg Installert Application
i Client ID-området, med Android
som type og skriv inn pakkenavn. Nå må du bruke keytool verktøyet til å generere en signeringssertifikat. Du kan bruke følgende kommando i en terminal eller ledetekst i kombinasjon med debug sertifikat:
keytool -exportcert -alias androiddebugkey -keystore ~ /.android /debug.keystore -liste -V
Terminalen eller ledetekst vil skrive ut fingeravtrykket for sertifikatet. Kopiere det du ser etter SHA1 Hotell og lim den inn i utviklerkonsollen i Logge Certificate Fingeravtrykk
tekstområdet.
Velg Opprett Client Hotell og kopiere ID for programmet, som er oppført ved siden av programnavnet i utviklerkonsollen. Du kommer til å legge inn ID til programmet ditt sammen med ID for leaderboard vi er i ferd med å skape.
3. Lag en Leaderboard
Trinn 1
Fortsatt i utviklerkonsollen, la oss nå opprette en ny ledertavlen. Velg Topplister
delen i din appoppføringen og klikk Legg til topplisten
.
Pass på at du forstår begrepet poeng på Android-og i Google Play Spill tjenester generelt. Du kan lese en oversikt på Google Play Spill Services nettsted. Du kan faktisk gjøre mange forskjellige ting med leaderboards, så vurdere hva vi gjør i denne opplæringen bare et utgangspunkt.
Angi detaljene for den nye leaderboard. For vår eksempelkode, bruker vi navnet Minst Gjetninger Hotell og velg mindre er bedre
i Bestillings
delen.
Legg et ikon hvis du like. Hvis du ikke gjør det en standard image vil bli brukt. Lagre den nye leaderboard og kopiere sin ID.
Trinn 2
Testing
seksjon for programmet i utviklerkonsollen, kan du legge til kontoer som vil bli gitt tilgang å teste spillet. Som standard vil du se din egen Google-konto epost oppført der, så du bør være i stand til å bruke den for å teste programmet ditt.
4. Forberede spillet for tilgang Games Services
Trinn 1
Det er på tide å få app klar for leaderboard-tilgang i Eclipse. Hvis du har gjennomført det som er oppnådd tutorial kan du hoppe over noen av denne delen. La oss først legge IDer for app og topplisten. Åpne eller opprette en res /verdier /ids.xml
ressursfilen. Bruk følgende syntaks for å angi ID-er du kopierte for appen og den nye ledertavlen da du opprettet dem i utviklerkonsollen:
< string name = "APP_ID" > 1234567890 < /string > < string name = " number_guesses_leaderboard "> abcdefg1234567 < /string >
Lagre filen og åpne prosjektets Manifest
. Legg til følgende inne i applikasjonen element:
< meta-data android: name = "com.google.android.gms.games.APP_ID" android: value = "@ streng /APP_ID" /> < meta data android: name = "com.google.android.gms.version" android: value = "@ heltall /google_play_services_version" />
Programmet er nå satt opp til å lenke til oppføringer vi lagt i utviklerkonsollen.
Trinn 2
Når du bruker Google-tjenester i din Android-apps, må du dine brukere å registrere seg på Google-kontoer. Du kan ta en rekke tilnærminger for å gjennomføre dette, men vi kommer til å automatisere deler av denne prosessen ved hjelp av BaseGameActivity klasse sammen med standard knapper for å logge inn og ut. I tillegg, når aktiviteten starter, vil app forsøke å logge brukeren inn straks
Åpne app viktigste layout fil og legge til knapper for skilt inn /ut.!
≪ - sign i knappen - > < com.google.android.gms.common.SignInButton android: id = "+ id /sign_in_button" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <! - sign-out knappen - > < Button android: id = "+ id /sign_out_button" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Sign Out" android: synlighet = "borte" />
Trinn 3
Legg denne importen til hovedsiden for aktivitet Klasse:
import com.google.android.gms.games.Games, import com.google.example.games .basegameutils.BaseGameActivity;
Gjør Activity klassen forlenge BaseGameActivity klassen og lytte etter klikk:
public class MainActivity strekker BaseGameActivity implementerer View.OnClickListener
Forbered deg på å svare på klikk på skiltet inn /ut knappene i onCreate:
findViewById(R.id.sign_in_button).setOnClickListener(this);findViewById(R.id.sign_out_button).setOnClickListener(this);
Nå kan du legge til følgende standard metoder til en onClick metode i klassen:
Overridepublic void onClick (Vis visning) {if (view.getId () == R.id.sign_in_button) {beginUserInitiatedSignIn (); } Else if (view.getId () == R.id.sign_out_button) {avlogging (); findViewById (R.id.sign_in_button) .setVisibility (View.VISIBLE); findViewById (R.id.sign_out_button) .setVisibility (View.GONE); }}
Metodene vi kaller her er gitt av BaseGameActivity klassen vår aktivitet klassen arver fra, slik at vi ikke trenger å håndtere detaljene manuelt. Til slutt legger vi et par standard callbacks:
public void onSignInSucceeded () {findViewById (R.id.sign_in_button) .setVisibility (View.GONE); findViewById (R.id.sign_out_button) .setVisibility (View.VISIBLE);} @ Overridepublic void onSignInFailed () {findViewById (R.id.sign_in_button) .setVisibility (View.VISIBLE); findViewById (R.id.sign_out_button) .setVisibility (View.GONE);}
Når vi kaller på leaderboard-funksjonalitet, vil vi først sjekke at programmet har en tilknytning til Google-tjenester. Du kan alternativt legge koden til disse metodene for å administrere app bevissthet om hvorvidt Play Services kan kalles på.
5. Implementere Din Leaderboard
Trinn 1
Nå kan vi la programmet bruke topplisten. Koden i prøven app bruker følgende layout. Jeg vil ikke gå i detalj forklarer oppsettet som dine egne apps vil ha en annen layout
< RelativeLayout xmlns:. Android = "http://schemas.android.com/apk/res/android~~number=plural" xmlns: verktøy = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: paddingBottom = "@ dimen /activity_vertical_margin" android: paddingLeft = "@ dimen /activity_horizontal_margin" android: paddingRight = "@ dimen /activity_horizontal_margin" android: paddingTop = "@ dimen /activity_vertical_margin" verktøy: kontekst = "com.example.fungame.MainActivity" > < LinearLayout android: id = "+ id /sign_in_buttons" android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_alignParentTop = "true" android: orientering = "horisontal" > <! - påloggingsknappen - > < com.google.android.gms.common.SignInButton android: id = "+ id /sign_in_button" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <! - sign-out knappen - > < Button android: id = "+ id /sign_out_button" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Sign Out" android: synlighet = "borte" /> < /LinearLayout > < RelativeLayout android: id = "+ id /gameArea" android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_below = "@ id /sign_in_buttons" > < TextView android: id = "+ id /guess_text" android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_centerHorizontal = "true" android: text = "Gjett hvor mange!" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < LinearLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_below = "@ id /guess_text" android: orientering = "vertikal" > < LinearLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: orientering = "horisontal" > < Button android: id = "+ id /btn7" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "7" android: text = "7" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn8" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "8" android: text = "8" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn9" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "9" android: text = "9" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < /LinearLayout > < LinearLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_weight = "1" android: orientering = "horisontal" > < Button android: id = "+ id /btn4" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "4" android: text = "4" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn5" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "5" android: text = "5" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn6" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "6" android: text = "6" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < /LinearLayout > < LinearLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_weight = "1" android: orientering = "horisontal" > < Button android: id = "+ id /btn1" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "1" android: text = "1" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn2" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "2" android: text = "2" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btn3" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "3" android: text = "3" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < /LinearLayout > < LinearLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_weight = "1" android: orientering = "horisontal" > < Button android: id = "+ id /btn0" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ff000033" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "0" android: text = "0" android: textcolor = "# ffffffff" android: Tekststørrelse = "30sp" android: textStyle = "fet" /> < Button android: id = "+ id /btnAgain" android: layout_width = "0DP" android: layout_height = "match_parent" android: layout_margin = "1DP" android: layout_weight = "1" android: bakgrunn = "# ffffff00" android: frigitt = "false" android: vekt = "center" android: onclick = "btnPressed" android: padding = "5dp" android: tag = "- 1" android: text = "nytt" android: textcolor = "# ffffff00 "android: Tekststørrelse =" 30sp "android: textStyle =" fet "/> < /LinearLayout > < /LinearLayout > < /RelativeLayout > < LinearLayout android: id = "+ id /play_buttons" android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_below = "@ id /gameArea" android: vekt = "center" android: orientering = " horisontal "> <! - vis prestasjoner - > < Button android: id = "+ id /show_achievements" android: layout_width = "wrap_content" android: layout_height = "wrap_content" Android: text = "prestasjoner" /> <! - vis topplister - > < Button android: id = "+ id /show_leaderboard" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Leaderboard" /> < /LinearLayout > < /RelativeLayout >
Vi legger til knapper for å få tilgang til både prestasjoner og leaderboards for appen. Hvis du ikke har fullført prestasjoner opplæringen, så kan du fjerne prestasjoner knappen
Tilbake i programmets aktivitet klasse, vi skal bruke disse instansvariabler.
Privat Button button0, Button1, knappen2, Button3, button4, Button5, button6, button7, button8, button9, buttonAgain; private int antall; privat Random rand, privat TextView info; private int numGuesses = 0;
Hvis du har gjennomført det som er oppnådd opplæringen du kanskje merke en ekstra variabel, numGuesses, for å holde styr på antall bruker gjetter hver gang de spiller spillet.
Du trenger følgende tilleggskode i onCreate metode for aktiviteten klassen. Hvis du ikke bruker den prestasjoner knappen, deretter fjerne den linjen som referanser it.
findViewById(R.id.show_achievements).setOnClickListener(this);findViewById(R.id.show_leaderboard).setOnClickListener(this);button0=(Button)findViewById(R.id.btn0);button1=(Button)findViewById(R.id.btn1);button2=(Button)findViewById(R.id.btn2);button3=(Button)findViewById(R.id.btn3);button4=(Button)findViewById(R.id.btn4);button5=(Button)findViewById(R.id.btn5);button6=(Button)findViewById(R.id.btn6);button7=(Button)findViewById(R.id.btn7);button8=(Button)findViewById(R.id.btn8);button9=(Button)findViewById(R.id.btn9);buttonAgain=(Button)findViewById(R.id.btnAgain);info=(TextView)findViewById(R.id.guess_text);rand=new Random (); nummer = rand.nextInt (10);
Vi bruker også følgende metoder for å deaktivere og aktivere knappene under spilling:
private void disableNumbers () {button0.setEnabled (false); button0.setTextColor (Color.parseColor ("# ff000033")); button1.setEnabled (false); button1.setTextColor (Color.parseColor ("# ff000033")); button2.setEnabled (false); button2.setTextColor (Color.parseColor ("# ff000033")); button3.setEnabled (false); button3.setTextColor (Color.parseColor ("# ff000033")); button4.setEnabled (false); button4.setTextColor (Color.parseColor ("# ff000033")); button5.setEnabled (false); button5.setTextColor (Color.parseColor ("# ff000033")); button6.setEnabled (false); button6.setTextColor (Color.parseColor ("# ff000033")); button7.setEnabled (false); button7.setTextColor (Color.parseColor ("# ff000033")); button8.setEnabled (false); button8.setTextColor (Color.parseColor ("# ff000033")); button9.setEnabled (false); button9.setTextColor (Color.parseColor ("# ff000033")); buttonAgain.setEnabled (true); buttonAgain.setTextColor (Color.parseColor ("# ff000033"));} private void enableNumbers () {button0.setEnabled (true); button0.setTextColor (Color.WHITE); button1.setEnabled (true); button1.setTextColor (Color.WHITE); button2.setEnabled (true); button2.setTextColor (Color.WHITE); button3.setEnabled (true); button3.setTextColor (Color.WHITE); button4.setEnabled (true); button4.setTextColor (Color.WHITE); button5.setEnabled (true); button5.setTextColor (Color.WHITE); button6.setEnabled (true); button6.setTextColor (Color.WHITE); button7.setEnabled (true); button7.setTextColor (Color.WHITE); button8.setEnabled (true); button8.setTextColor (Color.WHITE); button9.setEnabled (true); button9.setTextColor (Color.WHITE); buttonAgain.setEnabled (false); buttonAgain.setTextColor (Color.parseColor ("# ffffff00"));}
Vi trenger også følgende metode vi spesifisert som onClick attributt for tallknappene i oppsettet. Spilleren kraner en av disse for å gjøre en gjetning:
public void btnPressed (Vis v) {int btn = Integer.parseInt (. V.getTag () toString ()); if (btn < 0) {//igjen btn numGuesses = 0; tall = rand.nextInt (10); enableNumbers (); info.setText ("Angi antall!"); } Else {//antall knappe numGuesses ++; if (BTN == nummer) {info.setText ("Ja Det var" + antall); if (getApiClient () isConnected ().) {Games.Achievements.unlock (getApiClient (), getString (R.string.correct_guess_achievement)); Games.Leaderboards.submitScore (getApiClient (), getString (R.string.number_guesses_leaderboard), numGuesses); } DisableNumbers (); } Else if (numGuesses == 5) {info.setText («Nei Det var" + antall); disableNumbers (); } Else info.setText ("Prøv igjen!"); }}
Ta deg tid til å se over koden. Selv om du fullførte programmet i prestasjoner opplæringen, er det noen endringer i logikken i tillegg til den ekstra leaderboard-koden. Hvis spilleren kraner Igjen
knapp, reset vi numGuesses variabelen til 0. Hvis brukeren kraner en talltast, øke vi numGuesses. Hvis du ikke bruker prestasjoner, kan du fjerne noen kode som refererer prestasjoner.
Vi sender ledelse til leaderboard når brukeren gjettet riktig. Brukeren kan ta opp til fem gjetninger.
Nøkkelen linje her er submitScore. Vi passerer antall gjetninger spilleren tok å få det riktige tallet. Hvis antall gjetninger er lavere enn noen eksisterende oppføring for brukeren i leaderboard, vil de trer bli erstattet med den nye verdien. Legg merke til at vi bruker den strengressurs verdien vi definert for leaderboard.
Trinn 2
Før vi avslutter, la oss tillate brukeren å vise spillet leaderboard ved å trykke på Leader
knappen vi lagt. Vi brukte følgende kode i onClick for prestasjoner:
else if (view.getId () == R.id.show_achievements) {startActivityForResult (Games.Achievements.getAchievementsIntent (getApiClient ()), 1);}
Presentere leaderboard er lik:
else if (view.getId () == R.id.show_leaderboard) {startActivityForResult (Games.Leaderboards.getLeaderboardIntent (getApiClient (), getString (R.string.number_guesses_leaderboard)), 2 );}
Dette vil la brukeren se dagens plasseringer innenfor topplisten. Heltallet parameter er vilkårlig
Når du kjører app, vil den prøve å logge brukeren inn, sjekker for tillatelser, og bekrefter innlogging hvis det lykkes.
Brukeren står fritt til å velge å logge ut og inn igjen når de vil, men hvis de forlater app, vil den prøve å automatisk logge dem tilbake i når de åpner den igjen. Når brukeren gjetter riktig, vil deres poengsum sendes til leaderboard. Ved å trykke på Leader
knappen vil presentere dagens plasseringer:
Herfra kan brukeren få tilgang til sosiale funksjonene i Google-tjenester via sin Google-konto. Du kan stille dine apps opp til å bruke offentlige og sosiale topplister. Sosiale topplister nåværende oppføringer av mennesker i brukerens sirkler, som kan administreres for selve spillet. For en offentlig leaderboard, må brukeren har valgt å dele sine score offentlig.
Konklusjon
I denne opplæringen, har vi gjennomført grunnleggende leaderboard-funksjonalitet med Google Play Game Services. Merk at du kan gjøre mye mer med leaderboards i dine apps. For eksempel kan du be om tavlen data for bestemte tidsskalaer som daglig, ukentlig, og all-time. Hvis en leaderboard inneholder mye score, er det mulig for programmet å bare hente de beste score eller resultatet nærmest til dagens spiller. Prøv å eksperimentere med noen av disse forbedringene i dine egne apps.