Финишная линия
Часть раздела Скриптинг игр в Roblox путешествия по Lua на Coddy. Урок 23 из 24.
Финишная линия засчитывает победу и отправляет победителя обратно на старт. player:LoadCharacterAsync() создаёт для игрока нового персонажа на его точке появления, не дожидаясь таймера возрождения.
Это занимает некоторое время. Пока новый персонаж не появится, финиш продолжает вызывать Touched для остальных частей тела старого персонажа, и каждая из них засчитала бы победу. Дебаунс предотвращает это, а финишу нужен отдельный дебаунс для каждого игрока, чтобы при одновременном финише двух игроков победа засчиталась обоим. Храни его в таблице, используя игрока в качестве ключа:
local busy = {}
if not busy[player] then
busy[player] = true
-- засчитать победу и отправить игрока обратно
task.wait(1)
busy[player] = nil
endbusy[player] читает или задаёт запись в таблице для этого игрока, а отсутствующая запись имеет значение nil. busy[player] = nil удаляет её, поэтому следующее пересечение снова засчитывается.
Задание
СреднеЗолотая площадка — это финиш, и этот скрипт находится внутри неё. У каждого игрока уже есть leaderstats с Wins, равным 0, и настроен дебаунс для каждого игрока.
- Добавь 1 к
Winsигрока. - Верни его к началу с помощью
player:LoadCharacterAsync(). - Затем сбрось его дебаунс, чтобы следующая попытка засчиталась.
Нажми Play, добеги до финиша дважды, а затем нажми Check.
Попробуйте сами
local Players = game:GetService("Players")
local finish = script.Parent
local busy = {}
finish.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and not busy[player] then
busy[player] = true
-- 1. Добавьте 1 к Wins игрока
-- 2. Верните игрока на старт
-- 3. Через 1 секунду снова разрешите игроку побеждать
end
end)
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Скриптинг игр в Roblox
4Игровые механики
Платформа ускоренияПлатформа для прыжковНажми на меняДверь с кнопкойДвижущаяся платформаКонтрольные точкиФинишная линия2Циклы и функции
Ряд столбовСтроитель лестницСтроитель башенФабрика монетМигающий светИсчезающий мост5Ваша первая игра
Ваш первый оббиПотренируйтесь самостоятельно: Онлайн-компилятор Lua