2016-05-30 71 views
0

我有一個應用程序,使用Google Play遊戲來實施遊戲化。當用戶發佈成就時,我需要知道該用戶的總分是多少,只能通過我的應用進行過濾。例如,假設我的應用試圖獲得10項成就,並且用戶已經發布了其中的四項成就。如何知道用戶發佈的這4項成就所產生的總分?有一種簡單輕便的方法可以做到這一點?Google Play遊戲 - 是否可以獲取僅用於我的遊戲的用戶經驗值?

UPDATE

嗯,我想這代碼,但跳投返回零。

public abstract class GetAchievements { 
    public void loadAchievements() { 
     PendingResult<Achievements.LoadAchievementsResult> pendingAchievements = Games.Achievements.load(mGoogleApiClient, true); 
     pendingAchievements.setResultCallback(new ResultCallback<Achievements.LoadAchievementsResult>() { 
      @Override 
      public void onResult(Achievements.LoadAchievementsResult loadAchievementsResult) { 
       Game game = Games.GamesMetadata.getCurrentGame(mGoogleApiClient); 
       extractAchievements(loadAchievementsResult, game); 
      } 
     }); 
    } 

    public void extractAchievements(Achievements.LoadAchievementsResult loadAchievementsResult, Game game) { 
     AchievementBuffer buffer = loadAchievementsResult.getAchievements(); 
     List<Achievement> achievementList = new ArrayList<>(); 
     for (int i = 0; i < game.getAchievementTotalCount(); i++) { 
      achievementList.add(buffer.get(i)); 
      Achievement a = buffer.get(i); 

      // aways return 0 
      Log.d(TAG, "XP = " + a.getXpValue()); 

     } 
     notifyAchievements(achievementList); 
    } 

    public abstract void notifyAchievements(List<Achievement> achievementList); 
} 

回答

1

您可以嘗試使用Achievement類從com.google.android.gms.games.achievement包。

getXpValue

  • XP值提供給玩家解鎖這個成就。

另外這裏的文檔Adding Achievements to Your Android Game

本指南向您介紹如何使用成果的API在Android應用程序解鎖,並顯示在你的遊戲成就。

Displaying achievements

要顯示一個玩家的成就,呼籲getAchievementsIntent()得到一個Intent以創建默認的成就UI。通過調用[startActivityForResult](https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,int)),您的遊戲可以調出UI。在以下代碼片段中,REQUEST_ACHIEVEMENTS是用作請求代碼的任意整數。

startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), 
REQUEST_ACHIEVEMENTS); 
+0

請檢查我的更新 – sThiago

相關問題