【发布时间】:2017-01-16 01:39:44
【问题描述】:
我需要增加当前玩家的排行榜分数。为了在java中做到这一点,我做了这样的事情:
PendingResult<Leaderboards.LoadPlayerScoreResult> result = Games.Leaderboards.loadCurrentPlayerLeaderboardScore(mGoogleApiClient, getString(R.string.winsleaderboardid), LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC);
if(result != null)
{
result.setResultCallback(new ResultCallback<Leaderboards.LoadPlayerScoreResult>() {
@Override
public void onResult(Leaderboards.LoadPlayerScoreResult loadPlayerScoreResult) {
if(loadPlayerScoreResult != null && loadPlayerScoreResult.getScore() != null)
{
Games.Leaderboards.submitScore(mGoogleApiClient, getString(R.string.winsleaderboardid), loadPlayerScoreResult.getScore().getRawScore() + 1);
}
else
{
Games.Leaderboards.submitScore(mGoogleApiClient, getString(R.string.winsleaderboardid), 1);
}
}
});
}
我似乎无法在 Xamarin 中找到 ILoadPlayerScoreResult 的接口,但我希望是这样的:
private async void IncrementLeaderBoardWins()
{
IResult result = await GamesClass.Leaderboards.LoadCurrentPlayerLeaderboardScore(
mGoogleApiClient, GetString(Resource.String.winsleaderboardid), Android.Gms.Games.LeaderBoard.LeaderboardVariant.TimeSpanAllTime,
Android.Gms.Games.LeaderBoard.LeaderboardVariant.CollectionPublic);
OnResult(result);
}
public void OnResult(ILoadPlayerScoreResult loadPlayerScoreResult)
{
if (loadPlayerScoreResult != null && loadPlayerScoreResult.getScore() != null)
{
GamesClass.Leaderboards.SubmitScore(mGoogleApiClient, GetString(Resource.String.winsleaderboardid), loadPlayerScoreResult.getScore().getRawScore() + 1);
}
else
{
GamesClass.Leaderboards.SubmitScore(mGoogleApiClient, GetString(Resource.String.winsleaderboardid), 1);
}
}
【问题讨论】:
标签: android xamarin xamarin.android google-play-services google-play-games