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.
Üç parça oluşturun. Parçaların isimlerini, kaybolması gerektiği sırayla belirtin, Part1, Part2, Part3.
ServerScriptService'de, yeni bir senaryo girin ve parçaları depolamak için bir matris oluşturun.
local pathArray = {}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.
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.5local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3}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 doendYani 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 dotask.wait(VANISH_RATE)endBir 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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endYolunuzun 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.
İ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 dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1endtask.wait(1)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ınfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endTü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.
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 silfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Yolun tekrar görünmesi için bir saniye bekletask.wait(1)-- Tüm parçaları yeniden yürüyecek şekilde yolu sıfırlayınfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endendTü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.0local pathArray = {workspace.Part1,workspace.Part2,workspace.Part3,}while true do-- Bir parçayı matrisinden silfor partIndex = 1, #pathArray dotask.wait(VANISH_RATE)local whichPart = pathArray[partIndex]whichPart.CanCollide = falsewhichPart.Transparency = 1end-- Yolun tekrar görünmesi için bir saniye bekletask.wait(1.0)-- Tüm parçaları yeniden yürüyecek şekilde yolu sıfırlayınfor partIndex = 1, #pathArray dolocal whichPart = pathArray[partIndex]whichPart.CanCollide = truewhichPart.Transparency = 0endend
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.
Çalışma Alanında, PartsFolder adında bir klasör oluşturun. İstediğiniz kadar parça ekleyin.
ServerScriptService'de, yeni bir senaryo oluşturun ve klasöre referans verin.
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ı listelerlocal partsArray = partsFolder:GetChildren()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ı listelerlocal partsArray = partsFolder:GetChildren()-- Matris içindeki her bir parçaya parçacıklar eklerfor index, part in ipairs(partsArray) dolocal particles = Instance.new("ParticleEmitter")particles.Parent = partend
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.