"Симулятор бега": как сделать свои настройки в Роблокс

Roblox — это популярная платформа, которая позволяет пользователям создавать свои собственные виртуальные миры и игры. Она построена вокруг главного концепта "сделай сам" и предоставляет инструменты для разработки игрового контента, таких как моделирование, программирование и создание анимаций.

"Симулятор бега": как сделать свои настройки в Роблокс

Пользователи могут создавать и продавать свои собственные игры, а также присоединяться к играм, созданным другими пользователями. Roblox также имеет встроенную социальную платформу, позволяющую игрокам взаимодействовать, общаться и играть вместе. Платформа доступна на различных устройствах, включая компьютеры, смартфоны и планшеты. Продукты Roblox часто предназначены для детей и подростков, и имеют широкую аудиторию всех возрастов.

Сегодня мы изучим ту часть программирования в Roblox, которая позволяет запустить собственные настройки в созданной игре Roblox. Если вам удобнее смотреть урок от школы Pixel в видеоформате, то он будет размещен внизу материала.

Создание элементов

В самом начале нашего урока мы создадим панель, с помощью которой можно будет настраивать многочисленные параметры игры в Roblox. С помощью созданной панели можно будет за одно нажатие включить или отключить тени, которые есть на карте, изменить время (выбрать день, ночь, вечер или утро), а также ускорить персонажа или заполнить карту густым туманом. Все эти навыки очень полезны для тех игроделов, кто в будущем хочет развиваться в геймдев индустрии.

Сначала нам нужно запустить терминал и, если у вас запущены стандартные настройки, справа найти раздел Explorer. В нем должен быть размещен раздел с названием StarterGui. Теперь нужно просто нажать правой кнопкой мыши на этот раздел, вызвав контекстное меню. И теперь в этом контекстном меню нужно выбрать New Object, а далее ScreenGui. То есть изначально вы выбрали меню, в котором находятся стартовые скрипты с графикой, после чего выбрали новый объект, а в нем также выбрали экранную графику.

"Симулятор бега": как сделать свои настройки в Роблокс

Для примера в ScreenGui можно выбрать параметр Frame — тогда у вас в рабочем пространстве появится пустой квадрат (рамка), которую можно растягивать в одной плоскости в любую сторону.

А если выбрать TextLabel, то можно вписать в эту рамку любой понравившийся текст. Добавив текстовую кнопку со скриптом нужно настроить ее вид и продублировать несколько раз, получив в итоге 4 кнопки. Текст у кнопок писать не нужно, так как он будет выводиться с помощью скрипта. Далее последовательно откройте 4 скрипта и начните работу с ними.

Скрипт кнопки теней

Первый скрипт будет связан с работой с тенями. Для его настройки нужно будет выполнить несколько шагов:

  • Получить доступ к сервису Lighting. Для этого нужно прописать строчку без кавычек "local Lighting = game:GetService(“Lighting”)"». После чего у нас появляется доступ к объекту кнопки, на которой и находится как раз именно этот скрипт, с помощью строки "local ShadowButton = script.Parent".
  • Далее нужно создать переменную ShadowState, поэтому третьей строчкой нужно прописать "local shadowState = false". Этот параметр означает, что по умолчанию на карте все тени будут выключены.

После выполненных шагов необходимо прописать следующие строчки (без кавычек):

"ShadowButton. MouseButtonClick:Connect(function()

shadowState = not shadowState

Lighting.GlobalShadows = shadowState»

После чего нужно пропустить одну строку и ниже написать:

"if shadowState then

ShadowButton.Text = “Тени: Включено”

else

ShadowButton.Text = “Тени: Выключено”

end

end)"

Расскажем подробнее, что же мы сделали и какие настройки в Roblox включали. Изначально мы "подключились" к сервису, который отвечает за работу света и "привязали" его к кнопке. После чего провели настройку и дали понять системе, что изначально у нас не будет теней. Затем настроили кнопку таким образом, чтобы при нажатии на нее свет все-таки включался. И если тени включены, то на нашей кнопке будет размещен текст "Тени: включено". Если теней нет, то на кнопке будет написан соответствующий состоянию теней текст.

