Looplar için uygulamalı olmak için, yavaş yavaş daha parlak hale gelen bir Lamba oluşturacaksınız ve ardından süre zarfında solgunacaksınız. Bu senaryo, bir caddede bir街 lambası veya parlak bir kristal olabilir.
Parça ve Skript'i ayarlama
Lamba, bağlı bir ışık veya kod ile bir parça olacaktır.
Işığı görmek daha kolay hale getirmek için oyun dünyasını gece olarak değiştirin. Explorer > Lighting > ClockTime'ı Işığı olarak değiştirin.
Lamb adında yeni bir parça veya model oluşturun.
Lambayı seçin ve bir ışık ekleyin, bir PointLight veya SpotLight gibi. Aydınlatma özelliği ışığın parlaklığını oluşturmak için çalışacaksınız.
Lampada, GlowScript adında yeni bir senaryo ekleyin. Bu senaryoda, lambayı ve nokta ışığını depolamak için ortaya çıkan değişkenleri oluşturun.
local lightPart = script.Parentlocal light = lightPart.SpotLightArdından, döngünün her seferinde ışığın parlaklığının ne kadar değişeceğini tutmak için bir değişken oluşturun. Sonra, döngülerin tekrar çalıştığından önce kaç saniye bekleyeceğini gösteren bir diğer değişken ekleyin.
-- Işığın parlaklığının her seferinde ne kadar değişeceğilocal brightnessChange = 1-- Işığın parlaklığını ne saniyede değiştireceğinilocal timeChange = 1
Lambayı Parlatmak
Lamba, bir toplam kullanacak, biri lampayı daha parlak hale getirmek için, diğeri ise onu solgun. Her bir for loop için bir kontrol değişkeni olan currentBrightness'i vardır. Bu yolla, for loop'un kontrol değişkeni yukarı ve aşağı giderken, ışığın parlaklığını artırır.
İlk Loop (Işık Artışı)
Unutmayın, bir for döngüsü, bir kontrol değişkeni ile başlayan for anahtar kelimesi ile başlar. Bu senaryo, ışığın kontrol değişkenine değerini ayarlar.
Aşağıdaki değerleri kullanarak for döngüsü için kod yazın. Kontrol değişkenlerini ve son değerleri ayırmak için bir boşlukla ayrılır.
- Kontrol Değişkeni : currentBrightness
- Başlangıç değeri : 0
- Son değer : 5
- Artış Değeri : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendFor döngüsünün içinde, ışığın parlaklığını kontrol değişkenine yazıp light.Brightness = currentBrightness değerine ayarlayın. Şimdi, döngü çalıştığında, ışığın parlaklığı daha da parlak hale gelir.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendDeğişiklik hemen olmaz, timeChange değerini kullanarak bir bekleme işlevi ekleyin.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endOyunu çalıştırın ve parlaklığın her saniye artışını görün.
İlk döngüde parlaklığın zamanla değişimini göremiyorsanız:
- light.Brightness = currentBrightness iletişiminin devre dışı bırakıldığından emin olun.
- En az 1 veya daha yüksek timeChange olup olmadığını kontrol edin. Daha küçük sayılar parlaklığı daha hızlı değiştirir, ancak uzun süreli olarak görünür.
- Kontrol değişkeni, son değeri ve artırım değerini ayrı tutan iki tane toplam virgülü olduğundan emin olun.
İkinci Boşluk (Işık Azalması)
Işığı söndürmek için bir saniye kullanın. Bu saniyenin değerleri ışığın parlaklığını artırır ve her saniye daha da parlak hale gelir.
Zamanla parlaklığı azaltan bir ikinci kodu kod kutusunda kodlayın. Çözüm aşağıdaki kod kutusunda yer alıyor. Aşağıdaki değerleri kullanın:
- Kontrol Değişkeni - currentBrightness 5'e ayarlandı, son döngünün sonu.
- Sona gitmek - 0, ışığı kapatıyor.
- Artışı - brightnessChange 'i azaltın.
-- İkinci tur sönecek lambasıfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endoyunçalıştırın; ışığın parlaklığını görmelisiniz ve sonra solgun.
Işığı Tekrarlanmasını Sağlamak
Şu anda, ışığın sadece bir kez açılıp kapanmasına izin verilir. Lambayı sürekli olarak parlatmak için, for döngüleri bir döngü içinde yerleştirilir.
For döngüleri altında, yeni bir while döngüsü oluşturun.
while true doendHer ikisini de bir while döngüsünde yerleştirin. while döngüsünden ayrılabilmeleri için for döngüleri aralarına boşluk ayarlayın.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendIşığın parlak ve solgun olduğunu görmek için oyunu çalıştırın.
Bitirilmiş Işık Kısmı
Skriptin bitirilmiş bir versiyonu aşağıda referanslanabilir.
-- Bu Lambaya bağlı olan ışığı depolarlightPart = script.Parentlight = lightPart.SpotLight-- Işığın parlaklığının her seferinde ne kadar değişeceğilocal brightnessChange = 1-- Işığın parlaklığını ne saniyede değiştireceğinilocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Işığı kapatmak için ikinci döngüfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Özet
Bir projede karmaşık etkiler oluşturmak için, kodlayıcılar çeşitli tip ve boyutlu kodların kombinasyonlarını ve hatta kodların birbirine katlanmasını kullanabilir. Bir parlayan ışığı kodlamak için, kodlayıcılar daha fazla kod ekledikçe, okunabilirliği artırmak için kodun içine yerleştirmeyi gözden geçirin.