Теперь переключаемся на второй скрипт, который отвечает за управление временем суток в игре.
Сначала снова подключаемся к сервису Lighting, который в Roblox отвечает не только за освещение, но и за смену времени в игровом мире. Для этого используем уже знакомый метод game:GetService.
Далее находим текстовую кнопку TimeButton, внутри которой будет размещен данный скрипт — именно она будет управлять сменой времени при нажатии.
После этого создаем переменную TimeState и задаем ей начальное значение 1. Это будет означать, что при запуске игры установлено время суток «день».
Также сразу прописываем текст на кнопке:
Время дня: день
Это нужно для того, чтобы игрок сразу видел текущее состояние времени.
Далее подключаем обработчик нажатия кнопки с помощью события MouseButton1Click. Именно он будет срабатывать каждый раз, когда игрок нажимает на кнопку.
Внутри функции увеличиваем значение переменной TimeState на 1. В Lua это можно сделать через TimeState += 1. Если значение становится больше 4, мы сбрасываем его обратно на 1, чтобы цикл времени повторялся: день → вечер → ночь → утро → снова день.
Далее используем условные операторы if / elseif, чтобы в зависимости от значения TimeState задавать нужное время суток в игре. Для этого используем метод:
Lighting:SetMinutesAfterMidnight()
Он позволяет установить точное время в минутах внутри игрового мира.
После каждого изменения времени мы также обновляем текст кнопки, чтобы игрок всегда видел актуальное состояние — например:
- «Время дня: утро»
- «Время дня: день»
- «Время дня: вечер»
- «Время дня: ночь»
Таким образом, при каждом нажатии кнопки происходит переключение времени суток, а интерфейс сразу отражает изменения.
Roblox как интерактивная платформа отлично подходит для таких экспериментов, потому что дети могут не только играть, но и настраивать поведение игры своими руками, постепенно погружаясь в основы программирования и геймдизайна.