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 kullanarak en hızlı obby parkurunu tamamlayan kişinin adını dev harflerle herkese göstermek istiyorsanız. Yarış sona erene kadar gelecekteki kazananın adını bilemezsiniz.
Parametreler, fonksiyona daha sonra vermek istediğiniz bilgilerin yer tutucularıdır. Onlar, fonksiyona bilgi aktarmanıza olanak tanıyan pencerelere benzer.
Bir tuzak kurmak için parametreleri ve olayları kullanma
Bu script, dokunan her şeyi, diğer parçalar da dahil olmak üzere, yok eden bir tuzak parçası oluşturacaktır. Bunu ayarlamak için bir parametre kullanmanız gerekecek. Tuzak düşmemesi ve istemeden şeyleri yok etmemesi için dikkatli olun.
Yeni bir parça oluşturma
Dokunan her şeyi yok edecek bir parça ayarlanması gerekiyor.
- Hiçbir şeye dokunmayan yeni bir parça oluşturun. Bir şeye dokunuyorsa, çok erken devreye girebilir.
- Explorer'da parçanın adını: TrapPart olarak değiştirin.
- Parçayı Anchor yapın.
Script'i ayarlama
Tuzak parçasını referans almak için değişkenler ve oyun hiyerarşisi hakkında bildiklerinizi kullanın.
Tuzak parçasına yeni bir script ekleyin. Script'in adını TrapScript olarak değiştirin.
Hello World'ü silin ve açıklayıcı bir yorum ekleyin.
Yorumun altında, script'in ebeveynini bulan yeni bir değişken oluşturun.
-- Ebeveynine dokunan her şeyi yok ederlocal trap = script.Parent
Parametreli bir fonksiyon oluşturma
Tuzak, dokunan her şeyi yok etmek için bir fonksiyon kullanacaktır. Çalışması için, fonksiyonun parçaya neyin dokunduğunu bilmesi gerekir. Bu da parametreler kullanmak anlamına gelir. Parametreler, bir fonksiyonun adından sonra gelen () içinde yazılır. Şöyle görünürler:
local function functionName(parameterName)
endParametre üzerinden aktarılan gerçek bilgiye argüman denir. onTouch() adında, tuzağa dokunan her şeyi takip edecek ve ardından dokunan parçayı yok edecek bir parametre olan objectTouched ile yeni bir fonksiyon oluşturacaksınız.
Yerel bir fonksiyon oluşturun. Herhangi bir isim verilebilir, ancak bu derste onTouch kullanılacaktır.
local trap = script.Parentlocal function onTouch()end() içinde, parametre için bir isim yazın. Bu derste objectTouched kullanılacaktır.
local trap = script.Parentlocal function onTouch(objectTouched)endlocal function onTouch() ile end arasında bir print ifadesi oluşturun. Bunu, bir şeyin parçaya dokunup dokunmadığını kontrol etmek için bir sonraki bölümde 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, oyunda bir şeylerin önemli olduğunda meydana gelen özel sinyallerdir. Farklı nesnelerin farklı olayları vardır. Fonksiyonlar, her seferinde olay tetiklendiğinde çağrılacak şekilde olaylara bağlanabilir.
Touched olayı, bir parçanın başka bir parçaya dokunduğunda tetiklenir ve butonlar, tuzaklar ve oyuncuların etkileşimde bulunduğu 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ğlatrap.Touched:Connect(onTouch)Teste tıklayın ve ardından parçaya dokunun. Test print ifadenizi 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, parçaya dokunan her şeyi yok etmek için kullanın. Fonksiyonun içinde, string'in ardından objectTouched:Destroy() yazın. Tamamlanmış kod şöyle 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ça dokunduğ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, normalde kapsam dışında (bir fonksiyonun göremediği yerlerde) olan bilgileri bir fonksiyona aktarmak için kullanılır. Bu arada, olaylar, oyunda önemli bir şey olduğunda tetiklenen özel sinyallerdir. Farklı nesnelerin farklı olayları vardır. Fonksiyonlar, her seferinde olay tetiklendiğinde çağrılacak şekilde olaylara bağlanabilir. Bu küçük script, bir fonksiyonu tuzağın Touched olayına bağladı ve tuzağa dokunanı parametre aracılığıyla aktardı.