Banner Utama

Panduan ini menunjukkan cara menggunakan API Papan Peringkat SDK c++ Layanan game Play untuk membuat papan peringkat visual, mencatat skor pemain, dan membandingkan skor dengan skor pemain dari sesi game sebelumnya. API ini dapat ditemukan di LeaderboardsClient.

Sebelum memulai

Jika Anda belum melakukannya, sebaiknya tinjau konsep game papan peringkat.

Sebelum Anda mulai membuat kode menggunakan API papan peringkat:

Mendapatkan klien papan peringkat

Untuk mulai menggunakan API papan peringkat, game Anda harus mendapatkan objek LeaderboardsClient terlebih dahulu. Anda dapat melakukannya dengan memanggil metode PgsLeaderboardsClient_create() dan meneruskan aktivitas.

Memperbarui skor pemain

Saat skor pemain berubah (misalnya, saat pemain menyelesaikan game), game Anda dapat memperbarui skor di papan peringkat dengan memanggil PgsLeaderboardsClient_submitScoreImmediate. Anda perlu meneruskan ID papan peringkat, nilai skor mentah, tag skor opsional, dan fungsi panggilan balik.

// Callback function to handle the result of submitting the score
void OnScoreSubmitted(PgsStatusCode status_code,
                      PgsScoreSubmissionData* score_submission_data,
                      void* user_data) {
  if (status_code == PGS_STATUS_SUCCESS) {
    // Score submitted successfully
    // You can inspect score_submission_data for details
    // Remember to release the data when done:
    PgsScoreSubmissionData_Release(score_submission_data);
  } else {
    // Handle error
  }
}

// Function to submit the score
void SubmitScore(PgsLeaderboardsClient* client, const char* leaderboard_id, int64_t score) {
  const char* score_tag = NULL; // Optional tag

  PgsLeaderboardsClient_submitScoreImmediate(
      client,
      leaderboard_id,
      score,
      score_tag,
      OnScoreSubmitted,
      NULL // user_data - optional context pointer
  );
}

// Example usage:
// Assuming 'my_leaderboard_id' is defined elsewhere, e.g., fetched from resources
// SubmitScore(leaderboards_client, my_leaderboard_id, 1337);

Praktik yang baik adalah mengelola ID papan peringkat sebagai konstanta atau resource dalam kode c++ Anda.

Menampilkan papan peringkat

Untuk menampilkan antarmuka pengguna papan peringkat default untuk papan peringkat tertentu, panggil PgsLeaderboardsClient_showLeaderboardUI. Fungsi ini memerlukan handle klien, aktivitas, ID papan peringkat, rentang waktu dan koleksi, serta callback.

// Callback function to handle the result of showing the UI
void OnShowLeaderboardUI(PgsStatusCode status_code, bool success, void* user_data) {
  if (status_code == PGS_STATUS_SUCCESS && success) {
    // UI was shown successfully
  } else {
    // Handle error or failure to show UI
  }
}

// Function to show a specific leaderboard UI
void ShowLeaderboard(PgsLeaderboardsClient* client, jobject activity, const char* leaderboard_id) {
  PgsLeaderboardsClient_showLeaderboardUI(
      client,
      activity,
      leaderboard_id,
      PGS_LEADERBOARD_TIME_SPAN_ALL_TIME, // Or PGS_LEADERBOARD_TIME_SPAN_DAILY, PGS_LEADERBOARD_TIME_SPAN_WEEKLY
      PGS_LEADERBOARD_COLLECTION_PUBLIC,  // Or PGS_LEADERBOARD_COLLECTION_FRIENDS
      OnShowLeaderboardUI,
      NULL // user_data - optional context pointer
  );
}

// Example usage:
// ShowLeaderboard(leaderboards_client, android_activity, my_leaderboard_id);

Fungsi ini menampilkan UI. Objek activity memberikan konteks untuk menampilkan UI.