Începeți cu serviciile Jocuri Google Play

Tehnologiile jocurilor sunt în continuă evoluție. Cu toate acestea, multe elemente de joc de bază au rămas neschimbate de zeci de ani. Scorurile mari, clasamentele, questurile, realizările și suportul pentru multiplayeri sunt exemple. Dacă dezvoltați un joc pentru platforma Android, nu trebuie să implementați manual niciun element. Puteți folosi, în schimb, API-urile pentru servicii pentru jocuri Google Play.

În acest tutorial, vă vom arăta cum să creați un joc Android simplu, să adăugați servicii de jocuri Google Play și să utilizați API-urile pentru clasamente și realizări.

Cerințe preliminare

Pentru a putea urmări acest tutorial, veți avea nevoie de următoarele:

  • Cea mai recentă versiune de Android Studio.
  • Un dispozitiv Android care are cea mai recentă versiune a aplicației de servicii Google Play instalată.

1. Creați un joc simplu

Nu este deloc plăcut să adăugați API-urile pentru serviciile de jocuri pentru jocuri la un proiect Android Android gol. De aceea, să creăm acum un joc în care utilizatorul câștigă puncte prin simpla apăsare pe un buton. Mai exact, obiectivul jocului va fi să faceți clic pe un buton cât mai des posibil în 60 de secunde.

Pasul 1: Creați dispunerea jocului

Structura jocului va avea una Buton widget, pe care utilizatorul o va face pentru a obține puncte și două TextView widget-uri pentru a afișa scorul și timpul rămas. Dacă îi puneți pe toți în interiorul unui RelativeLayout și centrați-le atât pe orizontală cât și pe verticală, ar trebui să aveți un fișier de aspect care arată astfel:

  

Jocul nostru va avea un ecran clasic și un ecran de realizări. Pentru a permite utilizatorului să navigheze către aceste ecrane, adăugați încă două Buton widget-uri de la sfârșitul fișierului de aspect.

Rețineți că ambele butoane au onClick atribute. Vom crea metodele Java la care se referă în etapele ulterioare.

Pasul 2: Implementați logica jocului

În interiorul activității, creați variabile membre pentru gameplayy widget-urile pe care le-am definit în fișierul XML al aspectului. În plus, creați un int variabilă pentru scor și a boolean variabilă pentru starea jocului.

butonul privat mainButton; privat TextView scoreView; privat TextView timeView; int int int = 0; jocuri booleene private = false;

Inițializați widget-urile din interiorul activității onCreate () folosind metoda findViewById () metodă.

mainButton = (buton) findViewById (R.id.main_button); ScoreView = (TextView) findViewById (R.id.score_view); timeView = (TextView) findViewById (R.id.time_view);

Pentru a asculta clicurile pe Buton widget, creați și adăugați un OnClickListener la el.

