Accueil Login Register
🎯 Objectif du module 1. Créer le système de score (Leaderstats) 2. Créer l’objet “Pièce” 3. Le Script de ramassage 4. (Bonus) Faire tourner la pièce Exercices pour dans deux semaines Annexes 1. Script de score (à compléter) 2. Script de rotation personnalisé (à compléter)

RobloxStudio - Module 5 - Les pièces et le score !

🎯 Objectif du module

Dans ce module, tu vas apprendre à :

👉 À la fin de ce module, ton jeu aura un vrai système de progression !


1. Créer le système de score (Leaderstats)

Pour que Roblox sache combien de pièces le joueur possède, il faut créer un dossier spécial appelé leaderstats.

  1. Allez dans ServerScriptService (dans l’Explorer).
  2. Faites un clic droit > Insert > Script.
  3. Renommez-le ScoreManager.
  4. Copiez ce code :
game.Players.PlayerAdded:Connect(function(player)
	-- Création du dossier leaderstats
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	-- Création de la valeur "Pieces"
	local score = Instance.new("IntValue")
	score.Name = "Pieces" -- C'est le nom qui s'affichera en haut
	score.Value = 0
	score.Parent = leaderstats
end)


2. Créer l’objet “Pièce”

Maintenant, on crée l’objet physique que le joueur va ramasser.

  1. Créez une Part (cylindre de préférence pour faire pièce).
  2. Renommez-la “Piece”.
  3. Dans les Propriétés, cochez Anchored et décochez CanCollide (pour passer à travers sans se cogner).
  4. Ajoutez une couleur dorée et changez la taille pour qu’elle ressemble à une pièce.

3. Le Script de ramassage

Ce script détecte quand un joueur touche la pièce, augmente son score, puis fait disparaître la pièce.

  1. Insérez un Script à l’intérieur de votre “Piece”.
  2. Copiez ce code :
local piece = script.Parent
local dejaRamasse = false

function onTouch(objetQuiTouche)
	local joueur = game.Players:GetPlayerFromCharacter(objetQuiTouche.Parent)

	if joueur and not dejaRamasse then
		dejaRamasse = true -- Empêche de ramasser la pièce plusieurs fois
		
		-- On augmente le score du joueur
		joueur.leaderstats.Pieces.Value = joueur.leaderstats.Pieces.Value + 1
		
		-- On fait disparaître la pièce
		piece:Destroy()
	end
end
piece.Touched:Connect(onTouch)


4. (Bonus) Faire tourner la pièce

Une pièce statique est moins jolie. Ajoutons un peu de mouvement avec une boucle !

  1. Ajoutez un nouveau Script dans votre “Piece” (ou ajoutez ceci au script précédent).
  2. Copiez ce code :
local piece = script.Parent

while true do
	piece.CFrame = piece.CFrame * CFrame.Angles(0, 0.1, 0)
	task.wait(0.05)
end


Exercices pour dans deux semaines


Annexes

1. Script de score (à compléter)

Dans le script qui suit, les parties à compléter sont désignées par ___.
Rappel : ce script va dans le ServerScriptService.

game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "___" -- Doit s'appeler comme ça pour s'afficher
	leaderstats.Parent = player

	local score = Instance.new("IntValue")
	score.Name = "Pieces"
	score.Value = ___ -- Valeur de départ
	score.Parent = leaderstats
end)

2. Script de rotation personnalisé (à compléter)

Dans le script qui suit, les parties à compléter sont désignées par ___.
Ce script va à l’intérieur de ta pièce.

local piece = script.Parent
local vitesse = 0.2 -- Change cette valeur pour aller plus vite ou moins vite

while true do
	-- On fait tourner la pièce sur l'axe Y
	piece.CFrame = piece.CFrame * CFrame.Angles(0, ___, 0)
	task.wait(___) -- Temps entre chaque petit mouvement
end