Untuk berlatih dengan loop for, Anda akan membuat sebuah lampu yang secara bertahap bersinar lebih terang dan kemudian redup seiring waktu. Skrip ini kemudian dapat diterapkan pada lampu lain dalam proyek, baik itu lampu jalan atau kristal yang bersinar.
Siapkan bagian dan skrip
Lampu akan menjadi bagian dengan lampu dan skrip yang terpasang.
Untuk memudahkan melihat lampu, ubah dunia 3D menjadi malam hari. Di Explorer ⟩ Lighting, ubah ClockTime menjadi 0.

Buat bagian atau model baru bernama Lamp.

Pilih Lamp, dan tambahkan lampu, seperti PointLight atau SpotLight. Anda akan bekerja dengan properti kecerahan lampu untuk membuat lampu yang bersinar.

Di dalam Lamp, tambahkan skrip baru bernama GlowScript. Dalam skrip itu, buat variabel untuk menyimpan bagian lampu dan lampu titik.
local lightPart = script.Parentlocal light = lightPart.SpotLightSelanjutnya, buat variabel untuk menyimpan seberapa banyak kecerahan lampu akan berubah setiap kali loop dijalankan. Kemudian, tambahkan variabel lain untuk berapa detik loop akan menunggu sebelum dijalankan lagi.
-- Seberapa banyak kecerahan lampu akan berubah setiap kalilocal brightnessChange = 1-- Seberapa sering dalam detik lampu akan berubah kecerahanlocal timeChange = 1
Buat lampu bersinar
Lampu akan menggunakan dua loop for, satu yang menghitung naik untuk membuat lampu lebih terang, dan satu yang menghitung turun untuk meredupkannya. Setiap loop for akan memiliki variabel kontrol yang disebut currentBrightness. Dengan cara itu, saat variabel kontrol loop for naik dan turun, begitu juga dengan kecerahan lampu.
Loop pertama (peningkatan cahaya)
Ingat, loop for dimulai dengan kata kunci for diikuti oleh variabel kontrol. Skrip ini akan mengatur nilai kecerahan lampu ke nilai dalam variabel kontrol.
Kodekan loop for menggunakan nilai berikut. Ingat untuk memisahkan variabel kontrol dan nilai akhir dengan koma.
- Variabel kontrol: currentBrightness
- Nilai awal: 0
- Nilai akhir: 5
- Nilai peningkatan: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendDalam lingkup loop for, atur properti kecerahan lampu ke nilai dalam variabel kontrol dengan mengetik light.Brightness = currentBrightness. Sekarang, ketika loop dijalankan, lampu akan menjadi lebih terang.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendAgar perubahan tidak terjadi sekaligus, tambahkan fungsi tunggu menggunakan nilai dalam timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endJalankan permainan untuk melihat lampu meningkat dalam kecerahan setiap detik.
Jika Anda tidak dapat melihat perubahan kecerahan seiring waktu dalam loop pertama:
- Pastikan bahwa light.Brightness = currentBrightness berada di antara do dan end dari loop for Anda.
- Periksa bahwa timeChange setidaknya 1 atau lebih tinggi. Angka yang lebih kecil akan membuat kecerahan berubah lebih cepat, tetapi lebih sulit untuk dilihat seiring waktu.
- Pastikan bahwa baris pertama dari loop for Anda memiliki dua koma total yang memisahkan variabel kontrol, nilai akhir, dan nilai peningkatan.
Loop kedua (penurunan cahaya)
Untuk meredupkan lampu, gunakan loop for kedua. Nilai dari loop ini akan dibalik sehingga lampu mulai terang dan setiap detik, menjadi lebih redup.
Kodekan loop for kedua yang mengurangi kecerahan seiring waktu. Solusinya ada di kotak kode di bawah ini. Gunakan nilai berikut:
- Variabel Kontrol - currentBrightness diatur ke 5, akhir dari loop terakhir.
- Akhir - 0, mematikan lampu.
- Peningkatan - kurangi brightnessChange.
-- Loop kedua meredupkan lampufor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endJalankan permainan Anda; Anda seharusnya melihat lampu menjadi lebih terang dan kemudian meredup.
Buat lampu berulang
Saat ini, lampu hanya menyala dan mati sekali. Untuk membuat lampu terus-menerus bersinar dan mati, loop for akan ditempatkan di dalam loop while yang berulang.
Di bawah loop for, buat loop while baru.
while true doendTempatkan kedua loop for di dalam loop while. Indentasi loop for untuk memudahkan membedakannya dari loop while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendJalankan permainan untuk melihat lampu menjadi terang dan redup secara terus-menerus.
Skrip lampu yang selesai
Versi selesai dari skrip dapat dirujuk di bawah ini.
-- Menyimpan lampu yang terpasang pada lampu ini
lightPart = script.Parent
light = lightPart.SpotLight
-- Seberapa banyak kecerahan lampu akan berubah setiap kali
local brightnessChange = 1
-- Seberapa sering dalam detik lampu akan berubah kecerahan
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Loop kedua untuk mematikan lampu
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endRingkasan
Untuk membuat efek kompleks dalam proyek, skrip dapat menggunakan beberapa loop, dan bahkan kombinasi dari berbagai jenis loop. Untuk mengkodekan lampu yang bersinar, dua loop bersarang di dalam loop while. Saat pengkode menambahkan lebih banyak loop, pastikan untuk memeriksa indentasi agar kode mudah dibaca.