Pour pratiquer les boucles, vous créerez une lampe qui s'allume progressivement plus fort puis s'atténue au fil du temps.Ce script peut ensuite être appliqué à toutes les autres lumières dans un projet, que ce soit une lampe de rue ou un cristal lumineux.
Configurez la partie et le script
La lampe sera une partie avec une lumière et un script attachés.
Pour faciliter la vision de la lumière, changez le monde du jeu en temps de nuit . Dans Explorer > Éclairage > modifiez l'heure d'horloge en 0.
Créer une nouvelle partie ou modèle nommé Lamp.
Sélectionnez Lamp, et ajoutez une lumière , telle qu'un PointLight ou SpotLight.Vous travaillerez avec la propriété d'éclairage de la lumière pour créer une lampe luisante.
Dans Lamp, ajoutez un nouveau script nommé GlowScript. Dans ce script, créez des variables pour stocker la partie de la lampe et la lumière ponctuelle.
local lightPart = script.Parentlocal light = lightPart.SpotLightEnsuite, créez une variable pour détenir la quantité de lumière qui changera à chaque exécution de la boucle.Ensuite, ajoutez une autre variable pour le nombre de secondes pendant lesquelles les boucles attendront avant de s'exécuter à nouveau.
-- Combien la luminosité de la lumière changera à chaque foislocal brightnessChange = 1-- Fréquence à laquelle la lumière changera de luminosité en secondeslocal timeChange = 1
Faire briller la lampe
La lampe utilisera deux pour les boucles , l'une qui compte jusqu'à rendre la lampe plus brillante, et l'une qui compte jusqu'à la rendre plus faible.Chaque boucle de 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 va de haut en bas, la luminosité de la lumière va de même.
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 dans la variable de contrôle.
Codez la boucle while en utilisant les valeurs suivantes. N'oubliez pas de séparer la variable de contrôle et les valeurs de fin avec une virgule.
- Variable de contrôle : currentBrightness
- Valeur de départ : 0
- Valeur finale : 5
- Valeur d'augmentation : 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 sur la valeur dans 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 = currentBrightnessendDonc, le changement ne se produit pas tout à la fois, ajoutez une fonction d'attente en utilisant la valeur dans timeChange .
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endExécutez le jeu pour voir l'augmentation de la lumière 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 début et la fin de votre boucle for.
- Vérifiez que timeChange est au moins 1 ou supérieur. Les chiffres plus petits feront que la luminosité changera plus rapidement, mais seront plus difficiles à voir au fil du temps.
- Assurez-vous que la première ligne de votre boucle for a deux virgules totales séparant la variable de contrôle, la valeur finale et la valeur d'augmentation.
Deuxième boucle (diminution de la lumière)
Pour atténuer la lumière, utilisez une seconde en boucle. Les valeurs de cette boucle seront inversées afin que la lumière commence à s'éteindre et chaque seconde, devienne plus faible.
Codez une deuxième boucle qui diminue la luminosité au fil du 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, éteindre la lumière.
- Incrément - soustraire brightnessChange.
-- Lampe de deuxième boucle d'ombragefor 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
En ce moment, la lumière ne s'allume et ne s'éteint qu'une seule fois.Pour que la lampe brille en continu et s'offen boucle, les boucles for seront placées à l'intérieur d'une boucle while répétitive.
Sous les boucles for, créez une nouvelle boucle while.
while true doendPlacez les deux boucles dans une boucle while. Indentez les boucles 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 s'allumer et s'éteindre continuellement.
Script de lumière script
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-- Fréquence à laquelle la lumière changera de luminosité en secondeslocal 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
Sommaire
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 développeurs ajoutent plus de boucles, assurez-vous de vérifier l'indentation pour que le code soit facile à lire.