1

J'ai fait une application de jeu et je veux maintenant ajouter google réalisation xp à mon application comment dois-je faire que j'ai ajouté des réalisations en utilisant ce guide mais il n'y a pas de guide sur internet que je peux trouve que cela devrait ajouter xp gagné du joueur.Ajouter XP à l'application de jeu Android

Voici mon code pour déverrouiller la réalisation, mais ce ne est pas déverrouiller xp:

void giveAchievements(int counter) { 
    if (counter == 10) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_first_10_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), "CgkI- eXOwZsFEAIQBg", counter); 
     } 
    } 
    if (counter == 50) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_50_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), "CgkI-eXOwZsFEAIQBg", counter); 
     } 
    } 
    if (counter == 100) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_100_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
    if (counter == 250) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_250_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), "CgkI-eXOwZsFEAIQBg", counter); 
     } 
    } 
    if (counter == 500) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_500_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
    if (counter == 1000) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_1000_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
    if (counter == 1500) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_1500_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
    if (counter == 3000) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_3000_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
    if (counter == 5000) { 
     if (getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), 
        getString(R.string.achievement_5000_clicks)); 
      Games.Leaderboards.submitScore(getApiClient(), getString(R.string.leaderboard_leaderboard), counter); 
     } 
    } 
} 
+0

Si ma réponse a résolu votre question, veuillez envisager de l'accepter en cochant la case. Ceci indique à la communauté plus large que vous avez trouvé une solution et donne une certaine réputation à la fois le répondeur et vous-même. Il n'y a aucune obligation de le faire. –

+0

@SimonSchubert vous êtes vraiment un sauveur de vie merci l'homme! – superhuman

+0

Génial que ça marche! –

Répondre

2

Le XP ne se base pas sur votre jeu, il est basé sur votre profil Google+. Disons que vous débloquez une réussite dans le jeu Orc Genocide et vous obtenez 500xp à votre profil Google+. Après cela, vous débloquez un exploit dans votre jeu et gagnez 1000xp. Ainsi, votre profil Google+ a un total de 1500xp.

Mais vous pouvez facilement calculer le XP par vous-même et le stocker dans SharedPreferences :)

void giveAchievements(int counter) { 
    if (counter == 10) { 
     int xp = getXp(); 
     xp += 500; 
     saveXp(xp); 
     if(getApiClient().isConnected()) { 
      Games.Achievements.unlock(getApiClient(), getString(R.string.achievement_first_10_clicks)); 
      Games.Leaderboards.submitScoreImmediate(getApiClient(), "CgkI- eXOwZsFEAIQBg", counter); 
     } 
    } 
} 

private int getXp() { 
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); 
    return sharedPref.getInt("xp", 0); 
} 

private void saveXp(int xp) { 
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putInt("xp", xp); 
    editor.apply(); 
} 

https://support.google.com/googleplay/answer/3129940?hl=en

Lorsque vous obtenez des réalisations dans le jeu, vous pouvez gagner des points d'expérience (XP) et niveaux sur votre profil Play Jeux. Lorsque vous jouez à un jeu, vous verrez une notification lorsque vous avez obtenu XP ou suffisamment de points pour améliorer votre profil Play Jeux. Lorsque vous passez au niveau supérieur, vous verrez également une notification dans la nuance de notification de votre appareil mobile en haut de votre écran et dans le menu Boîte de réception de vos jeux Play .

Vous pouvez afficher vos performances XP et individuelles sur les jeux que vous utilisez avec Jouer à des jeux sur la page de profil Play Jeux.

Pour plus d'informations sur la façon de rendre votre profil de jeu public ou sur privé, allez à Jouer à des jeux sur votre appareil.