Um for-Schleifen zu üben, werden Sie eine Lampe erstellen, die allmählich heller wird und dann im Laufe der Zeit dimmt. Dieses Skript kann dann auf andere Lichter in einem Projekt angewendet werden, sei es eine Straßenlampe oder ein leuchtender Kristall.
Einrichten des Teils und Skripts
Die Lampe wird ein Teil mit einem angefügten Licht und Skript sein.
Um das Licht besser sehen zu können, ändern Sie die 3D-Welt auf Nachtzeit. In der Explorer ⟩ Beleuchtung, ändern Sie 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. In diesem Skript erstellen Sie Variablen, um das Lampenteil und das Punktlicht zu speichern.
local lightPart = script.Parentlocal light = lightPart.SpotLightAls nächstes erstellen Sie eine Variable, die festhält, um wie viel sich die Helligkeit des Lichts bei jedem Durchlauf der Schleife ändern wird. Dann fügen Sie 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 das Licht ändern wirdlocal timeChange = 1
Lassen Sie die Lampe leuchten
Die Lampe wird zwei for-Schleifen verwenden, eine, die zählt, um die Lampe heller zu machen, und eine, die zählt, um sie zu dimmen. Jede for-Schleife hat eine Kontrollvariable namens currentBrightness. Auf diese Weise wird die Helligkeit des Lichts erhöht und verringert, wenn die Kontrollvariable der for-Schleife ansteigt oder abnimmt.
Erste Schleife (Licht erhöhen)
Denken Sie daran, dass eine for-Schleife mit dem Keyword for gefolgt von einer Kontrollvariablen beginnt. Dieses Skript wird den Helligkeitswert des Lichts auf den Wert der Kontrollvariablen setzen.
Programmieren Sie die for-Schleife mit den folgenden Werten. Denken Sie daran, die Kontrollvariable und die Endwerte mit einem Komma zu trennen.
- Kontrollvariable: currentBrightness
- Startwert: 0
- Endwert: 5
- Inkrementwert: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendStellen Sie im Geltungsbereich der for-Schleife die Helligkeitseigenschaft des Lichts auf den Wert der Kontrollvariablen ein, indem Sie light.Brightness = currentBrightness eingeben. Jetzt wird das Licht heller, wenn die Schleife ausgeführt wird.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendDamit die Änderung nicht alles auf einmal geschieht, fügen Sie eine Wartefunktion mit dem Wert von timeChange hinzu.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie die Erfahrung aus, um zu sehen, wie das Licht jede Sekunde heller wird.
Wenn Sie die Helligkeitsänderung in der ersten Schleife nicht sehen können:
- Stellen Sie sicher, dass light.Brightness = currentBrightness zwischen dem do und end Ihrer for-Schleife steht.
- Überprüfen Sie, dass timeChange mindestens 1 oder höher ist. Kleinere Zahlen lassen die Helligkeit schneller ändern, sind aber schwerer über Zeit zu sehen.
- Stellen Sie sicher, dass die erste Zeile Ihrer for-Schleife insgesamt zwei Kommas enthält, die die Kontrollvariable, 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 sich jede Sekunde dimmt.
Programmieren Sie eine zweite for-Schleife, die die Helligkeit über die Zeit verringert. Die Lösung ist im folgenden Codeblock. Verwenden Sie die folgenden Werte:
- Kontrollvariable - currentBrightness auf 5 setzen, 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 Ihre Erfahrung 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 aus, um sie von der while-Schleife leichter 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 die Erfahrung aus, um zu sehen, wie das Licht kontinuierlich hell wird und dimmt.
Fertiges Lichts-Skript
Eine fertige Version des Skripts kann unten referenziert werden.
-- Speichert das Licht, das an dieser Lampe angebracht istlightPart = script.Parentlight = lightPart.SpotLight-- Wie viel sich die Helligkeit des Lichts bei jedem Mal ändern wirdlocal brightnessChange = 1-- Wie oft in Sekunden sich das Licht ändern wirdlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Zweite Schleife zum Ausschalten des Lichtsfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Zusammenfassung
Um komplexe Effekte in einem Projekt zu erstellen, können Skripts mehrere Schleifen verwenden, und sogar Kombinationen verschiedener Schleifenarten. Um ein leuchtendes Licht zu programmieren, sind zwei Schleifen in einer while-Schleife geschachtelt. Während Programmierer mehr Schleifen hinzufügen, sollten sie sicherstellen, dass die Einrückung überprüft wird, damit der Code leicht lesbar bleibt.