Inizia con Google Play Games Services

Le tecnologie di gioco sono in continua evoluzione. Tuttavia, molti elementi chiave del gameplay sono rimasti invariati per decenni. Punteggi più alti, classifiche, missioni, risultati e supporto multiplayer sono esempi. Se stai sviluppando un gioco per la piattaforma Android, non devi implementare nessuno di questi elementi manualmente. Puoi semplicemente utilizzare invece le API dei servizi di giochi di Google Play.

In questo tutorial, ti mostrerò come creare un semplice gioco Android, aggiungere servizi di giochi Google Play e utilizzare le classifiche e le API dei risultati..

Prerequisiti

Per poter seguire questo tutorial, avrai bisogno di quanto segue:

  • L'ultima versione di Android Studio.
  • Un dispositivo Android su cui è installata l'ultima versione dell'app dei servizi di Google Play.

1. Crea un gioco semplice

Non è divertente aggiungere le API dei servizi di giochi di gioco a un progetto vuoto di Android Studio. Pertanto, ora creiamo un gioco in cui l'utente guadagna punti semplicemente facendo clic su un pulsante. Più precisamente, l'obiettivo del gioco sarà quello di fare clic su un pulsante il più spesso possibile entro 60 secondi.

Passaggio 1: crea il layout di gioco

Il layout del gioco ne avrà uno Pulsante widget, che l'utente farà clic per guadagnare punti e due TextView widget per visualizzare il punteggio e il tempo rimanente. Se li metti tutti dentro a RelativeLayout e centrarli entrambi orizzontalmente e verticalmente, dovresti avere un file di layout che assomiglia a questo:

  

Il nostro gioco avrà una schermata della classifica e una schermata dei risultati. Per consentire all'utente di navigare verso quelle schermate, aggiungerne altre due Pulsante widget alla fine del file di layout.

Si noti che entrambi i pulsanti hanno al clic attributi. Creeremo i metodi Java a cui si riferiscono nei passaggi successivi.

Passaggio 2: implementa la logica di gioco

All'interno dell'attività, crea le variabili membro per le gameplay widget che abbiamo definito nel file XML di layout. Inoltre, crea un int variabile per il punteggio e a booleano variabile per lo stato del gioco.

Pulsante principale privato; punteggioViewView privato; TextView timeView privato; punteggio int privato = 0; gioco booleano privato = falso;

Inizializza i widget all'interno delle attività onCreate () metodo usando il findViewById () metodo.

mainButton = (Button) findViewById (R.id.main_button); scoreView = (TextView) findViewById (R.id.score_view); timeView = (TextView) findViewById (R.id.time_view);

Per ascoltare i clic sul Pulsante widget, creare e aggiungere un OnClickListener ad esso.

