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 permettre aux joueurs de le savoir, comme changer de couleur ou faire des sons.
Dans cet exemple, le bouton sera utilisé pour activer un pont. Lorsque le bouton aura été pressé, il deviendra vert et les joueurs pourront utiliser le pont. Si le joueur n'a pas pressé le bouton, ils tomberont à travers le pont lorsqu'ils essaieront de marcher dessus.
Fabriquer 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-le Pont.
Sélectionnez le pont, dans la fenêtre propriétés :
- Changez la transparence en .5. Pour la transparence, 0 est visible, 1 est invisible.
- Vérifier Ancre .
- Désélectionnez CanCollide .
Testez le jeu, le pont devrait avoir l'air brumeux et les gens ne devraient pas pouvoir y marcher encore.
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 pour rouge.
- Ancrez le bouton.
- Déplacez le bouton pour qu'il flotte légèrement et ne touche à rien. Ceci 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 bes
Essayez de le résoudre vous-même avant de regarder la solution de code.
- Insérez un nouveau script dans le bouton nommé Activer le pont .
- Supprimer Hello World .
- Créez des variables pour le pont et pour le bouton.
- Créer une fonction locale qui fait ce que le bouton est touché :
- Imprimez "button touched".
- Change la couleur du bouton du rouge au vert lorsqu'il est touché.
- Change la transparence du pont à 0 pour le rendre visible.
- Rend le pont utilisable en utilisant le code bridge.CanCollide = true
- Connectez la fonction au Touched événement du bouton.
- Testez le script et assurez-vous que le pont apparaît lorsque le bouton est touché.
Code Solution ci-dessous est une solution de code possible
-- Insérez ce script dans le bouton
-- Change le bouton vert quand 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éboguer votre code
Problème : Le pont est déjà solide lorsque le jeu démarre. 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 accidentel de la fonction buttonPressed . Problème : Vous obtenez une erreur dans la fenêtre de sortie en disant : « Bridge n'est pas un membre valide de Workspace » Vérifiez les éléments 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 dans cette leçon peut également être utilisé pour garder les portes qui tiennent les joueurs à l'écart dans des zones spécifiques. Exercez vos compétences de codage et faites les choses suivre:
- Créez une partie de porte.
- Créez un bouton plus loin de la porte.
- Changez le script dans cette leçon pour qu'il change la transparence de la porte et que le joueur ne puisse pas la coller.
Votre version pourrait ressembler à ceci :
local button = script.Parent
-- Rappel : Remplacez le nom de la partie, la porte, par celui de votre projet
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- Bouton de changement de couleur en rouge pour donner un commentairesau joueur
button.BrickColor = BrickColor.Red() -- MODIFIER CETTE
-- Rendre la porte invisible
gate.Transparency = 1
-- Permet au joueur de traverser la porte
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)