Um Loop-Übungen zu üben, wirst du eine Lampe erstellen, die langsam heller wird und dann über Zeit dunkler wird. Dieses Skript kann dann auf alle anderen Lichter in einem Projekt angewendet werden, egal ob es sich um eine Straßenlaterne oder einen glühenden Kristall handelt.
Teil und Skript einrichten
Die Lampe wird ein Teil mit einem beigefügten Licht und Skript, das. PL: die Skriptssein.
Um es einfacher zu sehen, ändern Sie die Spielwelt in Nacht . In der Explorer > Beleuchtung > ändern Sie ClockTime auf 0.
Erstellen Sie ein neues Teil oder Modell namens Lamp.
Wählen Sie Lamp und fügen Sie ein Licht hinzu, wie z. B. ein PointLight oder SpotLight. Sie arbeiten mit der Helligkeits属性 des Lichts, um eine glühende Lampe zu erstellen.
In Lamp fügen Sie ein neues Skript hinzu, das GlowScript heißt. In diesem Skript, das. PL: die Skriptserstellen Sie Variablen, um die Lampe und das Spotlicht zu speichern.
local lightPart = script.Parentlocal light = lightPart.SpotLightDanach erstellen Sie eine Variable, um zu halten, wie viel die Helligkeit des Lichts jedes Mal ändern wird, wenn der Loop läuft. Dann fügen Sie eine weitere Variable hinzu, wie viele Sekunden die Loops warten, bevor sie erneut ausgeführt werden.
-- Wie hell die Beleuchtung jedes Mal heller wirdlocal brightnessChange = 1-- Wie oft in Sekunden die Beleuchtung die Helligkeit ändern wirdlocal timeChange = 1
Lampen-Glow erstellen
Die Lampe verwendet zwei für Schleifen , eine, die die Lampe heller macht, und eine, die sie dunkler macht. Jede für Schleife wird eine Kontroll variablen namens currentBrightness haben. Auf diese Weise, wenn die Schleife kontroll variablen steigt und fällt, so wird die Helligkeit des Lichts.
Erster Loop (Licht Erhöhung)
Denken Sie daran, dass ein for-Loop mit der Schlüsselwörter-for beginnt, gefolgt von einer Kontroll variablen. Dieses Skript wird den Helligkeitswert des Lichts in der Kontroll variablen einstellen.
Code the for loop using the following values. Remember to separate the Control Variable und Endwerte with a Comma.
- Variable Steuerelemente : currentBrightness
- Startwert : 0
- Endwert : 5
- Increment Value : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendIn der Loop-Anpassung, setzen Sie die Helligkeits属性 des Lichts auf den Wert in der Steuervariable durch Schreiben von light.Brightness = currentBrightness. Wenn die Loop-Anpassung ausgeführt wird, wird das Licht heller.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendSo geschieht die Änderung nicht allzu schnell, füge eine Wartefunktion hinzu, die den Wert in timeChange verwendet.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie das Spiel aus, um die Helligkeitssteigerung in der Sekunde zu sehen.
Wenn Sie die Helligkeitsänderung im Laufe der Zeit nicht sehen können:
- Stellen Sie sicher, dass light.Brightness = currentBrightness zwischen dem Do- und End-Ihrer For-Schleife ist.
- Stellen Sie sicher, dass timeChange mindestens 1 oder höher ist. Smaller Nummern werden die Helligkeitsänderung schneller, aber schwieriger zu sehen im Laufe der Zeit.
- Stellen Sie sicher, dass die erste Zeile Ihres For Loop zwei Gesamtkommas hat, die die Kontroll variablen, Endwert und Inkrementwert trennen.
Zweiter Loop (Leichte Reduzierung)
Um das Licht zu dimmen, verwenden Sie eine Sekunde für Loop. Die Werte dieses Loops werden umgekehrt, so dass das Licht hell und jede Sekunde heller wird.
Code eine Sekunde für Loop, der die Helligkeit im Laufe der Zeit reduziert. Die Lösung ist in der Code-Box unten. Verwenden Sie die folgenden Werte:
- Variable Steuerung - currentBrightness auf 5 gesetzt, das Ende des letzten Loops.
- Ende - 0, das Licht auszuschalten.
- Increment - subtrahieren Sie brightnessChange.
-- Zweiter Loop-Dim-Lampefor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie Ihr Spiel aus; Sie sollten das Licht hell sehen und dann schwach.
Das Licht wiederholen
Derzeit schaltet sich die Beleuchtung nur einmal ein und aus. Um die Lampe kontinuierlich zu hellen und zu dunkeln, werden die Loop-Fürschaltungen in einem wiederholten Muster platziert.
Unter den for Loops erstellen Sie einen neuen while Loop.
while true doendPlatziere beide für Loop-Schleife in einer while-Schleife. Platzieren Sie die Loop-Schleife, um sie vom while-Schleife leichter zu trennen zu können.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendFühren Sie das Spiel aus, um das Licht hell und dunkel zu sehen.
Fertiges Licht-Skript
Eine fertige Version des Skripts kann unten verwendet werden.
-- Speichert das Licht, das an dieser Lampe angehängt istlightPart = script.Parentlight = lightPart.SpotLight-- Wie hell die Beleuchtung jedes Mal heller wirdlocal brightnessChange = 1-- Wie oft in Sekunden die Beleuchtung die Helligkeit ändern wirdlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Zweiter Loop, um das Licht auszuschaltenfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Zusammenfassung
Um komplexe Effekte in einem Projekt zu erstellen, können Skripte mehrere Loop verwenden und sogar Kombinationen verschiedener Loop-Typen. Um ein leuchtendes Licht zu erstellen, sind zwei Loop in einem While-Loop verschachtelt. Wenn Coders mehr Loop hinzufügen, stellen Sie sicher, dass die Codebibliothek so positioniert ist, dass sie leicht zu gelesenist.