Les boutons peuvent être utilisés par les joueurs pour débloquer de nouvelles zones, donner des points et révéler des trésors.Chaque fois qu'un joueur touche un bouton, il devrait donner des commentaires pour que les joueurs sachent qu'il est interagi avec, comme changer de couleur ou faire des sons.
Dans cet exemple, le bouton sera utilisé pour activer un pont.Lorsque le bouton a été pressé, il deviendra vert et les joueurs pourront utiliser le pont.Si le joueur n'a pas appuyé sur le bouton, il tombera à travers le pont lorsqu'il essaiera de marcher dessus.
Faire un pont
Commencez par configurer le pont.
Créez une zone dans votre jeu où les joueurs auront besoin d'un pont.
Créez une partie pour le pont et renommez-la Pont.
Sélectionnez le pont, dans la fenêtre propriétés :
- Modifier la transparence à .5. Pour la transparence, 0 est visible, 1 est invisible.
- Vérifiez l'ancre .
- Désélectionnez CanCollide .
Testez le jeu, le pont devrait avoir l'air brumeux et les gens ne devraient pas encore pouvoir y marcher.
Créer le bouton
Maintenant que le pont est configuré, créez le bouton.
- Créez une nouvelle partie nommée bouton.
- Changez la couleur du bouton en rouge.
- Ancre le bouton.
- Déplacez le bouton pour qu'il flotte légèrement et ne touche rien. C'est pour vous assurer que l'événement Touched ne se lancerpas accidentellement.
Rendre le bouton interactif
Cette fois, au lieu d'utiliser l'événement Touched pour créer un piège, vous l'utiliserez pour créer un bouton qui rend le pont utilisable.Pour rendre le pont collidable, utilisez le code bridge.CanCollide = true dans une fonction personnalisée qui s'exécute lorsqu'un joueur touche le bouton.Vous savez tout ce dont vous avez besoin pour terminer les étapes suivantes.
Essayez de le résoudre vous-même avant de regarder la solution du code.
- Insérez un nouveau script dans le bouton nommé Activer le pont.
- Supprimer Hello World.
- Créer des variables pour le pont et pour le bouton.
- Créez une fonction locale local qui fait ce qui suit lorsque le bouton est touché :
- Imprime "button touched" .
- Change la couleur du bouton de la couleur rouge à verte lorsqu'il est touché.
- Changer la transparence du pont à 0 pour le rendre visible.
- Rend le pont utilisable en utilisant le code bridge.CanCollide = true
- Connectez la fonction à l'événement du bouton Touched.
- Testez le script et assurez-vous que le pont apparaît lorsque le bouton est touché.
Solution de code ci-dessous est une solution de code possible
-- Insérez ce script dans le bouton
-- Fait apparaître le bouton vert lorsque quelque chose touche le bouton.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)
Dépanner votre code
Problème : Le pont est déjà solide lorsque le jeu commence.: Assurez-vous que les parties sont ancrées et ne touchent rien.Les parties peuvent toucher quelque chose, comme le terrain ou une autre partie, et provoquer le déclenchement de la fonction buttonPressed() accidentellement. Problème : vous obtenez une erreur dans la fenêtre de sortie qui dit : « Le pont n'est pas un membre valide de l'espace de travail » Vérifiez ce qui suivre:
- La nomination de votre pont. Le pont dans votre script doit être nommé exactement comme dans l'Explorer.
- Ce part.Touched:Connect(buttonPressed) est en dehors de la fonction buttonPressed().
Défi de code facultatif
Le script de cette leçon peut également être utilisé pour garder les portes qui empêchent les joueurs d'entrer dans des zones spécifiques. Pratiquez vos compétences de codage et faites ce qui suivre:
- Créer une partie de porte.
- Créez un bouton plus loin de la porte.
- Modifiez le script dans cette leçon pour qu'il fasse changer la transparence de la porte et que le joueur ne puisse pas y collider.
Votre version pourrait ressembler à ceci :
local button = script.Parent
-- Rappel : Remplacez le nom de la partie, Gate, par celui de votre projet
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Changer le bouton de modifications en rouge pour donner aux joueurs des commentaires
button.BrickColor = BrickColor.Red() -- CHANGER CECI
-- Rendre la porte invisible
gate.Transparency = 1
-- Permet au joueur de traverser la porte
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)