Um für Schleifen zu üben, erstellst du eine Lampe, die sich allmählich heller leuchtet und dann mit der Zeit verbleicht.Dieses Skript kann dann auf alle anderen Lichter in einem Projekt angewendet werden, sei es eine Straßenlaterne oder ein leuchtender Kristall.
Stelle das Teil und Skript, das. PL: die Skriptsein
Die Lampe wird ein Teil mit einem angehängten Licht und Skript, das. PL: die Skriptssein.
Um es einfacher zu machen, das Licht zu sehen, ändere die Spielwelt auf Nachtzeit . Im Explorer > Beleuchtung > ändere ClockTime auf 0.
Erstelle ein neues Teil oder Modell mit dem Namen Lamp.
Wählen Sie Lampe und fügen Sie ein Licht hinzu, wie z. B. ein Punktlicht oder Spotlicht.Du arbeitest mit der Helligkeits-Eigenschaft des Lichts, um eine leuchtende Lampe zu erstellen.
Füge in der Lampe ein neues Skript namens GlowScript hinzu. In diesem Skript, das. PL: die Skriptserstelle Variablen, um den Lampenteil und das Punktlicht zu speichern.
local lightPart = script.Parentlocal light = lightPart.SpotLightErstellen Sie als Nächstes eine Variable, um zu speichern, wie viel die Helligkeit des Lichts sich jedes Mal ändern wird, wenn die Schleife ausgeführt wird.Füge dann eine weitere Variable hinzu, wie viele Sekunden die Schleifen warten, bevor sie wieder ausgeführt werden.
-- Wie sich die Helligkeit des Lichts jedes Mal ändern wirdlocal brightnessChange = 1-- Wie oft sich das Licht in Sekunden helligkeit ändern wirdlocal timeChange = 1
Lampe zum Glühen bringen
Die Lampe wird zwei für Schleifen verwenden, eine, die zählt, um die Lampe heller zu machen, und eine, die herunterzählt, um sie zu verdunkeln.Jede Schleife wird eine Kontrollvariable namens currentBrightness haben.Auf diese Weise, da die Steuervariable der for-Schleife hoch und runter geht, so wird auch die Helligkeit des Lichts.
Erste Schleife (Lichtzunahme)
Denken Sie daran, dass eine for-Schleife mit dem Schlüsselwort for, gefolgt von einer Kontrollvariable.Dieses Skript wird den Helligkeitswert des Lichts auf den Wert in der Kontrollvariable festlegen.
Code die for-Schleife mit den folgenden Werten. Denken Sie daran, die Kontrollvariable und die Endwerte mit einem Komma zu trennen.
- Steuervariable : currentBrightness
- Startwert : 0
- Endwert : 5
- Zunahmewert : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendIm Umfang der for-Schleife legen Sie die Helligkeits属性 des Lichts auf den Wert in der Steuervariable durch die Eingabe von light.Brightness = currentBrightness fest.Jetzt, wenn die Schleife ausgeführt wird, wird das Licht heller.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendAlso geschieht die Änderung nicht auf einmal, füge eine Wartefunktion mit dem Wert in timeChange hinzu.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühre das Spiel aus, um die Lichtzunahme in der Helligkeit jede Sekunde zu sehen.
Wenn du die Helligkeitsänderung im Laufe der Zeit in der ersten Schleife nicht sehen kannst:
- Stellen Sie sicher, dass light.Brightness = currentBrightness zwischen dem Anfang und dem Ende Ihrer for-Schleife liegt.
- Überprüfe, dass timeChange mindestens 1 oder höher ist. Kleinere Zahlen werden die Helligkeitsänderung schneller vornehmen, aber es ist schwieriger, sie im Laufe der Zeit zu sehen.
- Stellen Sie sicher, dass die erste Zeile Ihrer for-Schleife zwei Kommas hat, die die Kontrollvariable, den Endwert und den Zunahmewert trennen.
Zweiter Loop (Lichtabnahme)
Um das Licht zu dimmen, verwende eine zweite Schleife. Die Werte dieser Schleife werden umgekehrt, so dass das Licht heller beginnt und jede Sekunde schwächer wird.
Code eine zweite Schleife, die die Helligkeit im Laufe der Zeit verringert. Die Lösung befindet sich in der Code-Box unten. Verwende die folgenden Werte:
- Steuervariable - currentBrightness auf 5 gesetzt, das Ende der letzten Schleife.
- Ende - 0, schaltet das Licht aus.
- Zunahme - subtrahieren brightnessChange .
-- Zweite Schleifendimmlampefor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endFühren Sie Ihr Spiel aus; Sie sollten sehen, dass das Licht heller und dann schwächer wird.
Licht wiederholen lassen
Im Moment leuchtet das Licht nur ein- und aus einmal.Um die Lampe kontinuierlich ein- und auszuschalten, werden die for-Schleifen in einer wiederholenden While-Schleife platziert.
Unter den for-Schleifen erstelle eine neue While-Schleife.
while true doendPlatziere beide für Schleifen innerhalb einer While-Schleife. Indentiere die Schleifen, um sie vom While-Loop 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ühre das Spiel aus, um zu sehen, wie das Licht kontinuierlich hell und schwach wird.
Fertiges Skript, das. PL: die Skripts
Eine abgeschlossene Version des Skripts kann unten referenziert werden.
-- Lagert das Licht, das an diese Lampe angehängt istlightPart = script.Parentlight = lightPart.SpotLight-- Wie sich die Helligkeit des Lichts jedes Mal ändern wirdlocal brightnessChange = 1-- Wie oft sich das Licht in Sekunden helligkeit ändern wirdlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Zweiter Schleife, um Licht auszuschaltenfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Übersicht
Um komplexe Effekte in einem Projekt zu erstellen, können Skripte mehrere Schleifen und sogar Kombinationen verschiedener Schleifentypen verwenden.Um ein leuchtendes Licht zu codieren, werden zwei Schleifen in einem While-Schleife verschachtelt.Wenn Entwickler mehr Schleifen hinzufügen, stellen Sie sicher, die Indenteration zu überprüfen, damit der Code leicht zu gelesenist.