Di Pengantar untuk pemrograman, Anda belajar bagaimana membuat perubahan dalam pengalaman dalam satu siklus seiring waktu.Bagaimana jika Anda ingin membuat perubahan berdasarkan perilaku pengguna? Dalam tutorial ini, Anda akan belajar cara membuat lantai lava yang mematikan yang membunuh pengguna saat mereka menginjaknya.
Membuat
Anda membutuhkan tempat di dunia Anda untuk menempatkan lava berbahaya.Jika Anda mengikuti kursus Pengantar pemrograman, lantai lava akan pas dengan baik di celah yang ditutupi oleh platform yang menghilang.
Sisipkan Part dan pindahkan ke tempat di duniamu. Namakan itu LavaFloor .
Sesuaikan ulang agar menutupi lantai ruang penutup.
Buat lantai terlihat lebih seperti lava dengan menetapkan properti Material ke Neon dan Color ke warna oranye.
Masukkan Skrip ke dalam bagian LavaFloor dan ganti namanya menjadi Kill .
Hapus kode default dan buat variabel untuk lava.
local lava = script.Parent
Hubungkan ke acara
Gunakan acara event untuk mendeteksi ketika pengguna menyentuh lava.Setiap bagian memiliki peristiwa Touched yang terbakar saat sesuatu menyentuhnya.Anda dapat hubungkan ke acara ini untuk menjalankan fungsi saat ditembak.
Deklarasikan fungsi baru yang disebut kill.
Akses ke acara Touched pada objek lava menggunakan dot, seperti properti: lava.Touched .
Panggil fungsi Connect pada acara Touched, menyampaikan kill() sebagai fungsi yang dipanggil saat bagian disentuh.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Kode apa pun yang Anda tulis di fungsi kill akan sekarang dijalankan kapan saja sesuatu menyentuh lava.Perhatikan bahwa kolom digunakan untuk fungsi , tidak dot - jangan khawatir mengapa pada saat ini, ingat saja perbedaannya.
Dapatkan bagian sentuhnya
Untuk membunuh pengguna, fungsi akan membutuhkan objek yang terkait dengan pengguna itu.Peristiwa bagian Touched dapat memberikan "bagian lain" yang menyentuhnya - tetapi hanya jika Anda memintanya dengan menjadikannya sebagai parameter fungsi.
Parameter adalah definisi tentang apa yang diharapkan fungsi terima saat dipanggil.Sebuah parameter dapat digunakan dalam fungsi seperti variabel lainnya.Anda dapat memberikan informasi ke parameter dengan memasukkannya dalam kurung ketika fungsi dipanggil.Para meteran didefinisikan dalam kurungan pada baris pertama fungsi.Buat parameter yang disebut untuk fungsi .
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Ketika fungsi kill dipanggil, parameter otherPart akan mewakili bagian yang menyentuh lantai lava, dan kode yang akan Anda tulis di fungsi akan dapat menggunakannya.
Karakter dan humanoid
Ketika pengguna menyentuh lava, Roblox dapat mendeteksi bagian tubuh spesifik pengguna yang menyentuhnya, seperti kaki kiri atau kaki kanan.Bagian ini ada di model karakter pengguna Karakter , yang berisi semua objek yang membentuk avatar pengguna dalam pengalaman, termasuk:
- Bagian tubuh individu pengguna seperti kepala, anggota tubuh, dan torso.
- Setiap pakaian dan aksesori yang dipakai oleh pengguna.
- The Humanoid , objek khusus yang berisi banyak properti terkait dengan pengguna, termasuk kesehatan pengguna.
- Bagian Akar Humanoid yang mengontrol gerakan pengguna.
Seperti yang disebutkan sebelumnya, bagian tubuh mana pun yang menyentuh lava adalah bagian dari model Karakter, jadi Anda bisa mendapatkan referensi ke karakter itu dengan otherPart.Parent .Buat variabel untuk menyimpan orang tua bagian yang menyentuh lantai lava.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Dari model karakter, Anda perlu mendapatkan objek Humanoid untuk membunuh pengguna.Anda dapat melakukan ini dengan fungsi FindFirstChild() - hanya berikan namanya hal yang Anda cari dan memberikan anak pertama yang cocok yang ditemukannya di objek itu.Panggil FindFirstChild() pada variabel partParent dengan "Humanoid" sebagai anak untuk menemukan, dan menyimpan hasilnya di variabel baru yang disebut humanoid .
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Periksa manusiaoid
Anda dapat dengan mudah memeriksa apakah Humanoid ditemukan menggunakan pernyataan jika .Kode dalam pernyataan if hanya akan dijalankan jika kondisi yang didefinisikan di baris pertama benar.
Ada berbagai operator yang dapat digunakan untuk membangun kondisi yang lebih kompleks yang akan Anda temui di kursus masa depan - untuk saat ini, cukup letakkan variabel humanoid di sana.Buat jika pernyataan dengan humanoid sebagai kondisi.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
Atur kesehatan karakter
Sekarang setelah Humanoid diperiksa, propertinya dapat diubah.Jika Anda mengatur properti Health nya menjadi 0 , Karakter yang terkait mati.Dalam tubuh pernyataan if, atur properti Health manusia ke 0.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
Dengan itu, lantai lava Anda selesai! Tes pengalaman Anda dan Anda harus menemukan bahwa lava mematikan Anda berhasil membunuh pengguna saat kontak.Coba gunakan lava Anda sebagai tantangan ekstra di obby, atau sebagai batas untuk dunia.
Kode kode
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)