Döngüler için pratik yapmak için, yavaş yavaş daha parlak parlayan bir lamba oluşturacaksınız ve ardından zamanla kararmaya başlayacak.Bu senaryo daha sonra bir projedeki diğer ışıklara uygulanabilir, sokak ışığı ya da parlayan kristal olsun.
Parçayı ve senaryoyu kurun
Lamba, bağlı bir ışık ve senaryo ile bir parça olacaktır.
Işığı görmek daha kolay olması için, oyun dünyasını gece zamanına değiştirin. Explorer > Aydınlatma > değiştir Saat zamanı 0'a.
Lamba adlı yeni bir parça veya model oluşturun.
Lambayı seçin ve bir ışık ekleyin, bir NoktaIşığı veya SpotIşığı gibi.Parlak ışığın parlaklık özelliğiyle bir parlayan lamba oluşturmak için çalışacaksınız.
Lamba'da, GlowScript adlı yeni bir senaryo ekleyin. Bu senaryoda, lamba parçasını ve nokta ışığını depolamak 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 tutan bir değişken oluşturun.Sonra, döngülerin tekrar çalışmadan önce kaç saniye bekleyeceğine dair başka bir değişken ekleyin.
-- Işığın parlaklığı her seferinde ne kadar değişeceklocal brightnessChange = 1-- Işık ne sıklıkla saniyeler içinde parlaklığı değiştireceklocal timeChange = 1
Lambayı parlat
Lamba iki döngü için kullanacaktır , biri lambayı daha parlak hale getirmek için, diğeri ise onu karartmak için sayıyor.Her döngü için bir kontrol değişkeni olan currentBrightness adlı bir değişken olacak.Bu şekilde, for döngüsünün kontrol değişkeni yukarı ve aşağı gittiğinde, ışığın parlaklığı da öyle olacaktır.
İlk döngü (ışık artışı)
Unutmayın, bir döngü anahtar kelime for ile başlar ve bir kontrol değişkeni takip eder.Bu kod, ışığın parlaklık değerini kontrol değişkenine değere ayarlayacaktır.
Kontrol değişkenini ve son değerleri virgülle ayırmayı unutmayın. İşte aşağıdaki değerleri kullanarak döngü için kodlayın.
- Kontrol değişkeni : currentBrightness
- Başlangıç değeri : 0
- Son değer : 5
- Artırma Değeri : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendfor döngüsünün kapsamında, ışığın parlaklık özelliğini kontrol değişkenindeki değere light.Brightness = currentBrightness yazarak ayarlayın.Şimdi, döngü çalıştığında, ışık daha parlak hale gelecek.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendBu nedenle değişiklik bir anda gerçekleşmez, timeChange 'deki değeri kullanarak bir bekleme işlevi ekleyin.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endHer saniye daha parlak hale gelen ışığı görmek için oyunu çalıştırın.
İlk döngüde süre boyunca parlaklık değişimini göremiyorsanız:
- light.Brightness = currentBrightness 'nin do ve for döngünün sonundan arasında olduğundan emin olun.
- timeChange en az 1 veya daha yüksek olduğundan emin olun. Daha küçük sayılar parlaklığı daha hızlı değiştirecek, ancak zamanla görülmesi daha zor olacak.
- Kontrol değişkeni, son değer ve artış değeri arasında birleştiren iki noktalı virgül bulunduğundan emin olun for döngüsünün ilk satırının kontrol değişkeni, son değer ve artış değeri ile ilgili olduğundan emin olun.
İkinci döngü (ışık azalması)
Işığı azaltmak için, döngü için ikinci bir saniye kullanın. Bu döngünün değerleri tersine çevrilecek, böylece ışık parlak başlayacak ve her saniye daha az parlak olacak.
Zamanla parlaklığı azaltan bir döngü kodu yazı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 sonuna 5 ayarlandı, 5.
- Sonu - 0, ışığı kapatıyor
- Artış - çıkar brightnessChange .
-- İkinci döngü karartma lambasıfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endoyunçalıştırın; ışığın parlaklaşıp sonra kararmasını görmelisiniz.
Işığı tekrarlatın
Şu anda, ışık yalnızca bir kez açılıp kapatılır.Lambanın sürekli olarak yanıp söndürülmesini sağlamak için, döngüler tekrarlayan bir döngü içine yerleştirilecektir.
for döngülerinin altında, yeni bir while döngüsü oluşturun.
while true doendHer ikisini de while döngüsünün içine yerleştirin. While döngülerini ayırt etmelerini kolaylaştırmak için for döngülerini indirin.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendIşığın sürekli olarak parlak ve kararmasını görmek için oyunu çalıştırın.
Işık senaryosu bitirildi
Senaryonun bitmiş bir versiyonu aşağıda referans olarak gösterilebilir.
-- Bu lamba ile bağlı ışığı depolarlightPart = script.Parentlight = lightPart.SpotLight-- Işığın parlaklığı her seferinde ne kadar değişeceklocal brightnessChange = 1-- Işık ne sıklıkla saniyeler içinde parlaklığı değiştireceklocal 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, senaryolar çoklu döngüleri ve hatta farklı türde döngü kombinasyonlarını kullanabilir.Parlayan bir ışığı kodlamak için, iki döngü bir while döngüsü içine yerleştirilir.Kodlama daha fazla döngü ekledikçe, kodun okunması kolay olması için satır aralarını kontrol ettiğinizden emin olun.