Normalde, fonksiyonlar yalnızca içinde kodlanmış bilgileri kullanabilir. Ancak, bazen o bilginin ne olacağını önceden bilemeyebilirsiniz veya aynı fonksiyonu benzer birden fazla bilgi parçasıyla yeniden kullanabilmek istersiniz. Örneğin, bir fonksiyonu bir obby parkurunu en hızlı tamamlayan kişinin adını herkese dev harflerle göstermek için kullanmak isterseniz. Yarış sona ermeden gelecekteki kazananın adını bilemezsiniz.
Parametreler, fonksiyona daha sonra vermek istediğiniz bilgilerin yer tutucularıdır. Fonksiyona bilgi aktarmanıza izin veren pencereler gibidirler.
Bir tuzak kurmak için parametreleri ve olayları kullanma
Bu betik, dokunan her şeyi, diğer parçalar dahil, yok eden bir tuzak parçası oluşturacaktır. Ayarlamak için bir parametre kullanmanız gerekecek. Tuzak düşmeyecek şekilde sabitlemeyi unutmayın ve yanlışlıkla bir şeyleri yok etmeyin.
Yeni bir parça oluşturma
Dokunan her şeyi yok edecek bir parçanın ayarlanması gerekiyor.
- Hiçbir şeye dokunmayan yeni bir parça oluşturun. Eğer bir şeye dokunuyorsa, çok erken devreye girebilir.
- Explorer'da parçayı yeniden adlandırın: TrapPart.
- Parçayı Anchor (sabitleyin).
Betiği ayarlama
Tuzak parçasına atıfta bulunmak için değişkenler ve deneyim hiyerarşesi hakkında bildiklerinizi kullanın.
Tuzak parçasına yeni bir betik ekleyin. Betiği TrapScript olarak yeniden adlandırın.
Hello World'ü silin ve açıklayıcı bir yorum ekleyin.
Yorumun altında, betiğin anahtarına ulaşan yeni bir değişken oluşturun.
-- Anahtara dokunan her şeyi yok ederlocal trap = script.Parent
Bir parametre ile fonksiyon oluşturma
Tuzak, parça dokunan her şeyi yok etmek için bir fonksiyon kullanacaktır. İşe yaraması için, fonksiyonun parçaya neyin dokunduğunu bilmesi gerekir. Ve bu, parametreler kullanmak anlamına gelir. Parametreler, bir fonksiyonun adından sonra gelen () içinde yazılır. Görünümü şu şekildedir:
local function functionName(parameterName)
end
Parametre üzerinden geçen gerçek bilgiye argüman denir. onTouch() adında yeni bir fonksiyon oluşturacaksınız ve bu fonksiyon, tuzağa dokunan her şeyi izleyen objectTouched adında bir parametre alacak ve ardından dokunan kısmı yok edecektir.
Yerel bir fonksiyon oluşturun. Herhangi bir ismi olabilir, ancak bu derste onTouch kullanacağız.
local trap = script.Parentlocal function onTouch()end() içinde, parametre için bir isim yazın. Bu derste objectTouched kullanacağız.
local trap = script.Parentlocal function onTouch(objectTouched)endlocal function onTouch() ile end arasına bir print ifadesi oluşturun. Bunu, bir sonraki bölümde parçaya dokunan bir şey olup olmadığını kontrol etmek için kullanacaksınız.
local trap = script.Parentlocal function onTouch(objectTouched)print("Bir şey tuzağa dokundu")end
Fonksiyonu çağırmak için bir olay kullanma
Fonksiyonun, bir şey parçaya dokunduğunda çalışmasını istiyoruz. Bunu sağlamak için, fonksiyonu Touched olayına bağlayın. Olaylar, deneyim içerisinde önemli bir şey gerçekleştiğinde tetiklenen özel sinyallerdir. Bir oyuncunun bir parçaya dokunması veya sağlık kaybetmesi gibi. Bir fonksiyon bir olaya bağlandığında, olay gerçekleştiğinde fonksiyon çalışır.
Touched olayı, bir parçanın başka bir parçaya dokunduğunda tetiklenir ve oyuncuların etkileşimde bulunduğu düğmeler, tuzaklar ve diğer nesneleri oluşturmak için kullanılabilir.
Fonksiyonun end'inin altına trap.Touched:Connect(onTouch) yazın.
local trap = script.Parentlocal function onTouch(objectTouched)print("Bir şey tuzağa dokundu")end-- Fonksiyonu Touched olayına bağlayıntrap.Touched:Connect(onTouch)Test'e tıklayın ve ardından parçaya dokunun. Test print ifadesini kontrol edin: Bir şey tuzağa dokundu. Eğer bu ifadeyi Çıktı penceresinde göremiyorsanız, aşağıdakileri kontrol edin:
- "Bir şey tuzağa dokundu!" ifadesinin local function onTouch() ile end arasında olduğundan emin olun.
- Touched'ın büyük harfle yazıldığını kontrol edin.
Fonksiyon doğru bir şekilde ayarlandığında, dokunan her şeyi yok etmek için kullanın. Fonksiyonda, string'den sonra objectTouched:Destroy() yazın. Tamamlanan kod şu olmalıdır:
local trap = script.Parentlocal function onTouch(objectTouched)print("Bir şey tuzağa dokundu")-- Dokunan nesneyi yok etobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Tekrar test edin ve parçaya dokunulduğunda ne olduğunu görün. Avatarınızın ayakları veya kolları eksik olmalıdır. Eğer parça avatarın başına veya boynuna dokunursa, tamamen yok olabilir.
Özet
Parametreler, fonksiyonun göremediği (kapsam dışında) bilgileri bir fonksiyona geçmek için kullanılır. Bu arada, olaylar, deneyim içerisinde önemli bir şey gerçekleştiğinde tetiklenen özel sinyallerdir. Farklı nesnelerin farklı olayları vardır. Fonksiyonlar, her seferinde olay tetiklendiğinde çağrılacak şekilde olaylarla bağlanabilir. Bu küçük betik, bir fonksiyonu tuzağın Touched olayına bağladı ve tuzağa dokunanı parametre üzerinden aktardı.