অ্যান্ড্রয়েড গেমের লিডারবোর্ড

ভিজ্যুয়াল লিডারবোর্ড তৈরি করতে, প্লেয়ারের স্কোর রেকর্ড করতে এবং আগের গেম সেশন থেকে প্লেয়ারের স্কোরের সাথে স্কোর তুলনা করতে এই গাইডটি আপনাকে দেখায় কিভাবে একটি Android অ্যাপ্লিকেশনে লিডারবোর্ড API ব্যবহার করতে হয়। API গুলি com.google.android.gms.games এবং com.google.android.gms.games.leaderboards প্যাকেজে পাওয়া যাবে৷

তুমি শুরু করার আগে

আপনি যদি ইতিমধ্যে এটি না করে থাকেন, তাহলে লিডারবোর্ড গেমের ধারণাগুলি পর্যালোচনা করা আপনার সহায়ক বলে মনে হতে পারে।

লিডারবোর্ড এপিআই ব্যবহার করে কোড করা শুরু করার আগে:

লিডারবোর্ড ক্লায়েন্ট পেয়ে

লিডারবোর্ড এপিআই ব্যবহার শুরু করতে, আপনার গেমটিকে প্রথমে একটি LeaderboardsClient অবজেক্ট পেতে হবে। আপনি Games.getLeadeboardsClient() পদ্ধতিতে কল করে এবং বর্তমান প্লেয়ারের জন্য কার্যকলাপ এবং GoogleSignInAccount পাস করে এটি করতে পারেন। প্লেয়ার অ্যাকাউন্টের তথ্য কীভাবে পুনরুদ্ধার করবেন তা জানতে, Android গেমগুলিতে সাইন-ইন দেখুন।

খেলোয়াড়ের স্কোর আপডেট করা হচ্ছে

যখন প্লেয়ারের স্কোর পরিবর্তিত হয় (উদাহরণস্বরূপ, খেলোয়াড় যখন গেমটি শেষ করে), তখন আপনার গেমটি লিডারবোর্ডে তাদের স্কোর আপডেট করতে পারে LeaderboardsClient.submitScore() এ কল করে এবং লিডারবোর্ড আইডি এবং কাঁচা স্কোর মান পাস করে।

নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে আপনার অ্যাপ প্লেয়ারের স্কোর আপডেট করতে পারে:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

একটি ভাল অভ্যাস হল আপনার strings.xml ফাইলে লিডারবোর্ড আইডি সংজ্ঞায়িত করা, যাতে আপনার গেম রিসোর্স আইডি দ্বারা লিডারবোর্ড উল্লেখ করতে পারে। প্লেয়ার স্কোর আপডেট এবং লোড করার জন্য কল করার সময়, আপনার API কোটা অতিক্রম না করার জন্য এই সর্বোত্তম অনুশীলনগুলি অনুসরণ করতে ভুলবেন না।

একটি লিডারবোর্ড প্রদর্শন করা হচ্ছে

লিডারবোর্ড প্রদর্শন করতে, ডিফল্ট লিডারবোর্ড ব্যবহারকারী ইন্টারফেস তৈরি করার জন্য একটি Intent পেতে LeaderboardsClient.getLeaderboardIntent() এ কল করুন। আপনার গেম তারপর 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 কলিং প্যাকেজের পরিচয় পেতে পারে। ডিফল্ট লিডারবোর্ড UI এর একটি উদাহরণ নীচে দেখানো হয়েছে।