Menu
CoddyTech

코인 재생성

Coddy Lua 여정의 Roblox 게임 스크립팅 섹션에 포함된 레슨. 25개 중 16번째.

이제 동전 하나를 밟을 때마다 1을 한 번 줍니다. 실제 동전은 사라졌다가 다시 나타나서 다시 수집할 수 있어야 합니다.

Transparency = 1은 파트를 숨기지만, 그래도 Touched 이벤트는 발생합니다. CanTouch = false로 설정하면 다시 true로 설정할 때까지 파트에서 Touched 이벤트가 발생하지 않습니다.

파트를 다시 나타나게 하려면 Touched 함수 안에서 기다린 다음 변경 사항을 되돌리세요. task.wait는 이 함수만 일시 중지하므로 다른 접촉 이벤트는 계속 들어오고, 디바운스가 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)

접촉 후 패드는 5초 동안 희미해졌다가 다시 나타나 사용할 수 있는 상태가 됩니다.

challenge icon

챌린지

중급

수집한 코인을 숨긴 다음 3초 후에 다시 나타나게 하세요.

  1. 코인을 추가하는 줄 다음에 코인을 숨기세요: coin.Transparency = 1 및 coin.CanTouch = false.
  2. 그런 다음 task.wait(3)을 실행하고 다시 나타나게 하세요: Transparency를 0으로, CanTouch를 true로 설정합니다.
  3. 마지막으로 collected = false로 설정해 다시 수집할 수 있게 하세요.

‘플레이’를 누르고 코인을 통과해 걸어가 보세요. 코인이 사라졌다가 3초 후에 다시 나타납니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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

Roblox 게임 스크립팅의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러