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

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

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

Dans Lampe, ajoutez un nouveau script nommé GlowScript. Dans ce script, créez des variables pour stocker la pièce de la lampe et la lumière ponctuelle.
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 les boucles attendront 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
Faire briller la lampe
La lampe utilisera deux boucles for, une qui compte pour rendre la lampe plus lumineuse, et une qui compte pour l'assombrir. Chaque boucle for aura une variable de contrôle appelée currentBrightness. De cette façon, à mesure que la variable de contrôle de la boucle for monte et descend, la luminosité de la lumière le fera aussi.
Première boucle (augmentation de la lumière)
Rappelez-vous, 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 de fin 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 le cadre 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 lumineuse.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendPour que le changement ne se produise pas d'un coup, ajoutez une fonction d'attente en utilisant la valeur de timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExécutez le jeu 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 le do et l'end de votre boucle for.
- Vérifiez que timeChange est d'au moins 1 ou plus. Des nombres plus petits rendront le changement de luminosité plus rapide, mais plus difficile à voir au fil du 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 de fin 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 afin 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éfinie à 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 jeu ; vous devriez voir la lumière s'éclaircir puis s'assombrir.
Faire répéter la lumière
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 en continu, 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 le jeu pour voir la lumière devenir brillante et s'assombrir 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 lampe
lightPart = script.Parent
light = lightPart.SpotLight
-- Combien la luminosité de la lumière changera chaque fois
local brightnessChange = 1
-- À quelle fréquence en secondes la lumière changera de luminosité
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Deuxième boucle pour éteindre la lumière
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endRé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 brillante, deux boucles sont imbriquées dans une boucle while. À mesure que les codeurs ajoutent plus de boucles, assurez-vous de vérifier l'indentation afin que le code soit facile à lire.