Accueil Login Register
🎯 Objectif du module 1. Créer l’objectif d’arrivée 2. Créer l’écran de fin 3. Le Script de detection de fin ! 4. Faire fonctionner le bouton “Rejouer” (Bonus) Niveau 2 (Bonus) Créer des volumes complexes Exercices pour dans deux semaines Annexes 1. Script de disparition incomplet 2. Script de déplacement de model

Roblox Studio - Module 4 - Finir son premier parcours !

🎯 Objectif du module

Dans ce premier module, tu vas apprendre Ă  :

👉 À la fin de ce module, tu auras déjà terminé ton premier niveau sur roblox.


1. Créer l’objectif d’arrivée

La première étape consiste à créer l’objet physique que le joueur doit toucher.

  1. Créez un Part (une pièce) et placez-la à la fin de votre parcours.
  2. Renommez-la “drapeau” par exemple dans la fenêtre Explorer.
  3. Dans les Propriétés, cochez Anchored (Ancré) pour qu’elle ne tombe pas dans le vide.

2. Créer l’écran de fin

C’est l’interface qui apparaîtra sur l’écran du joueur.

  1. Allez dans le dossier StarterGui (dans l’Explorer).
  2. Ajoutez un ScreenGui, renommez-le fin.
  3. À l’intérieur de fin, ajoutez un Frame (le fond du menu). Ajustez sa taille pour qu’il couvre le centre de l’écran.
  4. À l’intérieur du Frame, ajoutez :
    • Un TextLabel : “FĂ©licitations ! Vous avez gagnĂ© !”
    • Un TextButton : Renommez-le ReplayButton et Ă©crivez “Rejouer” dessus.
  5. Important : Sélectionnez le fin et, dans les propriétés, décochez la case Enabled. On veut qu’il soit invisible au début.

3. Le Script de detection de fin !

Ce script détecte quand un joueur touche la plateforme.

  1. Insérez un Script à l’intérieur de votre “drapeau”.
  2. Copiez ce code :
local drapeau = script.Parent
local joueursOuverts = {}
function onTouch(objetQuiTouche)
	local joueur = game.Players:GetPlayerFromCharacter(objetQuiTouche.Parent)

	if joueur and not joueursOuverts[joueur.UserId] then
		joueursOuverts[joueur.UserId] = true

		joueur.PlayerGui.fin.Enabled = false 
		joueur.PlayerGui.fin.Enabled = true

		task.wait(2) -- Délai avant de pouvoir re-gagner
		joueursOuverts[joueur.UserId] = nil
	end
end
drapeau.Touched:Connect(onTouch)

4. Faire fonctionner le bouton “Rejouer”

Maintenant, il faut que le bouton serve à quelque chose (téléporter le joueur au début).

  1. Allez dans votre TextButton (ReplayButton) créé précédemment.
  2. Ajoutez-y un LocalScript.
  3. Copiez ce code :
local bouton = script.Parent
local fenetre = bouton.Parent.Parent 

function onClick()
	local joueur = game.Players.LocalPlayer
	local personnage = joueur.Character
	
	if personnage and personnage:FindFirstChild("HumanoidRootPart") then
	    local spawn = workspace:FindFirstChild("SpawnLocation")
			if spawn then
					personnage.HumanoidRootPart.CFrame = spawn.CFrame + Vector3.new(0, 3, 0)
			end
	end
	
	-- On cache Ă  nouveau le menu
	fenetre.Enabled = false
end

bouton.MouseButton1Click:Connect(onClick)

(Bonus) Niveau 2

Maintenant que tu peux rejouer ton premier niveau, pourquoi ne pas en créer un autre ?

  1. Recréé un TextButton de la même manière que precedemment (tu peux l’appeler Niveau 2)
  2. Créé une Part que tu nommera “SpawnLevel2”
  3. Copie ce code dans le LocalScript de ton nouveau bouton:
local bouton = script.Parent
local fenetre = bouton.Parent.Parent 
function onClick()
	local joueur = game.Players.LocalPlayer
	local personnage = joueur.Character
	
	if personnage and personnage:FindFirstChild("HumanoidRootPart") then
	    local spawn = workspace:FindFirstChild("SpawnLevel2")
			if spawn then
					personnage.HumanoidRootPart.CFrame = spawn.CFrame + Vector3.new(0, 3, 0)
			end
	end
	
	-- On cache Ă  nouveau le menu
	fenetre.Enabled = false
end

bouton.MouseButton1Click:Connect(onClick)

(Bonus) Créer des volumes complexes

Comme pour l’instant tu as créé des volumes simples comme des cubes et des spheres, cette fois ci tu vas créer un volume complexe (Model):

  1. Créer plusieurs parts de formes différentes
  2. Déplace les pour en faire la forme que tu veux (exemple un ennemis)
  3. Puis en fin selectionne les toutes dans le menu explorer (en maintenant la touche shift) et clique sur groupe dans la liste des outils au dessus de ta scène
  4. Tu peux maintenant deplacer le modèle que tu as créé et pas uniquement une part à la fois.

Exercices pour dans deux semaines

Annexes

1. Script de disparition incomplet

Dans le script qui suit les parties à compléter sont designées par : ___

part = script.___
function onTouch(___)
    if objetQuiTouche.Parent:FindFirstChild("Humanoid") then
        part.Transparency = 1
		    part.CanCollide = ___ -- true pour "vrai" et false pour "faux"
    end	
end
part.Touched:Connect(onTouch)	

2. Script de déplacement de model

Dans le script qui suit les parties à compléter sont designées par : ___
Le script est Ă  placer dans le model (au mĂŞme niveau que les differentes parts qui le compose)

local model = script.Parent

local vitesse = 0.1
local temps = 200
local direction = Vector3.new(1, 0, 0) -- Indique la direction du déplacement

while true do
	
	for i = 1, temps do
		local position = model:GetPivot() -- Recupere l'origine du model (le point de position commun pour tous les parts)
		model:PivotTo(position + direction * ___) 
		task.wait(0.01)
	end

	for i = 1, ___ do
		local position = model:GetPivot()
		model:PivotTo(___ - direction * vitesse) 
		task.wait(0.01)
	end
end