Loop dan array

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

Array dapat dikombinasikan dengan loop, seperti while dan for, untuk mengulangi kode yang sama untuk setiap nilai yang terindeks. Misalnya, teleportasi setiap pemain dalam array ke tempat baru atau membuat array bagian terbakar.

Untuk mengeksplorasi pengulangan melalui array, buatlah jalur jembatan yang menghilang di mana bagian-bagian dimasukkan ke dalam array dan kemudian dihilangkan satu per satu.

Loop melalui array

Untuk proyek ini, temukan atau buatlah satu set tiga bagian untuk dihilangkan. Bagian-bagian tersebut harus semuanya dipasang (anchored).

  1. Buat tiga bagian. Nama bagian dengan urutan bagaimana mereka harus menghilang, Part1, Part2, Part3.

  2. Di ServerScriptService, masukkan skrip baru dan buatlah array untuk menyimpan bagian-bagian.


    local pathArray = {
    }
  3. Dalam satu baris, ketik nama bagian dengan urutan bagaimana mereka harus menghilang. Menggunakan baris baru untuk setiap nilai membuatnya lebih mudah dibaca.


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

Gunakan for loop dengan array

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

  1. Untuk mengontrol seberapa sering bagian menghilang dalam detik, buatlah variabel bernama VANISH_RATE. Untuk pengujian, sebaiknya pertahankan pada angka kecil.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Buatlah for loop dengan yang berikut: Mulai: partIndex = 1, indeks nilai pertama dalam array. Akhir: #pathArray, ukuran dari array tersebut.


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


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Untuk membuat bagian menghilang, buatlah variabel baru bernama whichPart dan setel sama dengan pathArray[partIndex]. Kemudian, untuk menghilangkan bagian tersebut, setel properti CanCollide menjadi false dan Transparency menjadi 1.


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

Tips pemecahan masalah

Jika jembatan tidak menghilang, periksa masalah yang mungkin terjadi di bawah ini:

Masalah: Bagian menghilang terlalu cepat atau semuanya hilang di awal.

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

Kode loop kedua

Sekarang, bagian menghilang selamanya. Untuk membuatnya muncul kembali, buatlah loop for kedua yang akan melalui setiap bagian dan segera membuat setiap potongan dapat dilalui.

  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. Sendiri cobalah untuk mengkodekan loop for kedua yang membuat jalur dapat digunakan lagi dengan mengubah properti CanCollide setiap bagian menjadi true dan Transparency menjadi 0. Setelah selesai, periksa pekerjaan Anda dengan kode di bawah ini.


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

Ulangi dengan while loop

Bagian menghilang dan muncul kembali, tetapi hanya sekali. Untuk membuat kode terus mengulang, nesting semua kode di dalam while loop.

  1. Di bagian bawah skrip, buatlah while true do loop baru. Kemudian, pindahkan kedua for loop ke dalam while loop.


    while true do
    -- Buat bagian menghilang dari array secara berurutan
    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)
    -- Reset jalur dengan membuat semua bagian dapat dilalui 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.

Sebuah versi selesai dari 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 secara berurutan
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)
-- Reset jalur dengan membuat semua bagian dapat dilalui lagi
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Array dan ipairs()

ipairs() digunakan dengan array. "i" dalam ipairs() berdiri untuk "indeks." ipairs() dapat digunakan untuk cepat mengulangi operasi pada banyak objek, seperti, misalnya, sebuah folder penuh dengan bagian.

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

  1. Di Workspace, buat folder bernama PartsFolder. Tambahkan sebanyak mungkin bagian yang Anda suka.

  2. Di ServerScriptService, buat skrip baru dan referensikan folder tersebut.

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


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

    Skrip selesai

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

Ujilah permainan dan saksikan partikel melayang dari setiap bagian dalam folder.

Ringkasan

Loop dapat digabungkan dengan array untuk bekerja dengan sejumlah nilai dengan cepat. Jika Anda ingin memiliki kontrol yang tepat atas apa yang terjadi pada beberapa bagian dan dalam urutan apa, array harus dikodekan secara keras dengan nilai tertentu.

Untuk bekerja dengan banyak bagian di mana urutan tidak masalah, GetChildren() dapat membuat array dari anak-anak suatu objek. Dengan memanfaatkan ipairs(), daftar dapat dengan cepat diiterasi tanpa mengetahui ukuran array.

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.