Döngüleri pratik etmek için, zamanla giderek daha parlak hale gelen ve sonra sönmeye başlayan bir lamba oluşturacaksınız. Bu script, bir projedeki herhangi bir ışığa, ister bir sokak lambası ister parlayan bir kristal olsun, uygulanabilir.
Parçayı ve scripti ayarlayın
Lamba, bir ışık ve script ile ilişkilendirilmiş bir parça olacaktır.
Işığı daha iyi görebilmek için 3D dünyayı gece moduna değiştirin. Explorer ⟩ Lighting kısmında ClockTime değerini 0 olarak değiştirin.

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

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

Lamba'ya 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.SpotLightSonra, 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ülerin tekrar ç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 ne sıklıkla değişeceği (saniye cinsinden)local timeChange = 1
Lambayı parlatın
Lamba, birini lambayı daha parlak hale getirmek için sayan ve diğerini sönmek için sayan iki for döngüsü kullanacaktır. Her for döngüsünün bir kontrol değişkeni olacak, bu değişkenin adı currentBrightness. Böylece, for döngüsünün kontrol değişkeni yukarı ve aşağı giderken, ışığın parlaklığı da öyle olacaktır.
İlk döngü (ışık 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 bitiş değerini bir virgül ile ayırmayı unutmayın.
- Kontrol değişkeni: currentBrightness
- Başlangıç değeri: 0
- Bitiş değeri: 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 ayarlamak için 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 olmaması için, timeChange değerini kullanarak bir bekleme fonksiyonu ekleyin.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endOyunu çalıştırın ve her saniye ışığın parlaklığının arttığı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ünüzün do ve end'inin 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ığın daha hızlı değişmesine neden olur, ancak zamanla görmek daha zor olabilir.
- For döngünüzün ilk satırında kontrol değişkeni, bitiş değeri ve artış değeri arasında toplam iki virgül olduğundan emin olun.
İkinci döngü (ışık azalması)
Işığı kısmak için, ikinci bir for döngüsü kullanın. Bu döngünün değerleri tersine çevrilecektir, böylece ışık parlak başlar ve her saniye daha az parlak hale gelir.
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ünün 5 değeri.
- Bitiş - 0, ışığı kapatmak.
- Artış - brightnessChange değerini çıkarın.
-- İkinci döngü lambayı kısarfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endOyununuzu çalıştırın; ışığın parladığını ve sonra sönmeye başladığını görmelisiniz.
Işığı tekrarlayın
Şu anda, ışık sadece bir kez açılıp kapanıyor. Lambanın sürekli olarak açılıp kapanmasını sağlamak için, for döngüleri bir tekrarlayan while döngüsü 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ü bir while döngüsünün içine yerleştirin. For döngülerini, while döngüsünden ayırt etmek için girintileyin.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendOyunu çalıştırın ve ışığın sürekli olarak parlak ve sönük hale geldiğini görün.
Tamamlanmış ışık scripti
Aşağıda referans alabileceğiniz tamamlanmış bir script versiyonu bulunmaktadır.
-- Bu lambaya bağlı ışığı saklar
lightPart = script.Parent
light = lightPart.SpotLight
-- Işığın parlaklığının her seferinde ne kadar değişeceği
local brightnessChange = 1
-- Işığın parlaklığının ne sıklıkla değişeceği (saniye cinsinden)
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Işığı kapatmak için ikinci döngü
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endÖzet
Bir projede karmaşık efektler oluşturmak için, scriptler birden fazla döngü ve hatta farklı döngü türlerinin kombinasyonlarını kullanabilir. Parlayan bir ışık kodlamak için, iki döngü bir while döngüsü içinde iç içe yerleştirilmiştir. Kodlayıcılar daha fazla döngü ekledikçe, kodun okunabilirliğini sağlamak için girintileri kontrol etmeyi unutmayın.