Menambahkan Peristiwa ke Game Anda

Panduan ini menunjukkan cara menggunakan layanan Events di aplikasi C++.

Sebelum memulai

Jika Anda belum melakukannya, sebaiknya tinjau konsep game peristiwa.

Agar dapat menyiapkan lingkungan pengembangan C++ untuk menggunakan layanan Events, ikuti petunjuk dalam panduan Memulai untuk C++. Anda dapat mendownload SDK C++ layanan game Play dari halaman download SDK.

Sebelum game Anda dapat mengakses peristiwa, Anda harus menentukannya terlebih dahulu di Konsol Google Play.

Mengirimkan acara

Anda dapat menambahkan kode dalam game untuk memberi tahu layanan Peristiwa setiap kali ada peristiwa yang menarik ke game Anda. Contoh peristiwa yang dapat Anda ambil dalam game adalah: membunuh musuh, menjelajahi atau kembali ke berbagai wilayah game, atau mendapatkan item dalam game. Biasanya, Anda akan memanggil metode Increment pada pengelola peristiwa untuk menambah jumlah peristiwa sebanyak 1 setiap kali pemain melakukan tindakan yang terkait dengan peristiwa tersebut (misalnya, “Membunuh satu monster”).

Contoh berikut menunjukkan cara mengirimkan jumlah peristiwa yang diperbarui ke layanan Peristiwa.

  // Increment the event count when player performs the 'Attack blue
  // monster' action.
  game_services_->Events().Increment(BLUE_MONSTER_EVENT_ID);

Mengambil peristiwa

Untuk mengambil nilai jumlah saat ini yang disimpan di server Google untuk peristiwa tertentu, panggil salah satu metode Fetch*. Misalnya, Anda dapat melakukannya, jika ingin menampilkan statistik atau progres dalam game pemain dari UI kustom di game.

Contoh berikut menunjukkan cara mengambil dan mencatat data peristiwa ke dalam game.

  // Log Events details.
  LogI("---- Showing Event Counts -----");
  gpg::EventManager::FetchAllCallback callback =
      [](gpg::EventManager::FetchAllResponse const &response) {
    for (auto i : response.data) {
      gpg::Event const &event = i.second;
      LogI("Event name: %s  count: %d", event.Name().c_str(),
           event.Count());
    }
  };
  game_services_->Events().FetchAll(callback);