Events

Construct memiliki GUI yang hebat yang memungkinkan pengembang membuat game dengan sedikit hingga tanpa kode. Dokumen berikut akan mengulas bagaimana menghubungkan game Anda ke Basement.fun menggunakan lembar event Construct.

Komponen Kunci

Anda perlu menambahkan beberapa objek ke proyek Anda untuk memungkinkan game Construct Anda berinteraksi dengan platform Basement.fun.
Untuk menambahkan objek ke proyek Anda, pergi ke Layout View, klik kanan di layout, pilih Insert New Object, dan kemudian pilih objek yang ingin Anda masukkan ke dalam proyek Anda. Setelah menambahkan objek, objek tersebut akan tersedia di lembar event Anda.

Browser Object

Objek Browser memungkinkan Anda menulis ke konsol. Ini tidak diperlukan, tetapi akan berguna saat memverifikasi data dan debugging kode Anda.

AJAX Object

Objek AJAX memungkinkan game Anda berinteraksi dengan API B3.
  • Permintaan POST memerlukan Anda untuk membuat aksi terpisah untuk setiap parameter header dan satu aksi post ke URL untuk semua parameter body
  • Permintaan GET memerlukan Anda untuk menggabungkan semua parameter dan nilai yang Anda butuhkan ke dalam satu URL untuk mengirim permintaan ke API
  • Respon API dapat dirujuk menggunakan AJAX.LastData

JSON Object

Objek JSON memungkinkan game Anda menangani respon JSON. Anda perlu mem-parse string JSON untuk memanfaatkan data respon.

Contoh Event

Event contoh ini akan membahas permintaan POST Set Scores yang dijelaskan dalam Spesifikasi API BSMNT.

Contoh Permintaan

1

Create Function

Klik kanan di mana saja pada lembar event, buat sebuah fungsi, dan beri nama SetScore.
2

Set Service Method Header

Klik tambah aksi, pilih AJAX, pilih Set request header.
  • Header field: X-Service-Method
  • Value field: setUserScore
3

Set Authorization Header

Tambahkan aksi AJAX lain dan pilih Set request header lagi.
  • Header field: Authorization
  • Value field: Bearer <game secret>
Ganti <game secret> dengan token rahasia game Anda yang sebenarnya.
4

Configure POST Request

Tambahkan aksi AJAX lain tetapi kali ini, pilih Post to URL. Masukkan berikut ini:
  • Tag: setUserScore
  • URL: https://api.basement.fun/launcher
  • Data: {"launcherJwt": "string", "nonce": "string", "score": 0}
  • Method: POST
Ini adalah permintaan contoh - pastikan untuk mengganti nilai Anda dengan variabel yang ditetapkan oleh event dalam game Anda.

Contoh Respon

Respon contoh akan terlihat seperti ini:
API Response
{
    "success": true | false,
    "error"?: "error string",
    "newScore"?: {
        "_id": "unique id",
        "nonce": "nonce",
        "updatedAt": 23151264, // unix timestamp
        "score": 100.235,
        "gameId": "game uuid",
        "normalizedAddress": "user lowercase address"
    }
}

Mengambil Data

Di Construct, mari kita ambil nonce dari respon, sehingga kita dapat menggunakannya untuk mengambil skor pada waktu yang akan datang.
1

Create Global Variable

Klik kanan di mana saja pada lembar event dan tambahkan variabel global bernama Nonce.
2

Add Trigger Event

Tambahkan event yang dipicu oleh game Anda.Contoh: Untuk menangkap skor pengguna saat mereka menabrak sepeda lain, tambahkan kondisi on collision with another object ke biker dan atur objeknya ke biker.
3

Call SetScore Function

Tambahkan aksi, pilih functions, dan pilih SetScore.
4

Parse JSON Response

Tambahkan aksi JSON, pilih parse, dan masukkan AJAX.LastData di bidang string JSON.
Ini akan mengambil respon dari permintaan SetScore kami.
5

Extract Nonce Value

Tambahkan aksi system, pilih set value, pilih variabel Nonce, dan masukkan JSON.Get("newScore.nonce").
Sekarang variabel Nonce Anda diatur ke nonce yang dikembalikan oleh respon API!

Integrasi Lengkap

Mengikuti langkah yang sama, Anda dapat membuat event untuk setiap titik akhir API dengan meninjau semua parameter dan respon.

Titik Akhir API yang Tersedia

Praktik Terbaik

Error Handling

Selalu periksa field success dalam respon API dan tangani kesalahan dengan anggun.

Variable Management

Gunakan variabel global Construct untuk menyimpan data penting seperti token JWT dan skor pengguna.

Debug Console

Gunakan objek Browser untuk mencatat informasi penting ke konsol selama pengembangan.

API Rate Limits

Perhatikan batasan laju API dan hindari membuat terlalu banyak permintaan dalam waktu singkat.

Langkah Selanjutnya

Troubleshooting