mainButton.setOnClickListener (new View.OnClickListener () @Override public void onClick (Visualizza v) // Altro codice va qui);

Ora dobbiamo implementare i seguenti requisiti:

  • La prima volta che l'utente fa clic sul pulsante, il gioco deve iniziare.
  • Ogni clic successivo dovrebbe incrementare il Punto variabile.
  • Il gioco deve terminare quando sono trascorsi 60 secondi.

Possiamo usare il giocando variabile per differenziare tra il primo clic e tutti i clic successivi. Per tenere traccia del tempo, possiamo usare l'abstract Conto alla rovescia classe, che è l'ideale per le nostre esigenze. Ha un onTick () metodo interno, che può essere aggiornato con precisione TimeView per visualizzare il numero di secondi rimanenti. Ha anche un OnFinish () metodo, che viene chiamato quando il conto alla rovescia è finito.

Di conseguenza, aggiungere il seguente codice al al clic() metodo:

if (! playing) // Il primo clic su playing = true; mainButton.setText ("Continua a fare clic"); // Inizializza CountDownTimer a 60 secondi new CountDownTimer (60000, 1000) @ Override public void onTick (long millisUntilFinished) timeView.setText ("Tempo rimanente:" + millisUntilFinished / 1000);  @Override public void onFinish () playing = false; timeView.setText ("Game over"); mainButton.setVisibility (View.GONE);  .inizio(); // Avvia il timer else // Punteggio dei clic successivo ++; scoreView.setText ("Punteggio:" + punteggio + "punti"); 

A questo punto, puoi eseguire il progetto per giocare.

2. Aggiungere le dipendenze dei servizi di giochi

La configurazione di un progetto per l'utilizzo delle API di servizi di giochi di gioco comporta numerosi passaggi. Utilizzando l'Assistente Firebase di Android Studio, puoi automatizzarne alcuni.

Apri la finestra dell'assistente andando a Strumenti> Firebase. Successivamente, nel analitica sezione, fare clic su Registra un evento di Analytics collegamento. Ora puoi collegare il tuo progetto Android Studio a un progetto Firebase cliccando su Collegare Firebase pulsante. Assicurati di aver scelto il Crea un nuovo progetto Firebase opzione nella finestra di dialogo che si apre.

Una volta stabilita la connessione, premere il tasto Aggiungi Analytics alla tua app pulsante per aggiungere tutte le modifiche richieste al build.gradle File.

È necessario aggiungere manualmente la dipendenza per i servizi di giochi di gioco. Pertanto, vai al build.gradle file del App modulo e aggiungere il seguente compilare dipendenza:

compila "com.google.android.gms: play-services-games: 9.8.0"

Inoltre, le API dei servizi di giochi necessitano di un file di configurazione XML. Creane uno chiamato giochi-ids.xml dentro il res / valori cartella. Aggiungeremo il contenuto in un secondo momento.

3. Registra il gioco

Tutti i giochi che utilizzano i servizi di giochi di Google Play devono essere registrati sulla console per sviluppatori di Play. Dovrai pagare una quota di registrazione una tantum di $ 25 per poter accedere alla console.

Nella console, fare clic sull'icona del gamepad per aprire il Servizi di gioco schermo.

Quindi, fare clic su Configura i servizi di gioco di Google Play pulsante per iniziare la registrazione del gioco.

Nella finestra di dialogo che si apre, scegli la seconda scheda perché il nostro gioco sta già utilizzando le API di Google. Ora devi essere in grado di vedere il nome del tuo progetto Firebase nell'elenco dei progetti disponibili. Dopo averlo selezionato, scegli una categoria per il gioco. Per ora, puoi andare con il Casuale categoria.

Dopo aver premuto Continua, puoi collegare i servizi Firebase Analytics e Play games cliccando su Link Firebase pulsante.

Quindi, vai al App collegate sezione per collegare il tuo progetto Android Studio alla console per sviluppatori di Play. Nella finestra di dialogo che si apre, premi il tasto androide pulsante e digitare il nome del pacchetto del progetto in Nome del pacchetto campo.

premi il Salva e continua pulsante per generare un ID cliente per il tuo gioco.

Il nostro gioco è stato registrato con successo con la console per gli sviluppatori di Google Play.

4. Aggiungi un utente di prova

Le API dei servizi di giochi di Play funzioneranno solo se il tuo gioco è pubblicato su Google Play. Tuttavia, per permetterti di testare il tuo gioco, la console degli sviluppatori ti consente di associare alcuni account utente di test. Andando al analisi sezione, è possibile aggiungere o rimuovere account utente di test. Assicurati di aggiungere qui l'account Google che utilizzi sul tuo telefono o emulatore.

5. Crea una classifica

Una classifica non è altro che uno schermo che visualizza i punteggi più alti degli utenti. Le classifiche dei giochi di giochi consentono agli utenti di vedere i punteggi più alti giornalieri, settimanali e di tutti i tempi.

La creazione di una classifica sulla console per sviluppatori di Play richiede pochi clic. Vai al Classifiche sezione e premere il Aggiungi classifica pulsante. Nella schermata successiva, dai un nome significativo alla classifica e premi il tasto Salvare pulsante.

La nostra classifica è ora pronta.

6. Creare un risultato

I risultati sono premi in-game che gli utenti ottengono per riuscire a fare qualcosa di speciale. Un gioco che ha molti risultati da sbloccare è solitamente più divertente di uno che non lo fa. Di conseguenza, la maggior parte dei giochi popolari su Google Play oggi ha dozzine, se non centinaia di risultati.

In questo tutorial, aggiungeremo un solo risultato al nostro gioco. Il suo nome sarà Fulmine veloce, e sarà sbloccato quando l'utente riesce a toccare il pulsante più di 100 volte in un minuto. Per creare il risultato, vai al realizzazioni sezione e premere il Aggiungi risultato pulsante. Dopo aver digitato il nome e la descrizione del risultato, premi il tasto Salvare pulsante.

7. Aggiorna l'XML di configurazione del gioco

Sia la classifica che il risultato hanno identificatori univoci. Ora dobbiamo aggiungere quegli identificatori al nostro progetto Android Studio, insieme all'ID dell'applicazione che è stato generato durante la registrazione. È possibile farlo aggiornando manualmente il giochi-ids.xml file che abbiamo creato in precedenza. Tuttavia, ti suggerisco di utilizzare il codice di configurazione generato automaticamente disponibile nella console degli sviluppatori.

Per ottenere il codice di configurazione generato automaticamente, puoi andare a realizzazioni sezione o il Classifiche sezione e premere il tasto Ottieni risorse collegamento. Vedrai un codice XML simile a questo:

   1234567890 com.tutsplus.mylittlegame HzkA4Kz04F8MRYIAze HzkA4Kz04F8MRYIBVU 

Copia tutto il codice e incollalo nel tuo progetto giochi-ids.xml file.

8. Connetti a Play Games Services

Prima di utilizzare le API delle classifiche e dei risultati, dobbiamo creare un GoogleApiClient istanza e collegarlo ai servizi di giochi Play. Pertanto, aggiungere un GoogleApiClient oggetto come variabile membro della tua attività.

Dobbiamo usare il GoogleApiClient.Builder classe per costruire il GoogleApiClient esempio. Durante la creazione del client, possiamo specificare l'ambito API e API a cui siamo interessati utilizzando addApi () e addScope () metodi. 

Inoltre, ti suggerisco di chiamare il enableAutoManage () metodo per assicurarsi che il client gestisca automaticamente la connessione ai servizi di giochi. Il metodo, tuttavia, ha bisogno di un OnConnectionFailedListener, che verrà chiamato quando la connessione fallisce. Per ora, chiameremo semplicemente il finire() metodo per chiudere l'app in caso di errore di connessione.

Di conseguenza, aggiungere il seguente codice all'inizio del onCreate () metodo:

apiClient = new GoogleApiClient.Builder (this) .addApi (Games.API) .addScope (Games.SCOPE_GAMES) .enableAutoManage (questo, nuovo GoogleApiClient.OnConnectionFailedListener () @Override public void onConnectionFailed (@NonNull ConnectionResult connectionResult) Log.e (TAG, "Impossibile connettersi ai servizi di giochi Play"); finish ();). Build ();

Se esegui l'app ora, ti verrà richiesto di creare un ID giocatore per te. Digita un ID giocatore a tua scelta e premi il tasto registrati pulsante.

9. Usa la classifica

L'invio di un punteggio alla classifica richiede solo una riga di codice. Tutto quello che devi fare è chiamare il Inserisci il punteggio() metodo del Games.Leaderboards classe. UNs i suoi argomenti, si aspetta il GoogleApiClient esempio, l'ID della classifica e il punteggio.

Nel nostro gioco, dobbiamo inviare il punteggio alla fine dei 60 secondi. Pertanto, aggiungere il seguente codice al OnFinish () metodo:

Games.Leaderboards.submitScore (apiClient, getString (R.string.leaderboard_my_little_leaderboard), punteggio);

Per visualizzare la classifica, dobbiamo iniziare una nuova attività con un intento di classifica. Per recuperare l'intento della classifica, chiama il getLeaderboardIntent () metodo del Games.Leaderboards classe e passare il GoogleApiClient istanza e ID della classifica ad esso.

Il layout del nostro gioco ha già un pulsante che può essere premuto per aprire la classifica. Il valore del suo al clic l'attributo è showLeaderboard. Pertanto, aggiungi il seguente codice alla tua attività:

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

Puoi eseguire l'app ora e giocare di nuovo. Questa volta, quando il gioco è finito, il tuo punteggio sarà presentato alla classifica. Ecco come appare la classifica predefinita:

10. Usa il risultato

Chiamando il sbloccare() metodo del Games.Achievements classe, puoi sbloccare qualsiasi risultato. Il metodo si aspetta il GoogleApiClient istanza e l'ID della realizzazione come i suoi soli argomenti.

Il risultato di Lightning Fast definito nella console deve essere sbloccato quando il punteggio dell'utente supera 100 punti. Pertanto, subito dopo il codice per incrementare il punteggio, aggiungere il seguente codice:

if (score> 100) Games.Achievements .unlock (apiClient, getString (R.string.achievement_lightning_fast)); 

Il codice necessario per visualizzare gli schermi dei risultati è molto simile a quello che abbiamo scritto per visualizzare la schermata della classifica. Tutto quello che devi fare è passare il valore di ritorno del getAchievementsIntent () metodo per il startSubActivity () metodo.

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

Se esegui la tua app e ripeti il ​​gioco, vedrai apparire un risultato quando il tuo punteggio supera 100 punti per la prima volta.

Conclusione

Ora sai come utilizzare le API dei servizi di giochi di Google Play nel tuo progetto Android Studio. I servizi di giochi di gioco non si limitano alla sola piattaforma Android. Possono essere utilizzati con la stessa facilità su entrambe le piattaforme Web e iOS. Pertanto, i servizi di giochi di Play consentono di creare giochi multipiattaforma e offrono esperienze di gioco coerenti agli utenti su più piattaforme.

Per ulteriori informazioni sulle API dei servizi di giochi di Google Play, puoi fare riferimento alle loro guide ufficiali o, ancora meglio, consultare alcuni dei nostri tutorial qui su Envato Tuts+!