Köpeler ve Matriseler

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

Matriseler iletişim kümesleri, örneğin while ve for ile aynı kodu tekrarlayabilir, her indeksli değer için aynı kodu tekrarlayabilir. Örneğin, bir oyuncuyu bir yere taşımak veya bir parçayı yakalamak için bir matrisi kaydır.

Geriye dönüşü arayanlar aracılığıyla dolaşımı keşfetmek için kayıplanan bir köprü yolunu oluşturun, böylece parçalar bir araya yerleştirilir ve ardından bir biri bir biri yok edilir.

Bir Matrisi Kullanarak Loop

Proje için, kaybolturmak için üç parçadan oluşan bir set bulun veya oluştur. Parçaların hepsi yerleştirilmiş olmalıdır.

  1. Üç parça oluşturun. Parçaların isimlerini, kaybolması gerektiği sırayla belirtin, Part1, Part2, Part3.

  2. ServerScriptService'de, yeni bir senaryo girin ve parçaları depolamak için bir matris oluşturun.


    local pathArray = {
    }
  3. Her satırda, parçaların görünmesi gerektiği sırayla adını yaz. Yeni bir satır için her değer için okunmasını kolaylaştırır.


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

Bir Matris ile Loop'a bir for kullanıyor

Bir for döngüsü kullanarak arayüzü geçerli kılın ve parçaların arayüz içindeki sıralama içinde kaç saniye içinde kaybolacağını kontrol edin.

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


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. takip edilenfor döngüsü oluşturun: Başlangıç: partIndex = 1 , arayanın ilk değerinin indeksi. Son: 1> #pathArray1> , arayanın boyutu.


    for partIndex = 1, #pathArray do
    end
  3. Yani bir parçanın kaybolmadan önce bir gecikme var, bu nedenle, task.wait() kullanarak VANISH_RATE değerini kullanarak bir gecikme ekleyin.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. Bir parçayı kaybolturmak için, whichPart adında yeni bir değişken oluşturun ve onu partsArray[partIndex] ile eşit olarak ayarlın. Sonra, o parçayı kaybolturmak için, CanCollide özelliğini 1>4> Transparency4> ile 1'e ayarlın.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. Yolunuzun bazı bölümlerinin zamanla kaybolduğundan emin olun.

Hata ayıklama ipuçları

Köprü görünmezse, aşağıdaki olası sorunları kontrol edin: Sorun:: Parçalar çok hızlı bir şekilde kayboluyor veya başlathepsi gitti.

  • Karakterinizin deneyime ne kadar hızlı yüklendiğine bağlı olarak, ilk bölümler zaten görünmez olabilir. Bunu ele almak için, task.wait(2) gibi küçük bir bekleyiciyi ekranın başlangıcında ekleyin.

İkinci Döngü Kodlanması

Şu anda, parçalar sonsuza kadar kaybolur. Onları yeniden oluşturmak için, her bir parçanın geçmesini sağlayacak bir dizi oluşturun.

  1. İlk döngüden sonra, yolun tekrar görünmeden önce kısa bir gecikme oluşturmak için bir Library.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. Kendiniz için , yolun tekrar kullanılabilir hale getirmesi için her bir parçanın CanCollide özelliğini gerçekleştirmeyi deneyin ve Transparency'ı 0 olarak değiştirin. Sonra işinizi aşağıdaki kodla test edin.


    -- Tüm parçaları yeniden yürüyecek şekilde yolu sıfırlayın
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. Tüm parçaların kaybolduğundan emin olmak için projeyi test edin.

Bir While Loop ile Tekrarlanıyor

Parçalar kaybolur ve tekrar görünür, ancak sadece bir kez. Kodu tekrar tekrar etmek için, tüm kodu bir süre döngüsünde gizleyin.

  1. Skriptin altındaki ayarlarda, doğru doğru yapılandırmayı oluşturun. sonra, her ikisi de while loop'a hareket edin.


    while true do
    -- Bir parçayı matrisinden sil
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- Yolun tekrar görünmesi için bir saniye bekle
    task.wait(1)
    -- Tüm parçaları yeniden yürüyecek şekilde yolu sıfırlayın
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. Tüm parçalar birden bire kaybolduğundan, yeniden göründüğünden emin olun.

Projenin tamamlanmış bir versiyonu indirilebilir.

Komplete edilen kript

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- Bir parçayı matrisinden sil
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- Yolun tekrar görünmesi için bir saniye bekle
task.wait(1.0)
-- Tüm parçaları yeniden yürüyecek şekilde yolu sıfırlayın
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

Matrisler ve ipairs()

ipairs() ile matrisler kullanılır. "i" ipairs() içindeki “0>索引0>” işlevi, bir dizinin parçalarından oluşan bir matrisin hızlı bir şekilde tekrarlanmasını sağlar.ipairs() bir dizinin parçalarından oluşan bir matrisin hızlı bir şekilde tekrarlanmasını sağlar.

Bu, hızlı bir şekilde katılardan bir bütün parçalara katılarak gösterilecektir.

  1. Çalışma Alanında, PartsFolder adında bir klasör oluşturun. İstediğiniz kadar parça ekleyin.

  2. ServerScriptService'de, yeni bir senaryo oluşturun ve klasöre referans verin.

  3. GetChildren() kullanınız bir klasördeki tüm nesneleri otomatik olarak bir liste almak için kullanınız.


    local partsFolder = workspace.PartsFolder
    -- Parçalar klasöründeki parçaları listeler
    local partsArray = partsFolder:GetChildren()
  4. Parçaları matrisi için döngüye kullanmak için in ipairs(ArrayToUse) ile kullanın.

    Komplete edilen kript

    -- Parçalar klasöründeki parçaları listeler
    local partsArray = partsFolder:GetChildren()
    -- Matris içindeki her bir parçaya parçacıklar ekler
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

Testi oynat ve katı parçaları klasörün her bir parçasından yükselmesini izle.

Özet

Koşullar birkaç değerle hızlı bir şekilde çalıştırılabilir. Eğer birkaç parçayı ve ne sırayla olduğunu doğru olarak kontrol etmek istiyorsanız, bir matrisin belirli değerlerle yeniden kodlanması gerekir.

Sıralamanın önemli olmadığı birçok parçada çalışmak için, GetChildren() bir objenin çocuklarının bir matrisini oluşturabilir. ipairs() kullanarak, liste çabucak içinde itilenebilir olabilir.