В итоге, каждый раз, нажимая на кнопку, состояние теней в игре будет меняться, а текст кнопки будет обновляться, чтобы отражать актуальное состояние теней.

"Симулятор бега": как сделать свои настройки в Роблокс

Создаем кнопку переключения времени

А теперь мы переключаемся на другой скрипт, который отвечает за время. Здесь нужно пошагово выполнить следующие пункты:

  • Снова подключаемся к сервису Lighting, который управляет освещением и временем суток в игре.
  • Затем мы находим текстовую кнопку (TimeButton), которая содержит этот скрипт.
  • Устанавливаем начальное значение переменной TimeState равным 1, что означает, что время суток установлено на "день".
  • Прописываем на кнопке "Время дня: день", чтобы мы визуально отмечали текущее время суток.
  • Далее подключаем функцию к событию MouseButton1Click, которая будет вызываться при нажатии на кнопку.
  • Внутри функции мы увеличиваем значение переменной TimeState на 1 с помощью оператора +=. Если значение TimeState превышает 4, мы возвращаем его обратно к 1, чтобы переключаться между временами суток.
  • Затем мы используем условные операторы (elseif) для установки соответствующего времени суток в сервисе Lighting и обновления текста на кнопке.
  • В зависимости от значения переменной TimeState, мы вызываем метод SetMinutesAfterMidnight у объекта Lighting и устанавливаем нужное время суток в минутах.
  • Затем мы обновляем текст кнопки в соответствии с установленным временем суток.
  • Таким образом, при каждом нажатии на кнопку, значение переменной TimeState увеличивается, время суток в игре изменяется соответствующим образом, а текст кнопки обновляется, чтобы отразить текущее время суток.

Так как для детей Roblox — это интерактивная платформа, им точно будет интересно разобраться со всеми настройками и настроить работу платформы под себя.

"Симулятор бега": как сделать свои настройки в Роблокс

IT для детей: создаем кнопку управления туманом в "Роблокс"

Как и с первой кнопкой, мы начинаем все с того, что подключаемся к сервису Lighting, который управляет освещением, временем дня и даже туманом. Интересный и многогранный сервис на самом деле.

После чего находим текстовую кнопку FogButton и прописываем "local FogButton = script.Parent".

Далее мы устанавливаем начальное значение переменной FogState равным 0, что означает, что туман отключен, и на кнопке также прописываем это текстом, например, "Туман: отключен".

Затем мы подключаем функцию к событию MouseButton1Click, которая будет вызываться при нажатии на кнопку. При этом внутри функции мы увеличиваем значение переменной FogState на 1 с помощью оператора +=. Если значение FogState превышает 3, мы возвращаем его обратно к 1, чтобы переключаться между разными уровнями интенсивности тумана.

Если вы дочитали до этого места, поздравляем. Осталось совсем немного. Также ниже этого блока текста вы сможете найти скриншот со всем кодом.

Далее мы используем условные операторы (elseif) для установки соответствующей интенсивности тумана в сервисе Lighting и обновления текста на кнопке.

Также в зависимости от того, какое значение сейчас у переменной FogState, мы можем изменить свойство FogEnd у объекта Lighting, чтобы выбирать дистанцию, на которую будет распространяться туман.

После произведенных манипуляций меняем текст на кнопке, который будет отражать интенсивность тумана.

Таким образом, при каждом нажатии на кнопку, значение переменной FogState увеличивается, уровень интенсивности тумана в игре изменяется, а текст кнопки обновляется, чтобы отразить текущий уровень интенсивности тумана.

"Симулятор бега": как сделать свои настройки в Роблокс

Изучение программы для настройки скорости перемещения персонажа

Предпоследний наш блок будет касаться управления скоростью персонажа. Можно экспериментировать и сделать из него супергероя, который обгонит даже Флеша, а можно заставить двигаться медленнее самой неповоротливой черепахи.

