Menu
CoddyTech

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é.

challenge icon

Défi

Facile

Fais pivoter la porte du hall pour l’ouvrir.

  1. Récupère TweenService. Écris openDoor(door) : définis son attribut Open sur true et désactive door.Panel.Prompt.
  2. Ensuite, anime door.Panel pendant 0.6 seconde jusqu’au goal du corps, d’un quart de tour dans le sens positif : math.rad(90).
  3. Écris setupDoor(door) : door.Panel.Prompt.Triggered ouvre la porte si elle est fermée. Appelle cette fonction pour workspace.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