Dans ce module, tu vas apprendre Ă :
Inchangé — Ce script va dans ServerScriptService.
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local score = Instance.new("IntValue")
score.Name = "Pieces"
score.Value = 0
score.Parent = leaderstats
end)
rbxassetid://1508145469) dans la propriété SoundId.Ce script est plus intelligent : il joue le son et cache la pièce avant de la détruire pour ne pas couper la musique !
local piece = script.Parent
local sonPiece = piece:WaitForChild("SonPiece")
local dejaRamasse = false
function onTouch(objetQuiTouche)
local joueur = game.Players:GetPlayerFromCharacter(objetQuiTouche.Parent)
if joueur and not dejaRamasse then
dejaRamasse = true
-- 1. Mise Ă jour du score
joueur.leaderstats.Pieces.Value = joueur.leaderstats.Pieces.Value + 1
-- 2. On joue le son
sonPiece:Play()
-- 3. On rend la pièce invisible et on désactive le toucher
piece.Transparency = 1
piece.CanCollide = false
-- 4. On attend la fin du son avant de supprimer la pièce pour de bon
sonPiece.Ended:Wait()
piece:Destroy()
end
end
piece.Touched:Connect(onTouch)
Attention : Un cylindre ne tourne pas sur l’axe Y (le milieu), mais sur l’axe X (le côté) !
local piece = script.Parent
local vitesse = 0.05
while true do
-- Pour un cylindre, on utilise le PREMIER chiffre (Axe X)
piece.CFrame = piece.CFrame * CFrame.Angles(vitesse, 0, 0)
task.wait(0.02)
end
Ta mission principale est de créer le GDD (Game Design Document) de ton futur jeu.
C’est quoi un GDD ?
C’est le “plan d’architecte” du jeu, écrit par le créateur (toi !). Ta mission est de décrire le plus précisément possible ce que tu as dans la tête pour ton jeu, pour que n’importe quel développeur qui lit ton document sache exactement ce qu’il doit programmer et fabriquer pour toi.
Ce que tu dois décrire précisément dans ton document :
local piece = script.Parent
local vitesse = ___
while true do
-- Rappel : Pour un cylindre, c'est l'axe X !
piece.CFrame = piece.CFrame * CFrame.Angles(___, 0, 0)
task.wait(___)
end
-- Pour ne pas couper le son, on fait :
sonPiece:___() -- Jouer le son
piece.____ = 1 -- Rendre invisible
piece.CanCollide = ____ -- EmpĂŞcher de toucher Ă nouveau
sonPiece.Ended:____() -- Attendre la fin
piece:Destroy()