Menu
CoddyTech

Réapparition des pièces

Fait partie de la section Scripting de jeux Roblox du Journey Lua de Coddy. Leçon 16 sur 25.

Chaque pièce donne maintenant 1, une seule fois. Une vraie pièce devrait disparaître, puis réapparaître pour pouvoir être ramassée à nouveau.

Transparency = 1 masque une partie, mais elle déclenche toujours Touched. CanTouch = false empêche une partie de déclencher Touched jusqu'à ce qu'elle soit rétablie à true.

Pour la faire réapparaître, attends à l'intérieur de la fonction Touched et annule les modifications. task.wait met en pause uniquement cette fonction, donc les autres contacts continuent d'arriver et sont ignorés tant que l'anti-rebond est à true :

local used = false
pad.Touched:Connect(function(hit)
	if not used then
		used = true
		pad.Transparency = 0.5
		task.wait(5)
		pad.Transparency = 0
		used = false
	end
end)

Le pad s'estompe pendant 5 secondes après un contact, puis il réapparaît et est prêt à nouveau.

challenge icon

Défi

Moyen

Fais disparaître une pièce collectée, puis fais-la réapparaître 3 secondes plus tard.

  1. Après la ligne qui ajoute la pièce, fais-la disparaître : coin.Transparency = 1 et coin.CanTouch = false.
  2. Ensuite, task.wait(3), puis fais-la réapparaître : Transparency 0, CanTouch true.
  3. Enfin, définis collected = false pour qu’elle puisse être collectée à nouveau.

Appuie sur « Jouer » et traverse une pièce : elle disparaît et réapparaît 3 secondes plus tard. Puis appuie sur « Vérifier ».

Essayez vous-même

local Players = game:GetService("Players")
local coins = workspace.Coins

Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local coinsValue = Instance.new("IntValue")
	coinsValue.Name = "Coins"
	coinsValue.Value = 0
	coinsValue.Parent = leaderstats
end)

for _, coin in coins:GetChildren() do
	local collected = false
	coin.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		if player and not collected then
			collected = true
			player.leaderstats.Coins.Value += 1
		end
	end)
end

Toutes les leçons de Scripting de jeux Roblox

Entraînez-vous par vous-même : Compilateur Lua en ligne