Lingkaran dan array

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

Arrays dapat dikombinasikan dengan loop, seperti saat dan untuk , untuk mengulangi kode yang sama untuk setiap nilai indeks.Sebagai contoh, teleportasi setiap pemain dalam array ke tempat baru atau membuat array bagian menangkap api.

Untuk menjelajahi loop melalui array, buat jalur jembatan yang menghilang di mana bagian ditempatkan ke dalam array dan kemudian dibuat untuk menghilang satu per satu.

Lingkaran melalui array

Untuk proyek, temukan atau buat satu set tiga bagian untuk menghilang. Semua bagian harus diberi pijakan.

  1. Buat tiga bagian. Nama bagian dalam urutan yang seharusnya menghilang, Bagian1, Bagian2, Bagian3.

  2. Di ServerScriptService, sisipkan skrip baru dan buat array untuk menyimpan bagian.


    local pathArray = {
    }
  3. Pada satu baris masing-masing, ketik nama bagian dalam urutan yang seharusnya menghilang. Menggunakan baris baru untuk setiap nilai memudahkan dilihat.


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

Gunakan loop for dengan array

Gunakan loop for untuk melalui array dan mengontrol seberapa cepat bagian harus menghilang dalam urutan bagian diindeks dalam array.

  1. Untuk mengontrol seberapa sering suku menghilang dalam beberapa detik, buat variabel bernama VANISH_RATE . Untuk pengujian, lebih baik menyimpannya menjadi angka kecil.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Buat loop dengan hal mengikuti: Mulai: partIndex = 1 , indeks dari nilai pertama dalam array. Akhir: #pathArray , ukuran array itu.


    for partIndex = 1, #pathArray do
    end
  3. Jadi ada penundaan sebelum bagian menghilang, dalam loop, tambahkan task.wait() menggunakan VANISH_RATE .


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Untuk mendapatkan bagian yang menghilang, buat variabel baru bernama whichPart dan atur sebagai sama dengan partsArray[partIndex] .Kemudian, untuk menghilangkan bagian itu, atur propertinya CanCollide ke false dan Transparency ke 1.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Periksa apakah bagian dari jalur menghilang seiring waktu.

Tip pemecahan masalah

Jika jembatan tidak menghilang, periksa masalah yang mungkin di bawah ini: Masalah: Suku cadang menghilang terlalu cepat atau semua hilang di mulai.

  • Tergantung pada seberapa cepat karakter Anda dimuat ke dalam pengalaman, bagian pertama mungkin sudah tidak terlihat.Untuk mengatasi ini, tambahkan tunggu kecil, seperti task.wait(2) , di awal skrip.

Kode loop kedua

Saat ini, bagian-bagian menghilang selamanya.Untuk membuat mereka muncul kembali, buat loop kedua yang akan melalui setiap bagian dan segera membuat setiap bagian dapat ditempuh.

  1. Setelah loop pertama, tambahkan task.wait() untuk membuat penundaan singkat sebelum jalur muncul kembali.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. Secara mandiri , coba kodekan loop kedua yang membuat jalur dapat digunakan lagi dengan mengubah properti CanCollide setiap bagian menjadi benar dan Transparansi menjadi 0.Saat selesai, periksa karya Anda terhadap kode di bawah ini.


    -- Atur ulang jalur dengan membuat semua bagian dapat ditempuh lagi
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Uji proyek untuk mengkonfirmasi bahwa setelah semua bagian menghilang, mereka kembali.

Ulangi dengan loop while

Bagian-bagian menghilang dan muncul kembali, tetapi hanya sekali. Untuk membuat kode terus diulang, sarangkan semua kode dalam loop while.

  1. Di bagian bawah skrip, buat loop while baru sementara benar. Kemudian, pindahkan keduanya ke loop while .


    while true do
    -- Buat bagian menghilang dari array dalam urutan
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Tunggu selama satu detik sebelum membuat jalur muncul kembali
    task.wait(1)
    -- Atur ulang jalur dengan membuat semua bagian dapat ditempuh lagi
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Periksa bahwa setelah semua bagian menghilang, mereka muncul kembali.

Versi selesai proyek dapat diunduh.

Skrip selesai

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Buat bagian menghilang dari array dalam urutan
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Tunggu selama satu detik sebelum membuat jalur muncul kembali
task.wait(1.0)
-- Atur ulang jalur dengan membuat semua bagian dapat ditempuh lagi
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

배열 dan ipairs()

ipairs() digunakan dengan array .The "i" di ipairs() berarti "indeks." ipairs() dapat digunakan untuk cepat mengulangi operasi pada banyak objek, seperti, katakanlah, sebuah folder penuh dengan bagian.

Ini akan ditunjukkan dengan cepat menambahkan partikel ke seluruh folder bagian.

  1. Di Ruang Kerja, buat folder bernama PartsFolder. Tambahkan sebanyak bagian yang Anda suka.

  2. Di ServerScriptService, Buat skrip baru dan referensikan folder.

  3. Gunakan GetChildren() untuk secara otomatis mendapatkan daftar array yang berisi semua objek di folder.


    local partsFolder = workspace.PartsFolder
    -- Mendapatkan array yang mencantumkan bagian di PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. Gunakan in ipairs(ArrayToUse) dengan loop for untuk melalui partsArray dan menambahkan partikel.

    Skrip selesai

    -- Mendapatkan array yang mencantumkan bagian di PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- Menambahkan partikel ke setiap bagian dalam array
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Tes uji dan tonton partikel mengambang dari setiap bagian di folder.

Singkatan

Lingkaran dapat dikombinasikan dengan array untuk bekerja dengan berapa pun nilai cepat.Jika Anda ingin memiliki kontrol yang tepat atas apa yang terjadi pada beberapa bagian dan dalam urutan apa, array harus dikodekan keras dengan nilai spesifik.

Untuk bekerja dengan banyak bagian di mana pesanan tidak penting, GetChildren() dapat membuat array anak-anak objek.Memanfaatkan ipairs() , daftar dapat diulang dengan cepat tanpa mengetahui ukuran array.