Normalement, les fonctions ne peuvent utiliser que les informations qu'elles ont codées en elles. Cependant, parfois, vous ne savez pas à l'avance quelles seront ces informations, ou vous souhaitez pouvoir réutiliser la même fonction avec plusieurs morceaux d'informations similaires. Par exemple, si vous vouliez utiliser une fonction pour afficher le nom de la personne qui a terminé un parcours obby le plus rapidement en lettres géantes pour tout le monde. Vous ne connaîtrez pas le nom du futur gagnant tant que la course n'est pas terminée.
Les paramètres sont des espaces réservés pour les informations que vous souhaitez donner à la fonction à un moment ultérieur. Ils ressemblent à des fenêtres qui vous permettent de passer des informations à la fonction.
Utiliser des paramètres et des événements pour configurer un piège
Ce script créera une partie de piège qui détruit tout ce qui touche la partie, y compris d'autres parties. Vous devrez utiliser un paramètre pour le configurer. Faites attention à ancrer le piège pour qu'il ne tombe pas et ne détruise pas des choses de manière inattendue.
Créer une nouvelle partie
Une partie doit être configurée pour détruire tout ce qui la touche.
- Créez une nouvelle partie qui ne touche rien. Si elle touche quelque chose, elle pourrait se déclencher trop tôt.
- Dans l'Explorateur, renommez la partie : TrapPart.
- Ancrez la partie.
Configurer le script
Utilisez ce que vous savez sur les variables et la hiérarchie du jeu pour référencer la partie piège.
Ajoutez un nouveau script dans la partie piège. Renommez le script TrapScript.
Supprimez Hello World et ajoutez un commentaire descriptif.
Sous le commentaire, créez une nouvelle variable qui trouve le parent du script.
-- Détruit tout ce qui touche le parentlocal trap = script.Parent
Créer une fonction avec un paramètre
Le piège utilisera une fonction pour détruire tout ce qui touche la partie. Pour fonctionner, la fonction doit savoir ce qui a touché la partie. Et cela signifie utiliser des paramètres. Les paramètres sont tapés à l'intérieur des () qui viennent après le nom d'une fonction. Ils ressemblent à ceci :
local function functionName(parameterName)
endLes informations réelles qui sont passées par le paramètre sont appelées un argument. Vous allez créer une nouvelle fonction appelée onTouch() avec un paramètre appelé objectTouched qui suivra tout ce qui touche le piège et détruira ensuite la partie touchée.
Créez une fonction locale. Elle peut être nommée n'importe comment, mais cette leçon utilisera onTouch
local trap = script.Parentlocal function onTouch()endÀ l'intérieur des (), tapez un nom pour le paramètre. Cette leçon utilisera objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endEntre local function onTouch() et end, créez une instruction print. Vous l'utiliserez pour vérifier si quelque chose touche la partie dans la section suivante.
local trap = script.Parentlocal function onTouch(objectTouched)print("Quelque chose a touché le piège")end
Utiliser un événement pour appeler la fonction
Nous voulons que la fonction s'exécute chaque fois que quelque chose touche la partie. Pour que cela se produise, connectez la fonction à l'événement Touched. Les événements sont des choses qui se produisent dans le jeu. Comme un joueur touchant une partie ou perdant de la santé. Lorsqu'une fonction est connectée à un événement, la fonction s'exécute chaque fois que l'événement se produit.
L'événement Touched se déclenche chaque fois qu'une partie touche une autre partie et peut être utilisé pour créer des boutons, des pièges et d'autres objets avec lesquels les joueurs interagissent.
Sous le end de la fonction, tapez trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Quelque chose a touché le piège")end-- Connecter la fonction à l'événement Touchedtrap.Touched:Connect(onTouch)Cliquez sur Test puis touchez la partie. Vérifiez votre instruction print de test : Quelque chose a touché le piège. Si vous ne voyez pas la chaîne dans la fenêtre de sortie, vérifiez les éléments suivants :
- Assurez-vous que la chaîne "Quelque chose a touché la partie !" est entre local function onTouch() et end.
- Vérifiez que Touched est en majuscule.
Maintenant que la fonction est correctement configurée, utilisez-la pour détruire tout ce qui touche la partie. À l'intérieur de la fonction, après la chaîne, tapez objectTouched:Destroy() Le code complet devrait être :
local trap = script.Parentlocal function onTouch(objectTouched)print("Quelque chose a touché le piège")-- Détruire l'objet touchéobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Testez à nouveau et voyez ce qui se passe lorsque la partie est touchée. Votre avatar devrait se retrouver sans pieds ou sans bras. Si la partie touche la tête ou le cou de l'avatar, elle pourrait même être complètement détruite.
Résumé
Les paramètres sont utilisés pour passer des informations qui seraient normalement hors de portée (où une fonction ne peut pas les voir), dans une fonction. Pendant ce temps, les événements sont des signaux spéciaux qui se déclenchent à l'intérieur du jeu lorsque quelque chose d'important se produit. Différents objets ont différents événements. Les fonctions peuvent être connectées à des événements afin qu'elles soient appelées chaque fois que l'événement se déclenche. Ce petit script a connecté une fonction à l'événement Touched du piège et a passé ce qui touchait le piège par le biais du paramètre.