De nombreuses choses dans l'informatique ou le développement de jeux se répètent souvent. Par exemple, une application peut mettre à jour du contenu dans un fil d'actualités toutes les quelques secondes, ou un jeu peut récompenser les joueurs d'un prix chaque jour où ils se connectent. Pour accomplir ce comportement, les codeurs utilisent souvent des boucles.
Dans le domaine de l'informatique, une boucle est un motif de codage qui répète un ensemble d'instructions, souvent jusqu'à ce qu'une condition spécifique soit remplie. Pour pratiquer cela, vous allez coder une pièce qui change de couleurs indéfiniment. Les leçons ultérieures montreront comment arrêter la boucle.
Configurer la pièce et le script
Utilisez n'importe quel projet Roblox pour cet exercice. Une fois terminé, cette pièce peut être utilisée comme moyen de décorer un environnement.
Créez une nouvelle pièce avec un nom descriptif. Cette leçon utilise LoopingPart.
Dans ServerScriptService, ajoutez un nouveau script nommé LoopingScript.
Dans le script, supprimez Hello World et écrivez un commentaire indiquant le but de ce script.
-- Change la couleur de LoopingPart toutes les quelques secondes
Utiliser des variables pour stocker une pièce
Les variables peuvent également contenir des références à des objets en plus des chaînes de caractères. Par exemple, lorsqu'un script connaît la référence à une pièce, le script peut la modifier.
Au lieu de taper workspace.NameOfYourPart encore et encore, toute cette ligne peut être stockée dans une variable locale. Les variables locales sont créées en tapant local suivi du nom de la variable.
Par exemple : local nameOfVariable.
Sous le commentaire, créez une variable locale en tapant local loopingPart.
-- Change la couleur de LoopingPart toutes les quelques secondeslocal loopingPartAssignez la variable à la pièce en boucle en tapant = workspace.LoopingPart sur la même ligne. Rappelez-vous que l'opérateur = définit la valeur d'une variable à tout ce qui se trouve à droite.
-- Change la couleur de LoopingPart toutes les quelques secondeslocal loopingPart = workspace.LoopingPart
Boucles while
Avant de créer la boucle while pour la pièce qui change de couleur, il est utile d'expliquer sa syntaxe. Une boucle while a trois composants :
- Le mot clé while.
- Une condition, toujours après le mot clé.
- Des instructions, entre les mots clés do et end.
Dans les boucles, les conditions peuvent être une variété d'énoncés logiques. Quelques exemples pourraient être si deux nombres sont identiques. Une boucle s'exécutera si sa condition est vraie.
Remarquez dans l'exemple ci-dessous, la condition est vraie, ce qui signifie que cette boucle s'exécutera indéfiniment. Dans les leçons suivantes, vous coderez des conditions spécifiques qui arrêteront la boucle.
while true doprint("Cette boucle est en cours d'exécution")end
Codez une boucle while
Ensuite, vous allez configurer la boucle while pour la pièce qui change de couleur.
Sur la ligne suivante, tapez while true do. Ensuite, appuyez sur Enter pour compléter automatiquement et ajouter le mot end.
-- Change la couleur de loopingPart toutes les quelques secondeslocal loopingPart = workspace.LoopingPart-- Code de bouclagewhile true doend
Ajouter du code dans la boucle
Avec la boucle while créée, des instructions peuvent être ajoutées pour changer la couleur de la pièce au fil du temps. À l'intérieur de la boucle, ajoutez une ligne de code pour chaque couleur. Chaque couleur utilisera des valeurs RGB, une façon de stocker les couleurs sous forme de nombres en informatique.
Entre while true do et end, définissez la propriété Color de la pièce sur Color3.fromRGB().
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endLe choix de la couleur peut se faire en utilisant un sélecteur de couleur dans Studio. Pour ce faire, cliquez à gauche à l'intérieur des () à côté de fromRGB. Ensuite, cliquez sur l'icône de la roue des couleurs. Une fois que vous avez choisi une couleur souhaitée, appuyez sur OK pour ajouter automatiquement la valeur de couleur dans le code.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
Faire attendre le script
Si vous ajoutez une deuxième ligne de code changeant de couleur maintenant, cela changerait la couleur du brique si vite que vous ne verriez même pas la première couleur passer. Pour faire attendre le script avant d'exécuter la ligne suivante de code, utilisez une fonction task.wait().
Sur la ligne après avoir changé la couleur du brique, tapez task.wait(3). Quel que soit le nombre placé à l'intérieur des (), c'est le nombre de secondes que le script attendra.
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)endSous la fonction d'attente, répétez le même processus d'ajout d'une nouvelle couleur. Terminez-le par une fonction d'attente supplémentaire.
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endTestez le code et voyez si les couleurs changent.
Notes de dépannage
À ce stade, si la pièce qui change de couleur ne fonctionne pas comme prévu, essayez l'une des solutions suivantes ci-dessous.
Problème : Les couleurs sont sautées
- Assurez-vous d'avoir une fonction d'attente entre chaque changement de couleur, surtout à la dernière ligne.
- Vérifiez que tout le code de changement de couleur et d'attente se trouve entre les sections while true do et end.
Problème : La pièce est toujours grise ou ne change pas de couleur comme prévu
- Assurez-vous que toutes les valeurs RGB ont des nombres compris entre 0 et 255, entiers ou décimaux, et sont séparés par des virgules.
- Les nombres à l'intérieur des () d'une fonction d'attente doivent être supérieurs à 1. Il est possible qu'une attente soit trop courte pour que vous puissiez voir cette couleur.
Script complet pour la pièce colorée en boucle
-- Créer une variable pour stocker la piècelocal loopingPart = workspace.LoopingPart-- Code de bouclagewhile true do-- Change la couleur de loopingPartloopingPart.Color = Color3.fromRGB(82, 227, 255)-- Attendez 3 secondes avant la prochaine instructiontask.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
Résumé
Les boucles sont un élément commun dans la plupart des langages informatiques. Elles sont utilisées pour répéter des instructions, parfois jusqu'à ce que des conditions spécifiques soient remplies. Dans cet article, la boucle while est utilisée pour répéter des instructions indéfiniment. Pour créer une boucle while qui se répète indéfiniment, utilisez la syntaxe ci-dessous, en vous assurant d'inclure des instructions entre les mots clés do et end.
while true do-- Instructionsend