Cu serviciile Google Play Games, puteți crea o serie de funcții în aplicațiile Android, inclusiv clasamentele, realizările, gameplay-ul multiplayer, spațiul de stocare în cloud și conectarea prin Google+.
În acest tutorial vom lucra prin pașii pe care trebuie să îi luați pentru a adăuga realizări unui simplu joc Android. Vom pregăti mediul de dezvoltare pentru utilizarea serviciilor de jocuri Google Play, vom defini o realizare în Consola pentru dezvoltatori și vom implementa interacțiunea realizării în joc.
Pentru a utiliza instrumentele Serviciilor de jocuri Google Play, trebuie să ne pregătim IDE. Pe lângă utilizarea funcției Serviciile Google Play bibliotecă - de care aveți nevoie pentru toate serviciile Google - vom folosi BaseGameUtils care conține o serie de clase care sunt deosebit de utile atunci când dezvoltați jocuri.
Începeți prin a crea o aplicație nouă în IDE. Codul eșantion al acestui tutorial conține un joc simplu în care utilizatorul trebuie să ghicească un număr ales la întâmplare. Puteți utiliza acest proiect pentru a începe să vă dezvoltați cu Serviciile de jocuri Google Play dacă doriți. Creați un nou proiect Android și alegeți nume și setări pentru acesta.
Dacă nu utilizați aplicația probă în descărcare, vă recomandăm să implementați modul de joc în acest moment, ținând cont de ce veți folosi o realizare. Pentru aplicația de probă, vom acorda pur și simplu o realizare atunci când utilizatorul alege un răspuns corect.
În acest pas, IDE și proiectul nostru sunt pregătite să utilizeze serviciile Google Play Games și utilitarele. Deschideți Managerul SDK Android, pe care îl puteți găsi sub Fereastră în Eclipse. Derulați în jos până când vedeți In plus , extindeți-l și selectați Serviciile Google Play si Google Depozit. De asemenea, este posibil să aveți nevoie de Platforma Google API dacă intenționați să testați emulatorul, selectați și acesta. Puteți găsi acesta din urmă în directoarele pentru versiunile recente ale platformei Android. Instalați pachetele selectate, acceptând orice licență după cum este necesar.
De asemenea, trebuie să includem câteva resurse în spațiul de lucru real, astfel încât să le putem face referire în aplicație, începând cu Biblioteca de servicii Google Play. Ar trebui să-l găsiți la / Extra / Google / google_play_services / libproject / Google-play-services_lib / în folderul SDK. Faceți o copie a bibliotecii și inserați-o într-o altă locație de pe computer.
Înapoi în Eclipse, importați biblioteca alegând Import> Android> Importați codul Android existent în spațiul de lucru de la Fişier meniul. Navigați la locația în care ați copiat biblioteca, selectați biblioteca și importați-o. Biblioteca ar trebui să apară ca proiect în Eclipse Package Explorer și în spațiul de lucru.
Faceți clic dreapta pe proiectul de bibliotecă din Eclipse, selectați Proprietăți și navigați la secțiunea Android. Selectați o țintă Google API pentru a crea și asigurați-vă Este Biblioteca este bifat. Biblioteca ar trebui să fie acum disponibilă în aplicație.
Să luăm acum BaseGameUtils în IDE, de asemenea. Descărcați-l din Jocuri de probă secțiune a portalului Google pentru dezvoltatori. Deoarece codul este găzduit pe GitHub, îl puteți naviga și accesa ghidurile sale pe GitHub.
Importați resursele BaseGameUtils în Eclipse folosind aceeași tehnică pe care ați utilizat-o pentru Biblioteca de servicii Play selectând Import> Android> Importați codul Android existent în spațiul de lucru de la Fişier meniul. Faceți clic dreapta pe proiectul BaseGameUtils din pachetul Explorer și asigurați-vă Este Biblioteca este bifat.
Putem referi acum la resursele Bibliotecii Google Play și la resursele BaseGameUtils din aplicația noastră.
Selectați aplicația de joc din Eclipse Package Explorer, faceți clic dreapta pe ea și alegeți Proprietăți așa cum ați făcut pentru resursele importate. În Android secțiune, faceți clic aici Adăuga în Bibliotecă zonă. Selectați ambele Serviciile Google Play library și BaseGameUtils pentru a adăuga ca biblioteci la proiectul dvs..
Acesta este IDE-ul creat pentru dezvoltarea cu Servicii de jocuri.
Pentru a utiliza realizările în joc, trebuie să adăugați jocul la Consola pentru dezvoltatori Google Play. Conectați-vă la Consola pentru dezvoltatori, faceți clic pe Servicii de jocuri butonul din stânga consolei și alegeți Configurați serviciile de jocuri Google Play dacă nu le-ați folosit înainte.
Faceți clic pentru a adăuga un joc nou, selectați Nu folosesc niciun API-uri Google în jocul meu, și alegeți un nume și o categorie pentru jocul dvs. Clic Continuapentru a merge la pasul următor.
În Detalii joc secțiune, tot ce trebuie să adăugați pentru a testa aplicația dvs. este titlul jocului dvs..
Clic Aplicații corelate în partea stângă a înregistrării jocului dvs. în Consola pentru dezvoltatori. Selectați Android din lista Aplicații conectate.
Introduceți detaliile aplicației, inclusiv numele pachetului pe care l-ați ales atunci când l-ați creat.
Clic Salveaza si continua în partea de sus și alegeți Autorizați aplicația acum. Vi se va solicita să introduceți informații de branding. Tot ce ai nevoie pentru moment este numele aplicației tale. În Setările ID-ului clientului ecran, selectați Aplicație instalată ca tip, Android ca tip de aplicație instalat și introduceți numele pachetului.
Apoi, trebuie să generați o amprentă de certificat de semnare pentru autorizare. Va trebui să rulați utilitarul cheie de pe computer pentru a face acest lucru. Deschideți un terminal sau un prompt de comandă și utilizați următoarea comandă, dar asigurați-vă că ați modificat-o pentru a se potrivi locației, dacă este necesar. Puteți utiliza certificatul de depanare în timpul testelor.
keytool -exportcert -alias șiroiddebugkey -keystore ~ / .android / debug.keystore -list -v
Tastatura trebuie să scrie amprenta certificatului. Selectați și copiați ce apar după SHA1 și lipiți-o în Consola pentru dezvoltatori sub Semnarea certificatului de amprentă. Clic Creați client și copiați ID-ul aplicației pe care îl vedeți în lista pentru jocul dvs. în Consola pentru dezvoltatori, care trebuie afișată lângă numele jocului din partea de sus a paginii. Salvați ID-ul aplicației pentru a fi utilizat mai târziu în aplicația dvs..
Încă în Consola pentru dezvoltatori, faceți clic pe Realizări butonul din stânga înregistrării jocului și faceți clic pe acesta Adăugați o realizare.
Înainte de a continua, vă recomandăm să verificați pagina Achiziții din Ghidul dezvoltatorului pentru a vă asigura că înțelegeți conceptul unei realizări în Jocuri Google Play. Introduceți un nume, o descriere și o pictogramă pentru realizarea dvs. și alegeți o ordine de stare, puncte și listă. Pentru jocul nostru eșantion, îl folosim Ghicit corect ca nume, Alegerea unui număr corect ca descriere, și o imagine simplă stele ca pictograma. Clic Salvați pentru a salva realizarea.
Copiați ID-ul realizării, pe care îl puteți vedea în dreptul realizării în Consola pentru dezvoltatori.
Dacă navigați la Testarea pentru jocul dvs., puteți seta adrese de e-mail pentru persoanele care vor avea acces la test pentru joc. Implicit, Consola pentru dezvoltatori va introduce propriul e-mail al contului dvs. Google, astfel încât să îl puteți utiliza imediat. Adăugați alte e-mailuri de testare de care aveți nevoie, apoi vă puteți deconecta de pe contul dvs. Google.
În Eclipse, putem accesa aplicația pentru a accesa serviciile de jocuri. Vom folosi tehnica descrisă în "Implementarea conectării pe Android" pentru a face față conectării și ieșirii utilizatorilor din conturile lor Google. Acest lucru implică utilizarea butoanelor pentru conectare și ieșire, deci adăugați-le în aspectul aplicației dvs. după cum urmează:
Modificați activitatea principală pentru a vă extinde BaseGameActivity
. Acest lucru ne va permite să automatizăm anumite părți ale procesului de conectare pentru utilizatorii dvs. Faceți și Activitate
clasa de clicuri:
clasa publică MainActivity extinde BaseGameActivity implementează View.OnClickListener
Veți avea nevoie de următoarele importuri:
import com.google.android.gms.games.Games; import com.google.example.games.basegameutils.BaseGameActivity;
Acum recuperați referințele la butoanele din onCreate
:
findViewById (R.id.sign_in_button) .setOnClickListener (aceasta); findViewById (R.id.sign_out_button) .setOnClickListener (aceasta);
Vom răspunde la butoanele de buton din onClick
după cum puteți vedea mai jos:
@Override public void onClick (vizualizare Vizualizare) if (view.getId () == R.id.sign_in_button) beginUserInitiatedSignIn (); altfel dacă (view.getId () == R.id.sign_out_button) signOut (); findViewById (R.id.sign_in_button) .setVisibility (View.VISIBLE); findViewById (R.id.sign_out_button) .setVisibility (View.GONE);
Folosim metode din BaseGameActivity
clasa pe care o extindem pentru a gestiona conectarea (beginUserInitiatedSignIn
și Sign out
), actualizând interfața utilizator în consecință. La pornirea aplicației, acesta va încerca să se autentifice automat în utilizator, dar va putea, de asemenea, să utilizeze butoanele pentru a intra și a ieși.
Acum trebuie să adăugăm două apeluri către noi Activitate
clasă:
public void onSignInSucceeded () findViewById (R.id.sign_in_button) .set Vizibilitate (View.GONE); findViewById (R.id.sign_out_button) .setVisibility (View.VISIBLE); @Override public void onSignInFailed () findViewById (R.id.sign_in_button) .setVisibilitate (View.VISIBLE); findViewById (R.id.sign_out_button) .setVisibility (View.GONE);
Puteți adăuga mai multe coduri la acestea, dacă este necesar. De asemenea, puteți alege să salvați progresul jucătorului, chiar dacă nu sunt conectați, dar depinde de joc. În aplicația de probă, luăm o abordare simplă de verificare a faptului că avem o conexiune la serviciile Google înainte de a încerca să lucrăm cu realizarea.
Înainte de a începe să codificați detaliile utilizării realizărilor în aplicația dvs., trebuie să adăugați date. Începeți prin deschiderea sau crearea dvs. res / valori / ids.xml fișier și adăugați resurse șir pentru ID-urile aplicației și a realizărilor pe care le-ați copiat din Consola pentru dezvoltatori:
abcdefghij abcdefghijkl
Actualizați conținutul pentru a reflecta valorile dvs. de identificare. Deschideți acum proiectul Manifesta și adăugați următoarele elemente în elementul de aplicație:
Referindu-ne la ID-ul aplicației pe care l-am adăugat fișierului ids și versiunii serviciilor Play. Acesta este tot ce aveți nevoie pentru a începe codarea cu realizarea dvs..
Tot ce rămâne acum este pentru tine să deblocați realizarea atunci când jucătorul îndeplinește cerințele realizării. Desigur, acest lucru depinde de scopul jocului propriu, dar dacă doriți să efectuați procesul utilizând exemplarul din acest tutorial, puteți utiliza următorul cod. Începem cu aspectul principal, care include butoanele de conectare și de conectare pe care le-am adăugat mai devreme:
Observați că includeți și un Realizări butonul de lângă butoanele pentru conectare și ieșire. Vom implementa acel buton mai târziu. Nu vom trece prea mult în jocul de probă, dacă ați terminat chiar și aplicații simple, acest lucru nu ar trebui să fie prea dificil.
Jocul selectează un număr aleator între 0 și 9, iar playerul poate alege un buton numeric pentru a face o estimare. Jocul actualizează câmpul de text pentru a reflecta dacă utilizatorul a ghicit corect sau nu. Dacă se face o estimare corectă, realizarea este deblocată.
Întoarceți-vă la dvs. Activitate
și adăugați următoarele variabile de instanță:
butonul privat Buton0, butonul1, butonul2, butonul3, butonul4, butonul5, butonul6, butonul7, butonul8, butonul9, butonulAgain; numărul int intră; privat Random rand; private TextView info;
Acestea reprezintă butoanele, numărul, generatorul de numere aleatorii și câmpul de text. Adăugați următoarele la dvs. onCreate
metodă:
findViewById (R.id.show_achievements) .setOnClickListener (aceasta); button0 = (buton) findViewById (R.id.btn0); button1 = (buton) findViewById (R.id.btn1); BUTTON2 = (buton) findViewById (R.id.btn2); button3 = (buton) findViewById (R.id.btn3); button4 = (buton) findViewById (R.id.btn4); button5 = (buton) findViewById (R.id.btn5); Button6 = (buton) findViewById (R.id.btn6); button7 = (buton) findViewById (R.id.btn7); button8 = (buton) findViewById (R.id.btn8); button9 = (buton) findViewById (R.id.btn9); buttonAgain = (buton) findViewById (R.id.btnAgain); info = (TextView) findViewById (R.id.guess_text); rand = new Random (); număr = rand.nextInt (10);
Acum adăugați o metodă numită disableNumbers
, pe care o vom apela atunci când utilizatorul face o selecție de numere:
private void disableNumbers () buton0.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"));
Implementați o altă metodă, enableNumbers
, care este invocată atunci când utilizatorul a ales să joace din nou:
void privat enableNumbers () button0.setEnabled (adevărat); 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"));
Acum adăugați metoda pe care am setat-o ca onClick
atribut pentru butoane:
public void btnPressed (Vizualizare v) int btn = Integer.parseInt (v.getTag (). toString ()); în cazul în care (BTN<0) //again btn number=rand.nextInt(10); enableNumbers(); info.setText("Guess the number!"); else //number button if(btn==number) info.setText("Yes! It was "+number); if(getApiClient().isConnected()) Games.Achievements.unlock(getApiClient(), getString(R.string.correct_guess_achievement)); else info.setText("No! It was "+number); disableNumbers();
Noi numim Realizări ale jocurilor utilitate pentru a debloca realizarea în cazul în care presupunerea utilizatorului a fost corectă, verificând mai întâi că avem o conexiune. Ne referim la realizarea folosind resursa de șir pe care am creat-o.
Nu în ultimul rând, permiteți utilizatorului să-și vizualizeze realizările pentru joc. Acest lucru se va întâmpla când faceți clic pe Realizări butonul pe care l-am adăugat. Extindeți codul în onClick
metoda, adăugând o suplimentare altfel dacă
:
altfel dacă (view.getId () == R.id.show_achievements) startActivityForResult (Games.Achievements.getAchievementsIntent (getApiClient ()), 1);
Noi folosim getAchievementsIntent
cu un număr întreg arbitrar pentru a afișa realizările utilizatorului în cadrul jocului. Apăsarea butonului din spate va aduce jucătorul înapoi la joc. Pentru mai multe despre metodele de realizare, consultați pagina Achiziții în Android din Ghidul dezvoltatorului.
Ar trebui să puteți rula aplicația în acest moment. Când se execută aplicația, acesta va porni procesul de autorizare și de conectare a utilizatorului, solicitându-i utilizatorului să-i acorde permisiunile necesare.
După ce v-ați conectat, utilizatorul va vedea o confirmare.
Utilizatorul poate alege să se deconecteze și să se întoarcă ori de câte ori le place. Când utilizatorul selectează un număr corect, realizarea este deblocată și este afișată în partea de sus a ecranului de joc.
Jucătorul poate continua în mod normal. Dând clic pe butonul Realizări, se vor afișa realizările acestora. Atingând butonul din spate, jucătorul va reveni la joc.
În acest tutorial, am explorat un exemplu practic de utilizare a realizărilor într-o aplicație Android. Aplicația de probă pe care am folosit-o este simplă, dar aceleași principii se aplică oricăror jocuri cu care lucrați. Încercați să adăugați o altă realizare în Consola pentru dezvoltatori și să o implementați în joc pentru a vă asigura că înțelegeți conceptele și procesele.