Les technologies de jeu évoluent constamment. Néanmoins, de nombreux éléments de jeu essentiels sont restés inchangés depuis des décennies. Les scores élevés, les classements, les quêtes, les réalisations et le support multijoueur en sont des exemples. Si vous développez un jeu pour la plateforme Android, vous ne devez implémenter aucun de ces éléments manuellement. Vous pouvez simplement utiliser les API de services de jeux Google Play à la place..
Dans ce tutoriel, je vais vous montrer comment créer un jeu Android simple, y ajouter des services de jeux Google Play et utiliser les API des classements et des réalisations..
Pour pouvoir suivre ce tutoriel, vous aurez besoin des éléments suivants:
Il n'est pas amusant d'ajouter les API de services de jeux de jeux à un projet Android Studio vierge. Par conséquent, créons maintenant un jeu dans lequel l’utilisateur gagne des points en cliquant simplement sur un bouton. Plus précisément, l’objectif du jeu sera de cliquer sur un bouton aussi souvent que possible dans les 60 secondes.
La mise en page du jeu aura un Bouton
widget, sur lequel l'utilisateur cliquera pour gagner des points, et deux Affichage
des widgets pour afficher le score et le temps restant. Si vous les mettez tous dans un Disposition relative
et centrez-les horizontalement et verticalement, vous devriez avoir un fichier de présentation qui ressemble à ceci:
Notre jeu aura un écran de classement et un écran de réalisations. Pour permettre à l'utilisateur de naviguer vers ces écrans, ajoutez deux autres Bouton
widgets à la fin du fichier de mise en page.
Notez que les deux boutons ont sur clic
les attributs. Nous allons créer les méthodes Java auxquelles ils font référence dans les étapes ultérieures..
À l'intérieur de l'activité, créez des variables de membre pour la gameplay les widgets que nous avons définis dans le fichier XML de mise en page. De plus, créez un int
variable pour le score et un booléen
variable pour l'état du jeu.
bouton privé mainButton; partition privée TextView scoreView; temps privé TextView; score int privé = 0; jouer booléen privé = faux;
Initialiser les widgets à l'intérieur de l'activité onCreate ()
méthode utilisant le findViewById ()
méthode.
mainButton = (Button) findViewById (R.id.main_button); scoreView = (TextView) findViewById (R.id.score_view); timeView = (TextView) findViewById (R.id.time_view);
Pour écouter les clics sur le Bouton
widget, créer et ajouter un OnClickListener
à cela.
mainButton.setOnClickListener (new View.OnClickListener () @Override public void onClick (Voir v) // D'autres codes vont ici);
Nous devons maintenant mettre en œuvre les exigences suivantes:
But
variable.Nous pouvons utiliser le en jouant
variable permettant de différencier le premier clic de tous les clics suivants. Pour garder une trace du temps, nous pouvons utiliser le résumé Compte à rebours
classe, ce qui est idéal pour nos besoins. Il a un onTick ()
méthode à l'intérieur, qui peut mettre à jour avec précision timeView
pour afficher le nombre de secondes restantes. Il a aussi un onFinish ()
méthode, qui est appelée lorsque le compte à rebours est terminé.
En conséquence, ajoutez le code suivant à la sur clic()
méthode:
if (! playing) // Le premier clic en jouant = true; mainButton.setText ("Continuez à cliquer"); // Initialise CountDownTimer à 60 secondes new CountDownTimer (60000, 1000) @Override vide public onTick (long millisUntilFinished) timeView.setText ("Temps restant:" + millisUntilFinished / 1000); @Override public void onFinish () playing = false; timeView.setText ("Jeu terminé"); mainButton.setVisibility (View.GONE); .début(); // Démarrer le minuteur else // Clics suivants score ++; scoreView.setText ("Score:" + score + "points");
À ce stade, vous pouvez exécuter le projet pour jouer au jeu..
La configuration d'un projet pour utiliser les API de services de jeux de jeux implique de nombreuses étapes. En utilisant l'assistant Firebase Assistant d'Android Studio, vous pouvez en automatiser certains.
Ouvrez la fenêtre de l'assistant en allant à Outils> Firebase. Ensuite, dans le Analytique section, cliquez sur le Enregistrer un événement Analytics lien. Vous pouvez maintenant connecter votre projet Android Studio à un projet Firebase en cliquant sur le bouton Relier à la base de feu bouton. Assurez-vous que vous choisissez le Créer un nouveau projet Firebase option dans la boîte de dialogue qui apparaît.
Une fois la connexion établie, appuyez sur le bouton Ajouter des analyses à votre application bouton pour ajouter toutes les modifications requises à la build.gradle des dossiers.
Vous devez ajouter la dépendance pour les services de jeux de jeux manuellement. Par conséquent, allez au build.gradle fichier du app
module et ajouter ce qui suit compiler
dépendance:
compiler 'com.google.android.gms: play-services-games: 9.8.0'
De plus, les API de services de jeux nécessitent un fichier de configuration XML. Créer un appelé jeux-ids.xml à l'intérieur de res / valeurs dossier. Nous y ajouterons du contenu dans une étape ultérieure.
Tous les jeux utilisant les services de jeux Google Play doivent être enregistrés sur la console de développement de Play. Vous devrez payer des frais d’inscription uniques de 25 $ pour pouvoir accéder à la console..
Dans la console, cliquez sur l’icône du gamepad pour ouvrir le Services de jeux écran.
Ensuite, cliquez sur le Configurer les services de jeu Google Play bouton pour commencer à enregistrer le jeu.
Dans la boîte de dialogue qui apparaît, choisissez le deuxième onglet car notre jeu utilise déjà les API de Google. Vous devez maintenant pouvoir voir le nom de votre projet Firebase dans la liste des projets disponibles. Après l'avoir sélectionné, choisissez une catégorie pour le jeu. Pour l'instant, vous pouvez aller avec le Décontractée Catégorie.
Après avoir appuyé sur Continuer, vous pouvez lier les services Firebase Analytics et Play Games en cliquant sur le bouton Link Firebase bouton.
Ensuite, allez au Applications liées section pour lier votre projet Android Studio à la console de développeur Play. Dans la boîte de dialogue qui s’affiche, appuyez sur le bouton Android bouton et tapez le nom du paquet de votre projet dans le champ Nom du paquet champ.
appuyez sur la Sauvegarder et continuer bouton pour générer un identifiant client pour votre jeu.
Notre jeu a été enregistré avec succès sur la console pour développeurs de Google Play..
Les API de services de jeux ne fonctionnent que si votre jeu est publié sur Google Play. Cependant, pour vous permettre de tester votre jeu, la console de développement vous permet d’associer quelques comptes d’utilisateur test. En allant au Essai section, vous pouvez ajouter ou supprimer des comptes d’utilisateur test. Assurez-vous d'ajouter le compte Google que vous utilisez sur votre téléphone ou votre émulateur ici..
Un classement n'est rien d'autre qu'un écran affichant les meilleurs scores des utilisateurs. Les classements des services de jeux permettent aux utilisateurs de voir leurs meilleurs scores quotidiens, hebdomadaires et historiques.
La création d'un classement sur la console de développeur Play ne prend que quelques clics. Aller au Classements section et appuyez sur la Ajouter un classement bouton. Dans l’écran suivant, donnez un nom significatif au classement et appuyez sur la touche sauvegarder bouton.
Notre classement est maintenant prêt.
Les réalisations sont des récompenses en jeu pour les utilisateurs qui réussissent à faire quelque chose de spécial. Un jeu qui a beaucoup de succès à débloquer est généralement plus amusant qu'un autre. Par conséquent, la plupart des jeux populaires sur Google Play ont aujourd’hui des dizaines, voire des centaines de réalisations..
Dans ce tutoriel, nous n’ajouterons qu’une réalisation à notre jeu. Son nom sera Foudre rapide, et il sera déverrouillé lorsque l'utilisateur réussira à appuyer sur le bouton plus de 100 fois en une minute. Pour créer la réalisation, allez à la Réalisations section et appuyez sur la Ajouter la réalisation bouton. Après avoir saisi le nom et la description de la réalisation, appuyez sur la touche sauvegarder bouton.
Le classement et la réalisation ont des identificateurs uniques. Nous devons maintenant ajouter ces identifiants à notre projet Android Studio, ainsi que l'ID d'application généré lors de l'enregistrement. Vous pouvez le faire en mettant à jour manuellement le jeux-ids.xml fichier que nous avons créé plus tôt. Cependant, je vous suggère d’utiliser le code de configuration généré automatiquement disponible dans la console du développeur..
Pour obtenir le code de configuration généré automatiquement, vous pouvez aller soit à la Réalisations section ou la Classements section et appuyez sur la Obtenir des ressources lien. Vous verrez le code XML qui ressemble à ceci:
1234567890 com.tutsplus.mylittlegame HzkA4Kz04F8MRYIAze HzkA4Kz04F8MRYIBVU
Copiez tout le code et collez-le dans celui de votre projet jeux-ids.xml fichier.
Avant d’utiliser les API de classements et de réalisations, nous devons créer un GoogleApiClient
exemple et connectez-le aux services de jeux de jeux. Par conséquent, ajoutez un GoogleApiClient
objet en tant que variable membre de votre activité.
Nous devons utiliser le GoogleApiClient.Builder
classe pour construire le GoogleApiClient
exemple. Lors de la construction du client, nous pouvons spécifier l’API et la portée de l’API qui nous intéressent en utilisant le addApi ()
et addScope ()
les méthodes.
De plus, je vous suggère d'appeler le enableAutoManage ()
méthode permettant de s’assurer que le client gère automatiquement la connexion aux services de jeux. La méthode nécessite cependant un OnConnectionFailedListener
, qui sera appelé lorsque la connexion échoue. Pour l'instant, nous appellerons simplement le terminer()
méthode pour fermer l'application en cas d'échec de la connexion.
En conséquence, ajoutez le code suivant au début de la onCreate ()
méthode:
apiClient = new GoogleApiClient.Builder (this) .addApi (Games.API) .addScope (Games.SCOPE_GAMES) .enableAutoManage (this, nouveau GoogleApiClient.OnConnectionFailedListener () @Override public void surConnection (en anglais) (TAG, "Impossible de se connecter aux services de jeux Play"); finish ();). Build ();
Si vous exécutez l'application maintenant, vous serez invité à créer un ID de joueur pour vous-même. Saisissez l’identifiant du joueur de votre choix et appuyez sur le bouton se connecter bouton.
Soumettre un score au classement ne prend qu'une ligne de code. Il vous suffit d'appeler le Soumettre Score()
méthode du Games.Leaderboards
classe. UNEs ses arguments, il attend la GoogleApiClient
par exemple, l'ID du classement et le score.
Dans notre jeu, nous devons soumettre le score à la fin des 60 secondes. Par conséquent, ajoutez le code suivant à la onFinish ()
méthode:
Games.Leaderboards.submitScore (apiClient, getString (R.string.leaderboard_my_little_leaderboard), score);
Pour voir le classement, nous devons commencer une nouvelle activité avec une intention de classement. Pour récupérer l’intention du classement, appelez le getLeaderboardIntent ()
méthode du Games.Leaderboards
classe et passe le GoogleApiClient
instance et ID de classement à ce.
La disposition de notre jeu comporte déjà un bouton sur lequel vous pouvez appuyer pour ouvrir le classement. La valeur de ses sur clic
attribut est showLeaderboard
. Par conséquent, ajoutez le code suivant à votre activité:
showLeaderboard public void (Voir v) startActivityForResult (Games.Leaderboards.getLeaderboardIntent (apiClient, getString (R.string.leaderboard_my_little_leaderboard))), 0);
Vous pouvez exécuter l'application maintenant et jouer à nouveau au jeu. Cette fois, lorsque le jeu est terminé, votre score sera soumis au classement. Voici à quoi ressemble le classement par défaut:
En appelant le ouvrir()
méthode du Jeux. Réalisations
classe, vous pouvez débloquer n'importe quel exploit. La méthode attend la GoogleApiClient
instance et l'identifiant de la réalisation comme seul argument.
La réussite Lightning Fast que nous avons définie dans la console doit être déverrouillée lorsque le score de l'utilisateur dépasse 100 points. Par conséquent, juste après le code pour incrémenter le score, ajoutez le code suivant:
if (score> 100) Jeux.Réalisations .unlock (apiClient, getString (R.string.achievement_lightning_fast));
Le code nécessaire pour afficher les écrans de réalisations est très similaire à celui que nous avons écrit pour afficher l'écran de classement. Tout ce que vous avez à faire est de transmettre la valeur de retour du getAchievementsIntent ()
méthode à la startActivityForResult ()
méthode.
public void showAchievements (Affichage v) startActivityForResult (Games.Achievements .getAchievementsIntent (apiClient), 1);
Si vous exécutez votre application et rejouez le jeu, vous verrez apparaître un exploit lorsque votre score aura franchi 100 points pour la première fois..
Vous savez maintenant comment utiliser les API de services de jeux Google Play dans votre projet Android Studio. Les services de jeux ne sont pas limités à la seule plateforme Android. Ils peuvent aussi bien être utilisés sur les plateformes Web et iOS. Alors, les services de jeux vous permettent de créer des jeux multi-plateformes et d'offrir aux utilisateurs des expériences de jeu cohérentes sur plusieurs plates-formes..
Pour en savoir plus sur les API de services de jeux Google Play, vous pouvez vous reporter à leurs guides officiels ou, mieux encore, consulter certains de nos tutoriels ici sur Envato Tuts.+!