Lumières lumineuses avec des boucles

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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.

  1. 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.

    image
  2. Créer une nouvelle partie ou modèle nommé Lamp.

  3. 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.

  4. 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.Parent
    local light = lightPart.SpotLight
  5. Ensuite, 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 fois
    local brightnessChange = 1
    -- Fréquence à laquelle la lumière changera de luminosité en secondes
    local 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.

  1. 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 = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Dans 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 do
    light.Brightness = currentBrightness
    end
  3. Donc, 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 do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Exé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.

  1. 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'ombrage
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Exé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.

  1. Sous les boucles for, créez une nouvelle boucle while.


    while true do
    end
  2. Placez les deux boucles dans une boucle while. Indentez les boucles pour les rendre plus faciles à distinguer de la boucle while.


    while true do
    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    end
  3. Exé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 lampe
lightPart = script.Parent
light = lightPart.SpotLight
-- Combien la luminosité de la lumière changera à chaque fois
local brightnessChange = 1
-- Fréquence à laquelle la lumière changera de luminosité en secondes
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
end

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.