GooglePlayゲームを使用してゲーミフィケーションを実装しているアプリケーションがあります。ユーザーがアチーブメントをリリースするとき、アプリだけでフィルタリングして、このユーザーの合計ポイントを知る必要があります。たとえば、私のアプリが10の実績を試行し、ユーザーがそのうちの4つをリリースしたとします。問題のユーザーによってリリースされたこれらの4つのアチーブメントによって生成された合計スコアを知る方法は?これを行う簡単で軽量な方法はありますか?
更新
さて、私はこのコードを試しましたが、awaysはゼロを返します。
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);
}
パッケージAchievement
からクラスを使用してみることができcom.google.android.gms.games.achievement
ます。
- このアチーブメントのロックを解除するためにプレイヤーに与えられるXP値。
また、Androidゲームに実績を追加するためのドキュメントもあります:
このガイドでは、AndroidアプリケーションでアチーブメントAPIを使用して、ゲームでアチーブメントのロックを解除して表示する方法を説明します。
プレーヤーのアチーブメントを表示するには、を呼び出し
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);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加