Menu
CoddyTech

Des portes qui pivotent

Leçon 3 sur 20 du cours Jeu Roblox : Échapper aux 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
  1. Récupère TweenService. Écris openDoor(door) : définis l’attribut Open de la porte, désactive door.Panel.Prompt et anime le panneau jusqu’à effectuer un quart de tour autour de la charnière (0.6 seconde).
  2. Écris setupDoor(door) : lorsque le prompt du panneau est déclenché, ouvre la porte sauf si elle est déjà ouverte.
  3. Configure workspace.Rooms.Lobby.Door.

Appuie sur Play, marche jusqu’à la porte et appuie sur E. Puis Check.

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 : pas 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")

-- Chaque joueur : une lampe de poche à chaque 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)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Jeu Roblox : Échapper aux ténèbres