Döngüleri pratik etmek için, zamanla daha parlak hale gelen ve ardından solan bir lamba oluşturacaksınız. Bu script daha sonra bir projedeki başka ışıklara da uygulanabilir, ister bir sokak lambası ister parlayan bir kristal olsun.
Parçayı ve scripti ayarlayın
Lamba, bağlı bir ışık ve script ile bir parça olacaktır.
Işığı daha iyi görmek için, 3D dünyayı gece moduna geçirin. Explorer ⟩ Aydınlatma bölümünde ClockTime değerini 0 olarak değiştirin.

Lamba adında yeni bir parça veya model oluşturun.

Lambayı seçin ve bir ışık, örneğin PointLight veya SpotLight ekleyin. Parlayan lambayı oluşturmak için ışığın parlaklık özelliği ile çalışacaksınız.

Lamba içinde GlowScript adında yeni bir script ekleyin. Bu scriptte, lamba parçasını ve nokta ışığını saklamak için değişkenler oluşturun.
local lightPart = script.Parentlocal light = lightPart.SpotLightSonraki adımda, döngü her çalıştığında ışığın parlaklığının ne kadar değişeceğini tutacak bir değişken oluşturun. Ardından, döngünün yeniden çalışmadan önce kaç saniye bekleyeceği için başka bir değişken ekleyin.
-- Işığın parlaklığının her seferinde ne kadar değişeceğilocal brightnessChange = 1-- Işığın parlaklığının değişim sıklığılocal timeChange = 1
Lambayı parlatın
Lamba, birinin lambayı parlak hale getirmek için yukarı saydığı ve diğerinin de söndürmek için aşağıya saydığı iki for döngüsü kullanacaktır. Her for döngüsünün bir kontrol değişkeni olacak: currentBrightness. Böylece, for döngüsünün kontrol değişkeni yukarı ve aşağı doğru hareket ettikçe, ışığın parlaklığı da öyle olacaktır.
İlk döngü (ışığın artışı)
Unutmayın, bir for döngüsü for anahtar kelimesi ile başlar ve ardından bir kontrol değişkeni gelir. Bu script, ışığın parlaklık değerini kontrol değişkenindeki değere ayarlayacaktır.
Aşağıdaki değerleri kullanarak for döngüsünü kodlayın. Kontrol değişkeni ve son değerleri bir virgül ile ayırmayı unutmayın.
- 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 kapsamı içinde, ışığın parlaklık özelliğini kontrol değişkenindeki değere ayarlayın ve light.Brightness = currentBrightness yazın. Artık döngü çalıştığında ışık daha parlak hale gelecektir.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendDeğişimin bir anda olmasını istemediğiniz için, timeChange değerini kullanarak bir bekleme fonksiyonu ekleyin.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endDeneyimi çalıştırın ve ışığın her saniyede nasıl parlaklaştığını görün.
Eğer ilk döngüde zamanla parlaklık değişimini göremiyorsanız:
- light.Brightness = currentBrightness ifadesinin for döngüsünün do ve end kısımları arasında olduğundan emin olun.
- timeChange değerinin en az 1 veya daha yüksek olduğundan emin olun. Daha küçük sayılar parlaklığı faster değiştirecek ancak zamanla görmek daha zor olacaktır.
- For döngünüzün ilk satırının, kontrol değişkeni, son değer ve artış değeri arasında toplam iki virgül bulunduğundan emin olun.
İkinci döngü (ışığın azalması)
Işığı azaltmak için ikinci bir for döngüsü kullanın. Bu döngünün değerleri tersine dönecek, böylece ışık parlak başladığından her saniyede daha loş hale gelecektir.
Zamanla parlaklığı azaltan ikinci bir for döngüsü kodlayın. Çözüm aşağıdaki kod kutusundadır. Aşağıdaki değerleri kullanın:
- Kontrol Değişkeni - currentBrightness son döngüdeki 5 olarak ayarlanır.
- Son - 0, ışığı kapatacak.
- Artış - brightnessChange'i çıkarın.
-- İkinci döngü lambayı loşlaştırırfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endDeneyiminizi çalıştırın; ışığın nasıl parlaklaştığını ve sonra loşlaştığını göreceksiniz.
Işığın tekrar etmesini sağlayın
Şu anda, ışık sadece bir kez yanıp sönüyor. Lambanın sürekli olarak yanıp sönmesini sağlamak için, for döngüleri bir tekrar eden while döngüsünün içine yerleştirilecektir.
For döngülerinin altına, yeni bir while döngüsü oluşturun.
while true doendHer iki for döngüsünü de while döngüsünün içine yerleştirin. For döngülerini belli etmek için girintili yapın.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendDeneyimi çalıştırarak ışığın sürekli olarak nasıl parlayıp loşlaştığını görün.
Tamamlanmış ışık scripti
Aşağıda referans alabileceğiniz tamamlanmış bir script versiyonu vardır.
-- Bu lambaya bağlı ışığı saklarlightPart = script.Parentlight = lightPart.SpotLight-- Işığın parlaklığının her seferinde ne kadar değişeceğilocal brightnessChange = 1-- Işığın parlaklığının değişim sıklığılocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Işığı kapatacak ikinci döngüfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Özet
Bir projede karmaşık efektler oluşturmak için scriptler birden fazla döngü kullanabilir ve hatta farklı döngü türlerinin kombinasyonlarını içerebilir. Parlayan bir ışık kodlamak için, iki döngü bir while döngüsünün içine yerleştirilmiştir. Kodlayıcılar daha fazla döngü ekledikçe, kodun kolay okunabilir olmasını sağlamak için girintileri kontrol etmeyi unutmayın.