如何在android libgdx游戏中实现多个(针对不同的游戏关卡)排行榜?

时间:2015-05-12 09:10:04

标签: android libgdx google-play-services

我有3种不同的游戏关卡。所以在Google Play游戏服务中需要为Leaderboard发布三种不同的高分。我不明白这一点。我做的是我创建了一个方法

 public void submitScoreGPGS(int score);
 {
      Games.Leaderboards.submitScore(gameHelper.getApiClient(),"id", score);
 }

 public void getLeaderboardGPGS() {             
      if (gameHelper.isSignedIn()) 
      {
          startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(), ""), 100);
      } 
      else if (!gameHelper.isConnecting()) 
      {
          loginGPGS();
      }
 }

对于submitScore()我只是在每个级别的Game over上调用此方法并从那里发送高分。

但是当我调用getLeaderboardGPGS()时,它只显示最后一级的高分。

所以我不知道如何实现这个多重排行榜。

2 个答案:

答案 0 :(得分:3)

您应该创建多个排行榜,并在代码中使用不同的ID。像这样:(未经测试)

private static String LEADERBOARD0_ID = ""; 
private static String LEADERBOARD1_ID = ""; 

public void submitScoreGPGS(int score, int level);
{
    String id = "";
    if(level == 0)
        id = LEADERBOARD0_ID;
    else if(level == 1)
        id = LEADERBOARD1_ID;
Games.Leaderboards.submitScore(gameHelper.getApiClient(),id , score);
}

public void getLeaderboardGPGS() 
{             
  if (gameHelper.isSignedIn()) 
  {
    String id = "";
    if(level == 0)
        id = LEADERBOARD0_ID;
    else if(level == 1)
        id = LEADERBOARD1_ID;
    startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(), id), 100);
  } 
  else if (!gameHelper.isConnecting()) 
  {
      loginGPGS();
  }
}

答案 1 :(得分:1)

要将分数发送到多个排行榜,需要创建所有这些多重排行榜,并将分数发送给特定排行榜。

要在单击按钮上立即呼叫所有排行榜,请使用此

on getleaderboard()

startActivityForResult( Games.Leaderboards.getAllLeaderboardsIntent( gameHelper.getApiClient()), 1 ); 

。可能会帮助别人。