mainButton.setOnClickListener (noul View.OnClickListener () @Override public void onClick (Vizualizare v) // Mai multe coduri intră aici);

Acum trebuie să implementăm următoarele cerințe:

  • Prima dată când utilizatorul face clic pe buton, jocul trebuie să înceapă.
  • Fiecare clic ulterior trebuie să crească scor variabil.
  • Jocul trebuie să se încheie după ce au trecut 60 de secunde.

Putem folosi joc pentru a face diferența între primul clic și toate clicurile ulterioare. Pentru a urmări timpul, putem folosi rezumatul CountDownTimer clasa, care este ideal pentru cerințele noastre. Are un onTick () în interiorul metodei, care se poate actualiza cu exactitate timeView pentru a afișa numărul de secunde rămase. De asemenea, are un onFinish () metodă, care se numește atunci când numărătoarea inversă se termină.

În consecință, adăugați următorul cod la onClick () metodă:

dacă (!!) // Primul clic pe joc = adevărat; mainButton.setText ("Păstrați clic"); // Initializeaza CountDownTimer la 60 de secunde noi CountDownTimer (60000, 1000) @Override public void onTick (lung millisUntilFinished) timeView.setText ("Timp rămas:" + millisUntilFinished / 1000);  @Override public void peFinish () playing = false; timeView.setText ("Joc de peste"); mainButton.setVisibility (View.GONE);  .start(); // Începeți cronometrul altceva // Punctajul clicurilor ulterioare ++; scoreView.setText ("Scor:" + scoruri + "puncte"); 

În acest moment, puteți rula proiectul pentru a juca acest joc.

2. Adăugați dependențele serviciilor de jocuri

Configurarea unui proiect pentru a utiliza API-urile pentru serviciile Play Games implică o mulțime de pași. Folosind Firebase Assistant pentru Android Studio, puteți automatiza unele dintre ele.

Deschide fereastra asistentului, mergând la Instrumente> Firebase. Apoi, în Google Analytics secțiune, faceți clic pe Conectați un eveniment Google Analytics legătură. Acum puteți conecta proiectul dvs. Android Studio la un proiect Firebase făcând clic pe Conectați la Firebase buton. Asigurați-vă că alegeți Creați un nou proiect Firebase opțiune din dialogul care apare.

Odată ce conexiunea a fost stabilită, apăsați pe Adăugați Google Analytics la aplicația dvs. pentru a adăuga toate modificările necesare la build.gradle fișiere.

Trebuie să adăugați manual dependența pentru serviciile Jocuri Play. De aceea, mergeți la build.gradle fișier al aplicaţia și adăugați următoarele compila dependenţă:

compile 'com.google.android.gms: play-services-games: 9.8.0'

Mai mult, API-urile pentru serviciile de jocuri au nevoie de un fișier de configurare XML. Creați unul apelat Jocuri-ids.xml în interiorul res / valori pliant. Vom adăuga conținut într-un pas mai târziu.

3. Înregistrați jocul

Toate jocurile care utilizează servicii de jocuri Google Play trebuie să fie înregistrate în consola dezvoltatorului Play. Va trebui să plătiți o taxă unică de înregistrare de 25 USD pentru a putea accesa consola.

În consola, faceți clic pe pictograma jocului pentru a deschide Servicii de jocuri ecran.

Apoi faceți clic pe Configurați serviciile de jocuri Google Play pentru a începe înregistrarea jocului.

În dialogul care apare, alegeți a doua filă deoarece jocul nostru utilizează deja API-uri Google. Acum trebuie să puteți vedea numele proiectului dvs. Firebase în lista proiectelor disponibile. După ce ați selectat-o, alegeți o categorie pentru joc. Pentru moment, puteți merge cu ocazional categorie.

După ce apăsați Continua, puteți să vă conectați la serviciile Firebase Analytics și la jocurile prin clic pe Link Firebase buton.

Apoi, mergeți la Aplicații corelate pentru a conecta proiectul Android Studio la consola dezvoltatorului Play. În dialogul care apare, apăsați pe Android și introduceți numele pachetului din proiect în Numele pachetului camp.

apasă pe Salveaza si continua pentru a genera un ID client pentru jocul dvs..

Jocul nostru a fost înregistrat cu succes în consola dezvoltatorului Google Play.

4. Adăugați un utilizator de test

API-urile pentru serviciile de jocuri Play vor funcționa numai dacă jocul dvs. este publicat pe Google Play. Cu toate acestea, pentru a vă permite să vă testați jocul, consola dezvoltatorului vă permite să asociați câteva conturi de utilizator testate. Dacă mergeți la Testarea , puteți adăuga sau elimina conturile de utilizator testate. Asigurați-vă că adăugați aici contul Google pe care îl utilizați pe telefon sau emulator.

5. Creați un tablou de bord

Un clasament nu este altceva decât un ecran care afișează scorurile mari ale utilizatorilor. Redarea claselor de jocuri pentru jocuri le permite utilizatorilor să-și vadă scorul lor zilnic, săptămânal și tot timpul.

Crearea unui clasament pe consola dezvoltatorului Play durează doar câteva clicuri. Mergeți la clasamentele și apăsați tasta Adăugați clasament buton. În ecranul următor, dați un nume semnificativ în clasament și apăsați pe Salvați buton.

Clasamentul nostru este acum pregătit.

6. Creați o realizare

Realizările sunt premii în joc pe care utilizatorii le obțin pentru că au reușit să facă ceva special. Un joc care are o mulțime de realizări pentru deblocare este, de obicei, mai distractiv decât unul care nu. În consecință, majoritatea jocurilor populare de pe Google Play au astăzi zeci, dacă nu sute de realizări.

În acest tutorial, vom adăuga o singură realizare la jocul nostru. Numele ei va fi Fulger rapid, și va fi deblocat atunci când utilizatorul reușește să atingă butonul de mai mult de 100 de ori într-un minut. Pentru a crea realizarea, mergeți la Realizări și apăsați tasta Adăugați o realizare buton. După ce introduceți numele și descrierea realizării, apăsați pe Salvați buton.

7. Actualizați XML Configurația jocului

Atât clasamentul, cât și performanța au identificatori unici. Acum trebuie să adăugăm acei identificatori în proiectul nostru Android Studio, împreună cu ID-ul aplicației care a fost generat în timpul înregistrării. Puteți face acest lucru prin actualizarea manuală Jocuri-ids.xml fișier creat mai devreme. Cu toate acestea, vă sugerăm să utilizați codul de configurare generat automat disponibil în consola dezvoltatorului.

Pentru a obține codul de configurație generat automat, puteți accesa fie Realizări secțiune sau clasamentele și apăsați pe Obțineți resurse legătură. Veți vedea cod XML care arată astfel:

   1234567890 com.tutsplus.mylittlegame HzkA4Kz04F8MRYIAze HzkA4Kz04F8MRYIBVU 

Copiați codul și lipiți-l în proiectul dvs. Jocuri-ids.xml fişier.

8. Conectați-vă la serviciile Play Games

Înainte de a utiliza platformele leaderboard și realizările API, trebuie să creați o GoogleApiClient instanță și conectați-o la serviciile Play jocuri. Prin urmare, adăugați a GoogleApiClient obiect ca variabilă membru al activității dvs..

Trebuie să folosim GoogleApiClient.Builder clasa pentru a construi GoogleApiClient instanță. În timp ce construim clientul, putem specifica domeniul de aplicare API și API care ne interesează utilizând addApi () și addScope () metode. 

În plus, vă sugerăm să apelați enableAutoManage () pentru a vă asigura că clientul gestionează automat conexiunea la serviciile de jocuri. Metoda, totuși, are nevoie de un OnConnectionFailedListener, care va fi apelat atunci când conexiunea eșuează. Pentru moment, vom apela pur și simplu finalizarea() pentru închiderea aplicației în cazul unei eșecuri de conexiune.

În consecință, adăugați următorul cod la începutul onCreate () metodă:

apiClient = nou GoogleApiClient.Builder (acest) .addApi (Games.API) .addScope (Games.SCOPE_GAMES) .enableAutoManage (acest nou, GoogleApiClient.OnConnectionFailedListener () @Override public void onConnectionFailed @NonNull ConnectionResult connectionResult) Log.e (TAG, "Nu s-au putut conecta la serviciile de jocuri Play");

Dacă rulați aplicația acum, vi se va cere să creați un ID Gamer pentru dvs. Introduceți un ID Gamer la alegere și apăsați pe conectare buton.

9. Utilizați Leaderboard

Trimiterea unui scor la clasament are doar o singură linie de cod. Tot ce trebuie să faceți este să apelați inregistreaza scorul() metodă a Games.Leaderboards clasă. Acu argumentele sale, se așteaptă ca GoogleApiClient de exemplu, ID-ul clasamentului și scorul.

În jocul nostru, trebuie să trimitem scorul la sfârșitul celor 60 de secunde. Prin urmare, adăugați următorul cod la onFinish () metodă:

Jocuri.Leaderboards.submitScore (apiClient, getString (R.string.leaderboard_my_little_leaderboard), scor);

Pentru a vedea leaderboard-ul, trebuie să începem o nouă activitate cu intenția de leaderboard. Pentru a prelua intenția de leaderboard, apelați getLeaderboardIntent () metodă a Games.Leaderboards clasa și trece GoogleApiClient instanță și leaderboard ID-ul la ea.

Modelul jocului nostru are deja un buton care poate fi apăsat pentru a deschide clasamentul. Valoarea lui onClick este atributul showLeaderboard. Prin urmare, adăugați următorul cod la activitatea dvs.:

public void showLeaderboard (Vizualizare v) startActivityForResult (Games.Leaderboards.getLeaderboardIntent (apiClient, getString (R.string.leaderboard_my_little_leaderboard)), 0); 

Puteți rula aplicația acum și puteți reda jocul din nou. De data aceasta, când jocul sa terminat, scorul dvs. va fi trimis în clasament. Iată cum arată placa de bază implicită:

10. Utilizați Realizările

Apelând deblocare () metodă a Games.Achievements clasa, puteți debloca orice realizare. Metoda așteaptă GoogleApiClient instanța și ID-ul realizării ca singure argumente.

Performanța fulgerului pe care am definit-o în consola trebuie să fie deblocată atunci când scorul utilizatorului depășește 100 de puncte. Prin urmare, imediat dupa ce codul a crescut scorul, adaugati urmatorul cod:

dacă (scor> 100) Games.Achievements .unlock (apiClient, getString (R.string.achievement_lightning_fast)); 

Codul necesar afișării ecranelor realizărilor este foarte asemănător cu cel pe care l-am scris pentru a afișa ecranul clasamentului. Tot ce trebuie să faceți este să treceți valoarea de retur a getAchievementsIntent () metoda pentru a startActivityForResult () metodă.

public void showAchievements (Vezi v) startActivityForResult (Games.Achievements .getAchievementsIntent (apiClient), 1); 

Dacă rulați aplicația dvs. și redați din nou jocul, veți vedea o realizare apărută când scorul dvs. va depăși 100 de puncte pentru prima dată.

Concluzie

Acum știți cum să utilizați API-urile pentru serviciile de jocuri Google Play în proiectul dvs. Android Studio. Serviciile de jocuri Play nu se limitează numai la platforma Android. Ele pot fi utilizate la fel de ușor pe platformele web și iOS. Prin urmare, serviciile Jocuri Play vă permit să creați jocuri cross-platform și să oferiți experiențe de joc consecvente utilizatorilor pe mai multe platforme.

Pentru a afla mai multe despre API-urile pentru serviciile de jocuri Google Play, vă puteți referi la ghidurile lor oficiale sau, chiar mai bine, consultați câteva dintre tutorialele noastre aici pe Envato Tuts+!


Cod