Um for-Schleifen zu üben, erstellen Sie eine Lampe, die allmählich heller leuchtet und dann im Laufe der Zeit dimmt. Dieses Skript kann dann auf andere Lichter in einem Projekt angewendet werden, sei es eine Straßenlaterne oder ein leuchtender Kristall.
Richten Sie das Teil und das Skript ein
Die Lampe wird ein Teil mit einem angehängten Licht und Skript sein.
Um das Licht besser sehen zu können, ändern Sie die 3D-Welt auf Nachtzeit. Ändern Sie in Explorer ⟩ Beleuchtung die ClockTime auf 0.

Erstellen Sie ein neues Teil oder Modell mit dem Namen Lampe.

Wählen Sie die Lampe aus und fügen Sie ein Licht hinzu, wie z.B. ein PointLight oder SpotLight. Sie werden mit der Helligkeitseigenschaft des Lichts arbeiten, um eine leuchtende Lampe zu erstellen.

Fügen Sie in der Lampe ein neues Skript mit dem Namen GlowScript hinzu. Erstellen Sie in diesem Skript Variablen, um das Lampenteil und das Punktlicht zu speichern.
local lightPart = script.Parentlocal light = lightPart.SpotLightErstellen Sie als Nächstes eine Variable, um festzuhalten, wie viel sich die Helligkeit des Lichts bei jedem Durchlauf der Schleife ändern wird. Fügen Sie dann eine weitere Variable hinzu, wie viele Sekunden die Schleifen warten, bevor sie erneut ausgeführt werden.
-- Wie viel sich die Helligkeit des Lichts bei jedem Mal ändern wirdlocal brightnessChange = 1-- Wie oft in Sekunden sich die Helligkeit des Lichts ändern wirdlocal timeChange = 1
Lassen Sie die Lampe leuchten
Die Lampe wird zwei for-Schleifen verwenden, eine, die hochzählt, um die Lampe heller zu machen, und eine, die herunterzählt, um sie zu dimmen. Jede for-Schleife hat eine Steuerungsvariable namens currentBrightness. So wird die Helligkeit des Lichts mit der Steuerungsvariablen der for-Schleife steigen und fallen.
Erste Schleife (Licht erhöhen)
Denken Sie daran, dass eine for-Schleife mit dem Schlüsselwort for beginnt, gefolgt von einer Steuerungsvariablen. Dieses Skript wird den Helligkeitswert des Lichts auf den Wert der Steuerungsvariablen setzen.
Programmieren Sie die for-Schleife mit den folgenden Werten. Denken Sie daran, die Steuerungsvariable und die Endwerte mit einem Komma zu trennen.
- Steuerungsvariable: currentBrightness
- Startwert: 0
- Endwert: 5
- Inkrementwert: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendSetzen Sie im Geltungsbereich der for-Schleife die Helligkeitseigenschaft des Lichts auf den Wert der Steuerungsvariablen, indem Sie light.Brightness = currentBrightness eingeben. Jetzt wird das Licht heller, wenn die Schleife läuft.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendDamit die Änderung nicht auf einmal geschieht, fügen Sie eine Wartefunktion mit dem Wert in timeChange hinzu.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie das Spiel aus, um zu sehen, wie das Licht jede Sekunde heller wird.
Wenn Sie die Helligkeitsänderung im ersten Durchlauf nicht sehen können:
- Stellen Sie sicher, dass light.Brightness = currentBrightness zwischen do und end Ihrer for-Schleife steht.
- Überprüfen Sie, ob timeChange mindestens 1 oder höher ist. Kleinere Zahlen lassen die Helligkeit schneller ändern, sind aber im Laufe der Zeit schwerer zu erkennen.
- Stellen Sie sicher, dass die erste Zeile Ihrer for-Schleife insgesamt zwei Kommas hat, die die Steuerungsvariable, den Endwert und den Inkrementwert trennen.
Zweite Schleife (Licht verringern)
Um das Licht zu dimmen, verwenden Sie eine zweite for-Schleife. Die Werte dieser Schleife werden umgekehrt, sodass das Licht hell beginnt und jede Sekunde dunkler wird.
Programmieren Sie eine zweite for-Schleife, die die Helligkeit im Laufe der Zeit verringert. Die Lösung befindet sich im folgenden Codeblock. Verwenden Sie die folgenden Werte:
- Steuerungsvariable - currentBrightness, gesetzt auf 5, das Ende der letzten Schleife.
- Ende - 0, um das Licht auszuschalten.
- Inkrement - subtrahieren Sie brightnessChange.
-- Zweite Schleife dimmt die Lampefor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie Ihr Spiel aus; Sie sollten sehen, wie das Licht heller wird und dann dimmt.
Lassen Sie das Licht wiederholen
Im Moment schaltet sich das Licht nur einmal ein und aus. Um die Lampe kontinuierlich ein- und auszuleuchten, werden die for-Schleifen in eine sich wiederholende while-Schleife eingefügt.
Erstellen Sie unter den for-Schleifen eine neue while-Schleife.
while true doendPlatzieren Sie beide for-Schleifen innerhalb einer while-Schleife. Richten Sie die for-Schleifen ein, um sie leichter von der while-Schleife zu unterscheiden.
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 zu sehen, wie das Licht kontinuierlich hell und dunkel wird.
Fertiges Lichtskript
Eine fertige Version des Skripts kann unten referenziert werden.
-- Speichert das Licht, das an dieser Lampe befestigt ist
lightPart = script.Parent
light = lightPart.SpotLight
-- Wie viel sich die Helligkeit des Lichts bei jedem Mal ändern wird
local brightnessChange = 1
-- Wie oft in Sekunden sich die Helligkeit des Lichts ändern wird
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Zweite Schleife, um das Licht auszuschalten
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endZusammenfassung
Um komplexe Effekte in einem Projekt zu erstellen, können Skripte mehrere Schleifen und sogar Kombinationen verschiedener Schleifentypen verwenden. Um ein leuchtendes Licht zu programmieren, sind zwei Schleifen in einer while-Schleife geschachtelt. Wenn Programmierer weitere Schleifen hinzufügen, sollten sie die Einrückung überprüfen, damit der Code leicht lesbar bleibt.