코인 재생성
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초 동안 희미해졌다가 다시 나타나 사용할 수 있는 상태가 됩니다.
챌린지
중급수집한 코인을 숨긴 다음 3초 후에 다시 나타나게 하세요.
- 코인을 추가하는 줄 다음에 코인을 숨기세요:
coin.Transparency = 1및coin.CanTouch = false. - 그런 다음
task.wait(3)을 실행하고 다시 나타나게 하세요:Transparency를0으로,CanTouch를true로 설정합니다. - 마지막으로
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 컴파일러