Praktik parameter - tombol

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tombol dapat digunakan oleh pemain untuk membuka area baru, memberikan poin, dan mengungkapkan harta karun.Setiap kali pemain menyentuh tombol, seharusnya memberikan beberapa umpan balik agar pemain tahu bahwa mereka berinteraksi dengannya, seperti mengubah warna atau membuat suara.

Di contoh ini, tombol akan digunakan untuk mengaktifkan jembatan.Saat tombol ditekan, itu akan berubah menjadi hijau dan pemain akan dapat menggunakan jembatan.Jika pemain belum menekan tombol, mereka akan jatuh melalui jembatan saat mereka mencoba berjalan di atasnya.

Membuat jembatan

Mulai dengan mengatur jembatan.

  1. Buat area di game Anda di mana pemain akan membutuhkan jembatan.

  2. Buat bagian untuk jembatan dan ganti namanya menjadi Bridge.

  3. Pilih jembatan, di jendela Properti:

    • Ubah Transparansi menjadi .5. Untuk Transparansi, 0 terlihat, 1 tidak terlihat.
    • Periksa Anchor .
    • Nonaktifkan Dapat Bersinggungan .
  4. Uji game, jembatan seharusnya terlihat berawan dan orang tidak harus bisa berjalan di atasnya belum.

Buat tombol

Sekarang jembatan sudah dibuat, buat tombol.

  1. Buat bagian baru bernama Tombol.
  2. Ganti warna tombol menjadi merah.
  3. Ikatkan tombol.
  4. Pindahkan tombol sehingga sedikit mengambang dan tidak menyentuh apa pun. Ini untuk memastikan acara Touched tidak secara tidak sengaja menembak.

Buat tombol interaktif

Kali ini, alih-alih menggunakan acara Touched untuk membuat perangkap, Anda akan menggunakannya untuk membuat tombol yang membuat jembatan dapat digunakan.Untuk membuat jembatan dapat tabrakan, gunakan kode bridge.CanCollide = true dalam fungsi khusus yang dijalankan saat pemain menyentuh tombol.Anda tahu semua hal lain yang perlu Anda selesaikan untuk menyelesaikan langkah berikut.

Cobalah untuk mencari tahu sendiri sebelum melihat solusi kode.

  1. Masukkan skrip baru ke dalam tombol bernama Aktifkan Jembatan .
  2. Hapus Hello World .
  3. Buat variabel untuk jembatan dan untuk tombol.
  4. Buat fungsi lokal yang melakukan berikut setelah tombol disentuh: * Mencetak "button touched" .
    • Mengubah warna tombol dari merah ke hijau saat disentuh.
    • Mengubah transparansi jembatan menjadi 0 untuk membuatnya terlihat.
    • Membuat jembatan dapat digunakan dengan menggunakan kode bridge.CanCollide = true
  5. Hubungkan fungsi ke acara tombol Touched .
  6. Uji skrip dan pastikan jembatan muncul saat tombol disentuh.

Solusi Kode Di bawah ini adalah salah satu solusi kode yang mungkin


-- Masukkan skrip ini ke dalam tombol
-- Mengubah tombol menjadi hijau ketika sesuatu menyentuh tombol.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)

Memecahkan masalah kode Anda

Masalah: Jembatan sudah solid saat permainan dimulai.: Pastikan bahwa bagian tersebut diikat dan tidak menyentuh apa pun.Bagian mungkin menyentuh sesuatu, seperti medan atau bagian lain, dan menyebabkan fungsi buttonPressed() terbakar secara tidak sengaja. Masalah: Anda mendapatkan kesalahan di jendela Output yang mengatakan: "Jembatan bukan anggota valid dari Workspace" Periksa yang mengikuti:

  • Penamaan jembatan Anda. Jembatan di skrip Anda harus diberi nama persis seperti di Explorer.
  • Itu part.Touched:Connect(buttonPressed) berada di luar fungsi buttonPressed().

Tantangan kode opsional

Skrip dalam pelajaran ini juga dapat digunakan untuk menjaga pintu yang menjaga pemain di luar dari area tertentu. Latih keterampilan pemrograman Anda dan lakukan hal mengikuti:

  • Buat bagian pintu.
  • Buat tombol lebih jauh dari pintu.
  • Ubah skrip dalam pelajaran ini sehingga membuat pintu berubah transparansi dan sehingga pemain tidak bisa bertabrakan dengannya.

Versi Anda mungkin terlihat seperti ini:


local button = script.Parent
-- Pengingat: Ganti nama bagian, Gerbang, dengan yang ada di proyek Anda
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Mengubah tombol menjadi merah untuk memberikan umpan masukanpemain
button.BrickColor = BrickColor.Red() -- UBAH INI
-- Jadikan gerbang tidak terlihat
gate.Transparency = 1
-- Membuatnya sehingga pemain dapat berjalan melalui gerbang
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)