ループを練習するには、徐々に明るく光り、時間経過で薄くなるランプを作成します。このスクリプトは、街灯か輝くクリスタルなど、プロジェクトの他のライトに適用できます。
パーツとスクリプトを設定する
ランプは付属のライトとスクリプトの一部になります。
ライトを見やすくするために、ゲームワールドを 夜時間 に変更します。エクスプローラ > 照明 > で 時間クロック を 0に変更します。
ランプという名前の新しいパーツまたはモデルを作成します。
ランプを選択し、 ライト (ポイントライトまたはスポットライトなど)を追加します。光の明るさプロパティを使用して、輝くランプを作成します。
ランプでは、GlowScript という新しいスクリプトを追加します。そのスクリプトでは、ランプパーツとポイントライトを保存する変数を作成します。
local lightPart = script.Parentlocal light = lightPart.SpotLight次に、ループが実行されるたびに光の明るさがどの程度変化するかを保持する変数を作成します。次に、ループが再実行するまでどれくらいの秒待つかという別の変数を追加します。
-- 光の明るさが各回どのくらい変化するかlocal brightnessChange = 1-- 秒ごとにライトの明るさがどのくらい変わるかlocal timeChange = 1
ランプを光らせる
ランプは、2つの ループを使用します 、1つは明るくするためにカウントし、もう1つは暗くするためにカウントします。それぞれの for ループには、現在の明るさという制御変数があります。そのように、フォーループの制御変数が上下すると、光の明るさも上下します。
最初のループ (ライト増加)
覚えておいてください、for ループはキーワード for に続いてコントロール変数が含まれるように始まります。このスクリプトは、光の明るさ値を制御変数の値に設定します。
次の値を使用して for ループをコードします。制御変数と終了値をコンマで区切ることを忘れないでください。
- コントロール変数 : currentBrightness
- 開始値 : 0
- 終了値 : 5
- 増加値 : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendfor ループの範囲で、ライトの明るさプロパティを制御変数の値に light.Brightness = currentBrightness を入力して設定します。さあ、ループが実行されると、光はより明るくなります。
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendそのため、変更は一度に起こらないので、timeChange の値を使用して待機機能を追加します。
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endゲームを実行して、毎秒明るさが増加するライトを見る
最初のループで明るさの変化を見ることができない場合:
- Make sure that light.Brightness = currentBrightness は、for ループの開始と終了の間にあることを確認してください。
- timeChange が少なくとも 1 以上であることを確認します。小さな数字は明るさが変化するのが早くなりますが、時間経過で見るのが困難になります。
- for ループの最初の行にコントロール変数、終了値、増加値を分離する2つのコンマがあることを確認してください。
2番目のループ (ライト減少)
光を暗くするには、ループの 2番目を使用します。このループの値は逆になり、光は明るく始まり、それぞれの秒ごとに暗くなります。
時間経過による明るさを減少させるループのコードを 2番目に記述します。ソリューションは以下のコードボックスにあります。次の値を使用してください:
- コントロール変数 - currentBrightness 最後のループの終わりに 5 を設定。
- 終了 - 0、ライトを消す
- 増加 - 減算 brightnessChange。
-- 2番目のループダイムランプfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endゲームを実行してください; 光が明るくなり、次に暗くなるのが見えるはずです。
光を繰り返させる
現在、ライトは一度だけオンとオフになります。ランプを連続して点灯したり消したりするには、for ループが繰り返しループ内に配置されます。
for ループの下で、新しい while ループを作成します。
while true doendループ両方を while ループ内に配置します。ループを引き出して、 while ループから区別しやすくします。
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendゲームを実行して、ライトが連続して明るく暗くなるのを見る
ライトスクリプトを完了しました
スクリプトの完了したバージョンは以下で参照できます。
-- このランプに付属する光を保存するlightPart = script.Parentlight = lightPart.SpotLight-- 光の明るさが各回どのくらい変化するかlocal brightnessChange = 1-- 秒ごとにライトの明るさがどのくらい変わるかlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- 光を消すための2番目のループfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
概要
プロジェクトで複雑な効果を作成するには、スクリプトは複数のループを使用し、異なる種類のループの組み合わせさえ使用できます。輝くライトをコードするには、2つのループが while ループ内にネストされます。コーダーがより多くのループを追加すると、コードを既読みやすくするためにインデントをチェックするようにしてください。