【问题标题】:how to implement multiple(for different game levels) leaderboard in android libgdx game?如何在 android libgdx 游戏中实现多个(针对不同的游戏级别)排行榜?
【发布时间】:2015-05-14 14:48:47
【问题描述】:

我有 3 个不同的游戏关卡。因此,Google Play 服务上的排行榜需要发布三个不同的高分。我不明白这一点。我所做的是我创建了一个方法

 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() 时,它只显示最后一级的高分。

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

【问题讨论】:

    标签: android libgdx google-play-services


    【解决方案1】:

    您应该创建多个排行榜并在代码中使用它们的不同 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();
      }
    }
    

    【讨论】:

    • Sir p.streef 如果我创建了多个排行榜 ID,你能告诉我在排行榜按钮上调用它们时应该怎么做吗?如果我打电话给startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getApiClient(), LEADERBOARD0_ID), 100); 它只指ID _0。
    • 您可以有 3 个按钮,每个级别 1 个。或者动态使用正确级别的id。 if(current_level == 0) { startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getAp‌​iClient(), LEADERBOARD0_ID), 100); } else if (current_level == 1) { startActivityForResult(Games.Leaderboards.getLeaderboardIntent(gameHelper.getAp‌​iClient(), LEADERBOARD1_ID), 100); } 等
    【解决方案2】:

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

    要在单击单个按钮时立即调用所有排行榜,请使用此

    getleaderboard()

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

    。可能会帮助某人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 2014-02-19
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多