Mini-proyek Bagian 7: Collect-All-Coins

Mini-proyek terakhir buku ini dibangun di atas koin Touch-to-Collect. Kamu menyebar beberapa koin, menghitung berapa banyak yang dipungut seorang pemain, dan mengumumkan kemenangan pada koin terakhir. Proyek ini menggunakan semua materi dari Bagian 7 — Instances, events, services, leaderstats — ditambah perulangan dari Bagian 6 untuk memproses banyak objek.

Yang harus dibangun

Saat experience berjalan:

  1. Setiap pemain mendapat folder leaderstats dengan Coins bernilai 0 (seperti sebelumnya).
  2. Beberapa koin tersebar di dunia di dalam satu Folder.
  3. Berjalan ke atas sebuah koin menambahkan 1 ke Coins pemain tersebut dan menghapus koinnya.
  4. Ketika koin terakhir dikumpulkan, game mencetak pesan kemenangan.

File

Dua script ada di projects/collect-all-coins/:

  • player-setup.lua — sebuah Script di ServerScriptService. Membangun leaderstats dan Coins untuk setiap pemain yang bergabung.
  • coins-manager.lua — sebuah Script di ServerScriptService. Menemukan setiap koin, menghubungkan masing-masing event Touched, menghitung pengambilan koin, dan memicu kemenangan.

Persiapan di Studio, langkah demi langkah

  1. Buka Studio dengan template Baseplate.
  2. Buat folder Coins.
    • Di Explorer, klik kanan WorkspaceInsert ObjectFolder. Ganti namanya menjadi Coins (F2).
  3. Tambahkan beberapa koin.
    • Klik kanan folder CoinsInsert ObjectPart.
    • Untuk Part tersebut, atur di Properties: Anchored = true, Shape = Cylinder (opsional), Size = 2, 0.4, 2, BrickColor = Bright yellow, dan Position yang bisa dijangkau pemain.
    • Duplikat (klik kanan → Duplicate) beberapa kali dan sebarkan salinannya ke berbagai tempat. Setiap salinan tetap berada di dalam folder Coins.
  4. Tambahkan dua script.
    • Klik kanan ServerScriptServiceInsert ObjectScript. Ganti namanya menjadi PlayerSetup dan tempel isi player-setup.lua.
    • Tambahkan Script kedua bernama CoinsManager dan tempel isi coins-manager.lua.
  5. Uji coba. Tekan Play, jalan ke setiap koin, dan lihat leaderboard bertambah. Saat koin terakhir menghilang, panel Output mencetak pesan kemenangan.

Cara kerja kodenya

  • coins-manager.lua menghitung koin dengan #coinsFolder:GetChildren() — panjang list dari Bab 22.
  • Ia melakukan perulangan (Bab 28) dan menghubungkan setiap event Touched (Bab 33).
  • Setiap handler menemukan pemainnya (Bab 33), menambah Coins mereka (Bab 35), menghapus koin, dan menambah satu ke penghitung collected bersama (Bab 20).
  • Ketika collected mencapai total, pesan kemenangan dicetak.

Baris if coin.Parent == nil then return end adalah debounce: Parent koin yang sudah dihancurkan bernilai nil, sehingga sentuhan yang tersisa diabaikan.

Tantangan lebih besar (opsional)

  • Kemenangan per pemain. Beri setiap pemain hitungan mereka sendiri sehingga dua orang bisa berlomba; umumkan siapa yang pertama mencapai angka tertentu.
  • Munculkan kembali koin. Setelah kemenangan, gunakan task.wait, lalu Clone koin-koinnya kembali untuk putaran baru.

Sudah selesai?

Ketika koin bisa dikumpulkan, leaderboard menghitungnya, dan kemenangan terpicu pada koin terakhir — proyek, sekaligus buku ini, sudah selesai.

Kamu mulai dari kata-kata di atas kertas dan berakhir dengan scene Roblox yang bisa dimainkan. Setiap tutorial Roblox mulai dari sini akan terasa seperti bab berikutnya: bahasa yang sama, pola yang sama, hanya lebih banyak services, events, dan Instances. Pergi buat sesuatu.