Döngüler ve diziler

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Diziler, her bir indeksli değer için aynı kodu tekrarlamak amacıyla while ve for gibi döngülerle birleştirilebilir. Örneğin, bir dizideki her oyuncuyu yeni bir yere teleport etmek veya bir parça dizisinin ateş almasını sağlamak.

Dizilerde döngü yapmayı keşfetmek için, parçaların bir diziye yerleştirildiği ve ardından birer birer kaybolduğu bir kaybolan köprü yolu oluşturun.

Bir dizide döngü yapma

Proje için, kaybolması gereken üç parçadan oluşan bir set bulun veya oluşturun. Parçaların hepsi sabitlenmiş olmalıdır.

  1. Üç parça oluşturun. Parçaları kaybolma sırasına göre adlandırın: Parça1, Parça2, Parça3.

  2. ServerScriptService içinde yeni bir script ekleyin ve parçaları saklamak için bir dizi oluşturun.

    local pathArray = {
    }
  3. Her bir parçanın adını kaybolma sırasına göre tek bir satıra yazın. Her değer için yeni bir satır kullanmak okunabilirliği artırır.

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

Bir dizi ile for döngüsü kullanma

Diziyi gezmek ve parçaların dizideki indeks sırasına göre ne kadar hızlı kaybolacağını kontrol etmek için bir for döngüsü kullanın.

  1. Bir parçanın kaç saniyede kaybolacağını kontrol etmek için VANISH_RATE adında bir değişken oluşturun. Test için, bunu küçük bir sayı olarak tutmak en iyisidir.

    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. Aşağıdaki gibi bir for döngüsü oluşturun: Başlangıç: partIndex = 1, dizideki ilk değerin indeksi. Bitiş: #pathArray, o dizinin boyutu.

    for partIndex = 1, #pathArray do
    end
  3. Bir parçanın kaybolmadan önce bir gecikme olması için döngüde task.wait() ekleyin ve VANISH_RATE kullanın.

    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Bir parçanın kaybolmasını sağlamak için whichPart adında yeni bir değişken oluşturun ve onu partsArray[partIndex] ile eşitleyin. Ardından, o parçayı kaybolması için CanCollide özelliğini false ve Transparency değerini 1 olarak ayarlayın.

    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Parçaların zamanla kaybolduğunu kontrol edin.

Sorun Giderme ipuçları

Eğer köprü kaybolmuyorsa, aşağıdaki olası sorunları kontrol edin:

Sorun: Parçalar çok hızlı kayboluyor veya hepsi baştan kaybolmuş durumda.

  • Karakterinizin oyuna ne kadar hızlı yüklendiğine bağlı olarak, ilk parçalar zaten görünmez olabilir. Bunu düzeltmek için, scriptin başında task.wait(2) gibi küçük bir bekleme ekleyin.

İkinci döngüyü kodlayın

Şu anda, parçalar sonsuza kadar kayboluyor. Onların yeniden görünmesini sağlamak için, her parçayı anında yürünebilir hale getirecek ikinci bir for döngüsü oluşturun.

  1. İlk döngüden sonra, yolun yeniden görünmesi için kısa bir gecikme oluşturmak amacıyla bir task.wait() ekleyin.

    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. Kendi başınıza, yolun yeniden kullanılabilir hale gelmesi için her parçanın CanCollide özelliğini true ve Transparency değerini 0 olarak değiştiren ikinci bir for döngüsü kodlamayı deneyin. İşiniz bittiğinde, kodunuzu aşağıdaki ile karşılaştırın.

    -- Yolu sıfırlamak için tüm parçaları yeniden yürünebilir hale getirin
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Projeyi test edin ve tüm parçalar kaybolduğunda geri geldiklerini doğrulayın.

While döngüsü ile tekrarlama

Parçalar kayboluyor ve yeniden görünüyor, ancak sadece bir kez. Kodun sürekli tekrar etmesini sağlamak için, tüm kodu bir while döngüsü içine yerleştirin.

  1. Scriptin en altına yeni bir while true do döngüsü oluşturun. Ardından, her iki for döngüsünü while döngüsüne taşıyın.

    while true do
    -- Diziden sırayla bir parçayı kaybolmasını sağla
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Yolun yeniden görünmesi için bir saniye bekle
    task.wait(1)
    -- Yolu sıfırlamak için tüm parçaları yeniden yürünebilir hale getirin
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Tüm parçalar kaybolduğunda, yeniden göründüklerini kontrol edin.

Projenin tamamlanmış bir versiyonu indirilebilir.

Tamamlanmış script
local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Diziden sırayla bir parçayı kaybolmasını sağla
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Yolun yeniden görünmesi için bir saniye bekle
task.wait(1.0)
-- Yolu sıfırlamak için tüm parçaları yeniden yürünebilir hale getirin
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Diziler ve ipairs()

ipairs() dizilerle kullanılır. ipairs() içindeki "i", "indeks" anlamına gelir. ipairs(), bir dizi dolusu nesne üzerinde hızlı bir şekilde bir işlemi tekrarlamak için kullanılabilir, örneğin, bir parça klasörü.

Bu, bir parça klasörüne hızlı bir şekilde parçacık ekleyerek gösterilecektir.

  1. Workspace içinde, PartsFolder adında bir klasör oluşturun. İstediğiniz kadar parça ekleyin.

  2. ServerScriptService içinde yeni bir script oluşturun ve klasörü referans alın.

  3. GetChildren() kullanarak, klasördeki tüm nesnelerin bir dizi listesini otomatik olarak alın.

    local partsFolder = workspace.PartsFolder
    -- PartsFolder'daki parçaların bir dizi listesini alır
    local partsArray = partsFolder:GetChildren()
  4. Parçacıkları eklemek için for döngüsünde in ipairs(ArrayToUse) kullanarak partsArray'i geçin.

    Tamamlanmış script
    -- PartsFolder'daki parçaların bir dizi listesini alır
    local partsArray = partsFolder:GetChildren()
    -- Dizideki her parçaya parçacık ekler
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Oyun test edin ve klasördeki her parçadan parçacıkların yükseldiğini izleyin.

Özet

Döngüler, dizilerle birden fazla değerle hızlı bir şekilde çalışmak için birleştirilebilir. Eğer birkaç parçanın ne olacağını ve hangi sırayla olacağını tam olarak kontrol etmek istiyorsanız, bir dizi belirli değerlerle kodlanmalıdır.

Sıralamanın önemli olmadığı birçok parça ile çalışmak için GetChildren() bir nesnenin çocuklarının bir dizisini oluşturabilir. ipairs() kullanarak, liste hızlı bir şekilde dizinin boyutunu bilmeden yineleyebilir.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.