Menu
CoddyTech

Münzen respawnen

Teil des Abschnitts Roblox-Spiele skripten der Lua-Journey von Coddy. Lektion 16 von 25.

Jede Münze gibt jetzt einmal 1. Eine echte Münze sollte verschwinden und dann wieder erscheinen, damit sie erneut eingesammelt werden kann.

Transparency = 1 blendet einen Teil aus, aber er löst weiterhin Touched aus. CanTouch = false sorgt dafür, dass ein Teil Touched nicht mehr auslöst, bis es wieder auf true gesetzt wird.

Damit es wieder erscheint, wartest du innerhalb der Touched-Funktion und machst die Änderungen rückgängig. task.wait pausiert nur diese Funktion, sodass weitere Berührungen eintreffen und ignoriert werden, solange der Entprellwert true ist:

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)

Das Pad blendet nach einer Berührung 5 Sekunden lang aus. Danach ist es wieder da und einsatzbereit.

challenge icon

Aufgabe

Mittel

Lass eine eingesammelte Münze verschwinden und 3 Sekunden später wieder erscheinen.

  1. Blende sie nach der Zeile aus, die die Münze hinzufügt: coin.Transparency = 1 und coin.CanTouch = false.
  2. Führe dann task.wait(3) aus und zeige sie wieder an: Transparency 0, CanTouch true.
  3. Setze zuletzt collected = false, damit sie erneut eingesammelt werden kann.

Drücke „Spielen“ und gehe durch eine Münze: Sie verschwindet und erscheint 3 Sekunden später wieder. Drücke dann „Prüfen“.

Probier es selbst

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

Alle Lektionen in Roblox-Spiele skripten

Übe selbstständig: Online-Lua-Compiler