Menu
CoddyTech

Odradzanie monet

Część sekcji Skryptowanie gier w Roblox ścieżki Lua w Coddy. Lekcja 16 z 25.

Każda moneta daje teraz 1, tylko raz. Prawdziwa moneta powinna znikać, a potem wracać, żeby można ją było zebrać ponownie.

Transparency = 1 ukrywa część, ale nadal wywołuje zdarzenie Touched. CanTouch = false sprawia, że część przestaje wywoływać zdarzenie Touched, dopóki nie zostanie z powrotem ustawione na true.

Aby ją przywrócić, poczekaj wewnątrz funkcji Touched i cofnij zmiany. task.wait wstrzymuje tylko tę funkcję, więc nadal docierają kolejne dotknięcia, które są ignorowane, gdy blokada zapobiegająca wielokrotnemu uruchomieniu ma wartość 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)

Po dotknięciu pad znika na 5 sekund, a potem wraca i znów jest gotowy.

challenge icon

Wyzwanie

Średni

Spraw, aby zebrana moneta znikała, a następnie pojawiała się ponownie po 3 sekundach.

  1. Po wierszu, który dodaje monetę, ukryj ją: coin.Transparency = 1 i coin.CanTouch = false.
  2. Następnie użyj task.wait(3) i pokaż ją ponownie: Transparency 0, CanTouch true.
  3. Na koniec ustaw collected = false, aby można ją było zebrać ponownie.

Naciśnij „Graj” i przejdź przez monetę: zniknie, a po 3 sekundach pojawi się ponownie. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Skryptowanie gier w Roblox

Poćwicz samodzielnie: Kompilator Lua online