Matriksi dapat dikombinasikan dengan loop, seperti saat dan untuk , untuk mengulangi kode yang sama untuk setiap nilai yang diindeks. Misalnya, mengirim setiap pemain di matriks ke tempat baru atau membuat matriksi bagian menangkap api.
Untuk menjelajahi looping melalui array, buat jalan jembatan yang menghilang di mana bagian ditempatkan ke dalam array dan kemudian dibuat untuk menghilang satu per satu.
Looping melalui Array
Untuk proyek, temukan atau buat set tiga bagian untuk memudar. Semua bagian harus diancang.
Buat tiga bagian. Beri nama bagian dalam urutan mereka harus menghilang, Part1, Part2, Part3.
Di ServerScriptService, sisipkan script baru dan buat array untuk menyimpan bagian.
local pathArray = {}Pada satu baris masing-masing, tulis nama bagian dalam urutan mereka harus menghilang. Menggunakan baris baru untuk setiap nilai membuat lebih mudah dilihat.
local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}
Menggunakan untuk Loop Dengan Array
Gunakan for loop untuk pergi melalui array dan mengontrol seberapa cepat bagian harus menghilang dalam urutan bagian diindeks dalam array.
Untuk mengontrol frekuensi penghilangan bagian dalam beberapa detik, buat variabel bernama VANISH_RATE . Untuk pengujian, lebih baik tetapnya ke angka kecil.
local VANISH_RATE = 1.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}Buat for loop dengan item mengikuti: Mulai:partIndex = 1, indeks dari nilai pertama dalam array. Akhir:2>#pathArray2>, ukuran dari array itu.
for partIndex = 1, #pathArray doendJadi ada kelambatan sebelum bagian menghilang, dalam loop, tambahkan task.wait() menggunakan VANISH_RATE .
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)endUntuk mendapatkan bagian yang menghilang, buat variabel baru bernama whichPart dan tetapkan partsArray[partIndex] . Kemudian, untuk menghilangkan bagian itu, tetapkan CanCollide property ke false dan 1> Transparency1> ke 1.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endPeriksa bagian dari jalan menghilang saat waktu berjalan.
Tips Troubleshoot
Jika jembatan tidak menghilang, periksa masalah yang mungkin di bawah ini: Masalah: Bagian hilang terlalu cepat atau semuanya hilang pada mulai.
- Tergantung pada seberapa cepat karakter Anda memuat ke dalam pengalaman, bagian pertama mungkin sudah tidak terlihat. Untuk mengatasi ini, tambahkan tunggu kecil, seperti task.wait(2) , di awal script.
Mengkode Loop Kedua
Saat ini, bagian-bagian itu menghilang selamanya. Untuk membuat mereka muncul kembali, buat waktu kedua untuk loop yang akan pergi melalui setiap bagian dan segera membuat setiap bagian berjalan.
Setelah lompatan pertama, tambahkan task.wait() untuk menciptakan penundaan singkat sebelum jalan rute muncul lagi.
for partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)Pada dirimu sendiri , cobalah untuk mencoba mencoding lintasan yang dapat digunakan kembali dengan mengubah setiap bagian's CanCollide property menjadi benar dan Transparency menjadi 0. Saat selesai, periksa pekerjaan Anda terhadap kode di bawah ini.
-- Atur ulang jalan dengan membuat semua bagian berjalan lagifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endUji proyek untuk mengonfirmasi bahwa setelah semua bagian menghilang, mereka kembali.
Berulang dengan Loop Sementara
Bagian-bagian itu menghilang dan muncul kembali, tetapi hanya sekali. Untuk membuat kode terus diulang, gulir semua kode dalam beberapa waktu.
Pada bagian bawah dari script, buat yang baru sementara benar do loop. Kemudian, pindahkan kedua untuk loop ke dalam while loop.
while true do-- Hapus bagian dari array untuk menghilangkanfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Tunggu beberapa detik sebelum membuat jalan itu muncul lagitask.wait(1)-- Atur ulang jalan dengan membuat semua bagian berjalan lagifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendPeriksa bahwa setelah semua bagian menghilang, mereka muncul kembali.
Versi proyek yang selesai dapat diunduh.
Skrip yang selesai
local VANISH_RATE = 1.0local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}while true do-- Hapus bagian dari array untuk menghilangkanfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Tunggu beberapa detik sebelum membuat jalan itu muncul lagitask.wait(1.0)-- Atur ulang jalan dengan membuat semua bagian berjalan lagifor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
Matrix dan ipairs()
ipairs() digunakan dengan array . The "i" in ipairs() berdiri untuk "indeks." ipairs() dapat digunakan untuk mengulangi operasi pada banyak objek, seperti, katakan, direktori penuh dari bagian.
Ini akan diperlihatkan dengan menambahkan cepat partikel ke seluruh folder bagian.
Di Workspace, buat folder bernama PartsFolder. Tambahkan sebanyak bagian yang Anda suka.
Di ServerScriptService, Buat skrip baru dan referensikan folder.
Gunakan GetChildren() untuk mendapatkan daftar objek di direktori secara otomatis.
local partsFolder = workspace.PartsFolder-- Mendapatkan daftar bagian di PartsFolderlocal partsArray = partsFolder:GetChildren()Gunakan in ipairs(ArrayToUse) dengan for loop untuk melewati partsArray dan menambahkan partikel.
Skrip yang selesai-- Mendapatkan daftar bagian di PartsFolderlocal partsArray = partsFolder:GetChildren()-- Menambahkan partikel ke setiap bagian dalam arrayfor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
Mainkan dan tonton partikel mengambang dari setiap bagian dalam folder.
Sintesis
Loop dapat dikombinasikan dengan array untuk bekerja dengan setiap jumlah nilai dengan cepat. Jika Anda ingin memiliki kontrol yang tepat atas apa yang terjadi pada beberapa bagian dan dalam urutan apa, sebuah array harus di-硬化 dengan nilai tertentu.
Untuk bekerja dengan banyak bagian di mana pesanan tidak masuk akal, GetChildren() dapat menciptakan matriksi anak objek. Menggunakan ipairs(), daftar dapat diiterasi cepat tanpa mengetahui ukuran matriksi.