این راهنما به شما نشان می دهد که چگونه از API های تابلوی امتیازات در یک برنامه اندروید برای ایجاد تابلوهای امتیازات بصری، ثبت امتیاز بازیکن و مقایسه امتیاز با امتیاز بازیکن در جلسات قبلی بازی استفاده کنید. APIها را میتوانید در بستههای com.google.android.gms.games
و com.google.android.gms.games.leaderboards
پیدا کنید.
قبل از شروع
اگر قبلاً این کار را انجام نداده اید، ممکن است مرور مفاهیم بازی تابلوهای امتیازات برای شما مفید باشد.
قبل از شروع به کدنویسی با استفاده از API های تابلوی امتیازات:
- دستورالعملهای نصب و راهاندازی برنامه خود را برای استفاده از خدمات بازیهای Google Play در راهنمای راهاندازی سرویسهای SDK Google Play دنبال کنید.
- با دنبال کردن دستورالعملهای راهنمای کنسول Google Play ، تابلوهای امتیازاتی را که میخواهید بازیتان نمایش داده یا بهروزرسانی کند، تعریف کنید.
- نمونه کدهای تابلوی امتیازات را در صفحه نمونه اندروید دانلود و بررسی کنید.
- با توصیه هایی که در چک لیست کیفیت توضیح داده شده است آشنا شوید.
مشتری تابلوهای امتیازات را دریافت کنید
برای شروع استفاده از تابلوهای API، بازی شما ابتدا باید یک شی LeaderboardsClient
داشته باشد. می توانید این کار را با فراخوانی متد Games.getLeadeboardsClient()
انجام دهید و فعالیت و GoogleSignInAccount
برای بازیکن فعلی ارسال کنید. برای یادگیری نحوه بازیابی اطلاعات حساب بازیکن، به ورود به سیستم در بازیهای Android مراجعه کنید.
امتیاز بازیکن را به روز کنید
وقتی امتیاز بازیکن تغییر میکند (مثلاً وقتی بازیکن بازی را تمام میکند)، بازی شما میتواند با فراخوانی LeaderboardsClient.submitScore()
امتیاز خود را در تابلوی امتیازات بهروزرسانی کند، و شناسه تابلوی امتیازات و مقدار امتیاز خام را ارسال کند.
قطعه کد زیر نشان می دهد که چگونه برنامه شما می تواند امتیاز بازیکن را به روز کند:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .submitScore(getString(R.string.leaderboard_id), 1337);
یک تمرین خوب این است که شناسه تابلوی امتیازات را در فایل strings.xml
خود تعریف کنید تا بازی شما بتواند با شناسه منبع به تابلوهای امتیازات ارجاع دهد. هنگام برقراری تماس برای بهروزرسانی و بارگیری امتیازات بازیکن، مطمئن شوید که این بهترین روشها را نیز دنبال میکنید تا از حد نصاب API خود جلوگیری کنید.
تابلوی امتیازات را نمایش دهید
برای نمایش تابلوی امتیازات، LeaderboardsClient.getLeaderboardIntent()
را فراخوانی کنید تا Intent
برای ایجاد رابط کاربری پیشفرض تابلوی امتیازات دریافت کنید. سپس بازی شما میتواند با فراخوانی startActivityForResult
UI را نمایش دهد.
قطعه کد زیر نشان می دهد که چگونه برنامه شما می تواند امتیاز بازیکن را به روز کند. در قطعه کد، RC_LEADERBOARD_UI
یک عدد صحیح دلخواه برای کد درخواست است.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
توجه داشته باشید که حتی اگر هیچ نتیجه ای برگردانده نشد، باید startActivityForResult
استفاده کنیم تا API بتواند هویت بسته فراخوانی را بدست آورد. نمونهای از رابط کاربری پیشفرض تابلوی امتیازات در زیر نشان داده شده است.
این راهنما به شما نشان می دهد که چگونه از API های تابلوی امتیازات در یک برنامه اندروید برای ایجاد تابلوهای امتیازات بصری، ثبت امتیاز بازیکن و مقایسه امتیاز با امتیاز بازیکن در جلسات قبلی بازی استفاده کنید. APIها را میتوانید در بستههای com.google.android.gms.games
و com.google.android.gms.games.leaderboards
پیدا کنید.
قبل از شروع
اگر قبلاً این کار را انجام نداده اید، ممکن است مرور مفاهیم بازی تابلوهای امتیازات برای شما مفید باشد.
قبل از شروع به کدنویسی با استفاده از API های تابلوی امتیازات:
- دستورالعملهای نصب و راهاندازی برنامه خود را برای استفاده از خدمات بازیهای Google Play در راهنمای راهاندازی سرویسهای SDK Google Play دنبال کنید.
- با دنبال کردن دستورالعملهای راهنمای کنسول Google Play ، تابلوهای امتیازاتی را که میخواهید بازیتان نمایش داده یا بهروزرسانی کند، تعریف کنید.
- نمونه کدهای تابلوی امتیازات را در صفحه نمونه اندروید دانلود و بررسی کنید.
- با توصیه هایی که در چک لیست کیفیت توضیح داده شده است آشنا شوید.
مشتری تابلوهای امتیازات را دریافت کنید
برای شروع استفاده از تابلوهای API، بازی شما ابتدا باید یک شی LeaderboardsClient
داشته باشد. می توانید این کار را با فراخوانی متد Games.getLeadeboardsClient()
انجام دهید و فعالیت و GoogleSignInAccount
برای بازیکن فعلی ارسال کنید. برای یادگیری نحوه بازیابی اطلاعات حساب بازیکن، به ورود به سیستم در بازیهای Android مراجعه کنید.
امتیاز بازیکن را به روز کنید
وقتی امتیاز بازیکن تغییر میکند (مثلاً وقتی بازیکن بازی را تمام میکند)، بازی شما میتواند با فراخوانی LeaderboardsClient.submitScore()
امتیاز خود را در تابلوی امتیازات بهروزرسانی کند، و شناسه تابلوی امتیازات و مقدار امتیاز خام را ارسال کند.
قطعه کد زیر نشان می دهد که چگونه برنامه شما می تواند امتیاز بازیکن را به روز کند:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .submitScore(getString(R.string.leaderboard_id), 1337);
یک تمرین خوب این است که شناسه تابلوی امتیازات را در فایل strings.xml
خود تعریف کنید تا بازی شما بتواند با شناسه منبع به تابلوهای امتیازات ارجاع دهد. هنگام برقراری تماس برای بهروزرسانی و بارگیری امتیازات بازیکن، مطمئن شوید که این بهترین روشها را نیز دنبال میکنید تا از حد نصاب API خود جلوگیری کنید.
تابلوی امتیازات را نمایش دهید
برای نمایش تابلوی امتیازات، LeaderboardsClient.getLeaderboardIntent()
را فراخوانی کنید تا Intent
برای ایجاد رابط کاربری پیشفرض تابلوی امتیازات دریافت کنید. سپس بازی شما میتواند با فراخوانی startActivityForResult
UI را نمایش دهد.
قطعه کد زیر نشان می دهد که چگونه برنامه شما می تواند امتیاز بازیکن را به روز کند. در قطعه کد، RC_LEADERBOARD_UI
یک عدد صحیح دلخواه برای کد درخواست است.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
توجه داشته باشید که حتی اگر هیچ نتیجه ای برگردانده نشد، باید startActivityForResult
استفاده کنیم تا API بتواند هویت بسته فراخوانی را بدست آورد. نمونهای از رابط کاربری پیشفرض تابلوی امتیازات در زیر نشان داده شده است.