Pour pratiquer les boucles for, vous allez créer une lampe qui brille progressivement de plus en plus et s'assombrit ensuite avec le temps. Ce script peut ensuite être appliqué à d'autres lumières d'un projet, que ce soit un lampadaire ou un cristal lumineux.
Configurez la pièce et le script
La lampe sera une pièce avec une lumière et un script attachés.
Pour rendre la lumière plus facile à voir, changez le monde 3D en nuit. Dans l'Explorateur ⟩ Éclairage, changez ClockTime en 0.

Créez une nouvelle partie ou un modèle nommé Lampe.

Sélectionnez la Lampe, et ajoutez une lumière, telle qu'une PointLight ou SpotLight. Vous allez travailler avec la propriété de luminosité de la lumière pour créer une lampe lumineuse.

Dans la Lampe, ajoutez un nouveau script nommé GlowScript. Dans ce script, créez des variables pour stocker la pièce de lampe et la lumière point.
local lightPart = script.Parentlocal light = lightPart.SpotLightEnsuite, créez une variable pour indiquer combien la luminosité de la lumière changera à chaque fois que la boucle s'exécute. Ajoutez ensuite une autre variable pour combien de secondes la boucle attendra avant de s'exécuter à nouveau.
-- Combien la luminosité de la lumière changera chaque foislocal brightnessChange = 1-- À quelle fréquence en secondes la lumière changera de luminositélocal timeChange = 1
Faites briller la lampe
La lampe utilisera deux boucles for, une qui compte pour rendre la lampe plus lumineuse, et une autre qui compte pour l'assombrir. Chaque boucle for aura une variable de contrôle appelée currentBrightness. De cette façon, lorsque la variable de contrôle de la boucle for augmente et diminue, la luminosité de la lumière le fera aussi.
Première boucle (augmentation de la lumière)
N'oubliez pas qu'une boucle for commence par le mot clé for suivi d'une variable de contrôle. Ce script définira la valeur de luminosité de la lumière à la valeur de la variable de contrôle.
Codez la boucle for en utilisant les valeurs suivantes. N'oubliez pas de séparer la variable de contrôle et les valeurs finales par une virgule.
- Variable de contrôle : currentBrightness
- Valeur de départ : 0
- Valeur de fin : 5
- Valeur d'incrément : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendDans la portée de la boucle for, définissez la propriété de luminosité de la lumière à la valeur de la variable de contrôle en tapant light.Brightness = currentBrightness. Maintenant, lorsque la boucle s'exécute, la lumière deviendra plus brillante.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendPour que le changement ne se produise pas d'un seul coup, ajoutez une fonction d'attente utilisant la valeur de timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExécutez l'expérience pour voir la lumière augmenter en luminosité chaque seconde.
Si vous ne pouvez pas voir le changement de luminosité au fil du temps dans la première boucle :
- Assurez-vous que light.Brightness = currentBrightness est entre do et end de votre boucle for.
- Vérifiez que timeChange est au moins 1 ou plus. Les nombres plus petits feront changer la luminosité plus rapidement, mais seront plus difficiles à voir avec le temps.
- Assurez-vous que la première ligne de votre boucle for a deux virgules au total séparant la variable de contrôle, la valeur finale et la valeur d'incrément.
Deuxième boucle (diminution de la lumière)
Pour assombrir la lumière, utilisez une deuxième boucle for. Les valeurs de cette boucle seront inversées pour que la lumière commence brillante et s'assombrisse chaque seconde.
Codez une deuxième boucle for qui diminue la luminosité avec le temps. La solution se trouve dans la boîte de code ci-dessous. Utilisez les valeurs suivantes :
- Variable de contrôle - currentBrightness défini à 5, à la fin de la dernière boucle.
- Fin - 0, éteignant la lumière.
- Incrément - soustraire brightnessChange.
-- La deuxième boucle diminue la lampefor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExécutez votre expérience; vous devriez voir la lumière s'illuminer puis s'éteindre.
Faites que la lumière se répète
Pour l’instant, la lumière ne s’allume et ne s’éteint qu’une seule fois. Pour faire en sorte que la lampe brille continuellement, les boucles for seront placées à l’intérieur d’une boucle while répétée.
Sous les boucles for, créez une nouvelle boucle while.
while true doendPlacez les deux boucles for à l'intérieur d'une boucle while. Indentez les boucles for pour les rendre plus faciles à distinguer de la boucle while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendExécutez l'expérience pour voir la lumière s'allumer et s'éteindre en continu.
Script de lumière terminé
Une version terminée du script peut être référencée ci-dessous.
-- Stocke la lumière attachée à cette lampelightPart = script.Parentlight = lightPart.SpotLight-- Combien la luminosité de la lumière changera chaque foislocal brightnessChange = 1-- À quelle fréquence en secondes la lumière changera de luminositélocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Deuxième boucle pour éteindre la lumièrefor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Résumé
Pour créer des effets complexes dans un projet, les scripts peuvent utiliser plusieurs boucles, et même des combinaisons de différents types de boucles. Pour coder une lumière lumineuse, deux boucles sont imbriquées dans une boucle while. Lorsque les codeurs ajoutent davantage de boucles, il est important de vérifier l'indentation afin que le code soit facile à lire.