Повторное появление монеты
Часть раздела Скриптинг игр в Roblox путешествия по Lua на Coddy. Урок 16 из 25.
Теперь каждая монета даёт 1 очко один раз. Настоящая монета должна исчезнуть, а затем появиться снова, чтобы её можно было собрать ещё раз.
Transparency = 1 скрывает деталь, но она по-прежнему вызывает событие Touched. CanTouch = false отключает вызов события Touched для детали, пока значение не будет снова установлено в true.
Чтобы вернуть её, подожди внутри функции 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)и снова покажи её:Transparency0,CanTouchtrue. - Наконец, установи
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
2Циклы и функции
Ряд столбовСтроитель лестницСтроитель башенФабрика монетМигающий светИсчезающий мост5Ваша первая игра
Ваш первый обби3События и игроки
Сенсорная плитаЛавовый полLeaderstatsКто к ней прикоснулся?Сборщик монетПовторное появление монетыДверь за монетыПотренируйтесь самостоятельно: Онлайн-компилятор Lua