Les portes battantes
Leçon 3 sur 25 du cours Jeu Roblox : Échappe-toi des ténèbres de Coddy.
La porte du hall a un ProximityPrompt : à proximité, le joueur voit « E Ouvrir » (une pression sur un téléphone), et lorsqu’il appuie dessus, le Triggered du prompt se déclenche avec le joueur.
Une porte pivote autour de sa charnière, pas de son milieu. Le modèle de la porte contient une pièce invisible Hinge située sur son bord. La position du panneau par rapport à la charnière est hinge.CFrame:ToObjectSpace(panel.CFrame) ; faites pivoter la charnière d’un quart de tour et appliquez à nouveau cette position, et vous obtenez la porte ouverte :
local goal = hinge.CFrame * CFrame.Angles(0, math.rad(90), 0) * hinge.CFrame:ToObjectSpace(panel.CFrame)
TweenService:Create(panel, TweenInfo.new(0.6), { CFrame = goal }):Play()Un tween la fait pivoter au lieu de la faire sauter. Une fois ouverte, l’attribut Open de la porte est défini et son prompt est désactivé.
Défi
FacileFais pivoter la porte du hall pour l’ouvrir.
- Récupère TweenService. Écris
openDoor(door): définis son attributOpensur true et désactivedoor.Panel.Prompt. - Ensuite, anime
door.Panelpendant 0.6 seconde jusqu’augoaldu corps, d’un quart de tour dans le sens positif :math.rad(90). - Écris
setupDoor(door):door.Panel.Prompt.Triggeredouvre la porte si elle est fermée. Appelle cette fonction pourworkspace.Rooms.Lobby.Door.
Appuie sur « Jouer », puis appuie sur E près de la porte : elle s’ouvre en pivotant en s’éloignant de toi. Puis clique sur « Vérifier ».
Essayez vous-même
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Lighting = game:GetService("Lighting")
local Settings = require(game.ReplicatedStorage.Settings)
-- La nuit tombe : plus de soleil, un peu de lumière partout et du brouillard
Lighting.ClockTime = Settings.ClockTime
Lighting.Ambient = Settings.Ambient
Lighting.OutdoorAmbient = Settings.Ambient
Lighting.FogColor = Color3.new(0, 0, 0)
Lighting.FogEnd = Settings.FogEnd
print("Lights out")
-- La leçon 3 : Doors That Swing va ici
-- Chaque joueur : une lampe torche à chaque nouvelle vie
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
local flashlight = ServerStorage.Flashlight:Clone()
flashlight.Parent = player.Backpack
local beam = flashlight.Handle.Beam
flashlight.Activated:Connect(function()
beam.Enabled = not beam.Enabled
end)
end)
end)
Toutes les leçons de Jeu Roblox : Échappe-toi des ténèbres
Entraînez-vous par vous-même : Playground Roblox