Чтобы настроить этот блок, нужно выполнить и указать следующие условия:

  • Получаем доступ к объекту кнопки, на которой находится этот скрипт, с помощью script.Parent.
  • Создаем переменную SpeedState и устанавливаем ее значение равным 1. Это переменная, которая будет отслеживать текущее состояние скорости.
  • Устанавливаем текст кнопки в "Скорость: стандарт" с помощью SpeedButton.Text = "Скорость: стандарт".
  • Получаем имя игрока, чей персонаж будет изменять скорость, с помощью script.Parent.Parent.Parent.Parent.Parent.Name. Здесь мы предполагаем, что скрипт находится в кнопке, которая находится внутри объекта SettingsGui. С первого взгляда может показаться, что это ошибка и нет необходимости несколько раз прописывать параметр parent, на самом деле это то, что можно делать в Roblox.
  • Добавляем обработчик события MouseButton1Click для кнопки, который будет вызываться при нажатии на кнопку. Обратите внимание, что функция обработчика принимает аргумент player, который будет представлять игрока, вызвавшего событие. В данном случае, мы будем использовать это аргумент, чтобы получить доступ к игроку и его персонажу.
  • Внутри обработчика события увеличиваем значение переменной SpeedState на 1 с помощью SpeedState += 1. Если значение SpeedState становится больше 3, мы обнуляем его, чтобы вернуться к начальному состоянию.
  • Мы создаем переменную speedText, которая будет хранить текст, отображаемый на кнопке в зависимости от текущего состояния скорости.
  • Получаем доступ к игроку с помощью имени игрока, которое мы получили ранее. Мы используем game.Players[playerName], чтобы получить объект игрока.
  • Если игрок имеет персонаж (player.Character не равно nil), мы получаем доступ к объекту Humanoid персонажа с помощью player.Character:FindFirstChildOfClass('Humanoid').
  • Если объект Humanoid найден, мы используем условное выражение для установки скорости персонажа в зависимости от значения SpeedState. Если SpeedState равно 1, мы устанавливаем скорость равной defaultSpeed (стандартная скорость). Если SpeedState равно 2, мы устанавливаем скорость в два раза выше стандартной (defaultSpeed * 2). Если SpeedState равно 3, мы устанавливаем скорость в три раза выше стандартной (defaultSpeed * 3).
  • Мы обновляем текст кнопки с помощью SpeedButton.Text = speedText, чтобы отобразить текущее состояние скорости.

И вот мы уже на финишной прямой. Изучение Roblox может даваться не так быстро, но вскоре вы получите результат и сполна насладитесь работой своего алгоритма.

"Симулятор бега": как сделать свои настройки в Роблокс

Программирование для школьников: настраиваем кнопку показа меню

Теперь нам нужно выйти из скриптов в визуальную оболочку. На объекте ScreenGui добавляем (из Explorer) imageButton, а в атрибуте изображения укажем ссылку на изображение из тулбокса, или иную картинку, которая визуально будет указывать на то, что здесь у нас находятся настройки.

Далее прописываем следующий скрипт:

menuVisible = false

script.Parent.Parent.Frame.Visible = menuVisible

script.Parent.MouseButton1Click:Connect(function()

menuVisible = not menuVisible

script.Parent.Parent.Frame.Visible = menuVisible

end)

Теперь, когда мы прошли такой путь от написания первого скрипта, до настройки последнего, можно запускать игру. В ней персонаж появляется на безграничной карте и может перемещаться в любую сторону. Но так как мы настроили для него специальное меню, он может бежать днем, ночью, или утром. Также он может ускоряться и прорываться сквозь туман.

"Симулятор бега": как сделать свои настройки в Роблокс

Если вы хотите, чтобы ваш ребенок быстро развился в сфере создания игр, отправляйте его на обучение в школу программирования Pixel. Здесь он сможет изучить популярные языки программирования, научится работать в команде и разовьет ИТ-навыки. В будущем это поможет ему, если он захочет участвовать в хакатонах, ИТ-соревнованиях и других активностях.

11
Начать дискуссию