События в Roblox скриптинге

Aug 5, 2024

Руководство по начальной скриптингу в Roblox: События

Введение

  • Ведущий: Balev
  • Тема: События в скриптинге Roblox
  • Аналогия: Празднование дня рождения как пример срабатывания событий.

Концепция событий

  • События — это действия, происходящие в результате других действий.
  • Пример: Открытие двери запускает празднование.

Настройка событий

  1. Отключите предыдущий скрипт: Отключите скрипт, созданный в прошлом эпизоде.
  2. Создайте новый скрипт:
    • Вставьте новый скрипт в Workspace.
    • Переименуйте его в events.
    • Удалите дефолтный код.

Общие встроенные события в Roblox

Событие добавления игрока

  • Определение: Срабатывает, когда игрок присоединяется к серверу.
  • Расположение: Находится в папке Players модели данных игры.
  • Реализация кода:
    game.Players.PlayerAdded:Connect(function(player)  
        print("К игре присоединился новый игрок.")  
        print(player)  
    end)  
    
  • Объяснение:
    • PlayerAdded обозначается символом молнии.
    • Connect связывает событие с функцией, которая выполняется при его срабатывании.

Альтернативный синтаксис функции

  • Определение функции:
    local function PlayerAdded(player)  
        print("К игре присоединился новый игрок.")  
        print(player)  
    end  
    
  • Подключение функции:
    game.Players.PlayerAdded:Connect(PlayerAdded)  
    

Второе распространенное событие: Touched

  • Определение: Срабатывает, когда часть касается другой части.
  • Настройка:
    • Вставьте новую часть в Workspace, переименуйте её в TouchPart и установите свойство Anchored, чтобы предотвратить падение из-за гравитации.
  • Реализация кода:
    local touchPart = game.Workspace.TouchPart  
    touchPart.Touched:Connect(function(otherPart)  
        print(otherPart.Name)  
    end)  
    
  • Объяснение:
    • Определяет, какая часть касается TouchPart.

Добавление дебаунса к событиям касания

  • Определение дебаунса: Метод, предотвращающий многократное срабатывание события в короткий период.
  • Шаги реализации:
    1. Инициализируйте логическую переменную для отслеживания состояния касания:
      local partIsTouched = false  
      
    2. Проверьте, коснулась ли часть:
      if not partIsTouched then  
          partIsTouched = true  
          -- Вывод на печать здесь  
      end  
      
    3. Введите задержку с task.wait():
      task.wait(2)  
      partIsTouched = false  
      
  • Результат: Событие будет срабатывать только раз в две секунды.

Заключение

  • Поощрите студентов экспериментировать с событиями Touched и PlayerAdded.
  • Предложите изменить цвета частей при касании или использовать данные игрока в скриптах.
  • Попросите студентов поделиться своим кодом в комментариях.

  • Следующий эпизод: Больше техник скриптинга и использования событий.