-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Valerii Probrazhenskiy edited this page Feb 10, 2026
·
18 revisions
- Механика (Lua Script) – скрипт, описывающий логику и поведений той или иной разновидности игры (пример механики: Пол - это лава)
- Игра (Game Json) – конкретные начальные условия игры или уровни для обработки скриптом (пример игры: Пол - это лава #1 с конкретными этапами и рисунками лавы)
- Конфиг игры (Config Json) – настройки, которые может поменять администратор перед стартом игры (пример: скорость анимации лавы, количество жизней)
- Пиксель (Pixel) – светодиодная ячейка на полу, оснащенная датчиками нажатия, размерность игрового поля задается обязательными параметрами Cols & Rows
- Кнопка (Button) – светодиодная настенная кнопка, тоже может участвовать в игре, задаются массивом Buttons и отображаются вокруг поля под номерами K1 - K78
- Нажатие (Click, подсвечивается зеленым) – событие нажатия (true) или отпускания (false) на пиксель/кнопку, превышающее заданный порог веса
- Дефект (Defect, подсвечивается красным) – вывод пикселя/кнопки из игры ввиду неисправности, на такие пиксели/кнопки не должны назначаться задания в играх
Доступные библиотеки
- log – содержит функцию .print(), которая печатает сообщение в консоль разработчика в браузере
- inspect – порт библиотеки kikito/inspect.lua для человекочитаемого вывода, например log.print(inspect(table))
- help – содержит функции глубокого и неглубокого копирования таблицы
- json – методы кодировани/декодирования JSON
- time – методы получения времени в unix формате
- audio – методы проигрывания аудио
- smoke – методы взаимодействия с дым-машиной
- colors – константы цветов и яркости
- math – стандартные функции библиотеки math
- avonlib – большая библиотека от нашего разработчика, см. avonlib.lua
Базовая структура Lua скрипта
-
Локальные переменные:
- Таблица GameObj – заполняется из Game Json, должна обязательно содержать поля Cols x Rows для задания размера пола
- Таблица GameConfigObj – заполняется из Config Json, настройки игры перед стартом (сложность, скорость, очки, жизни и т.д)
- Таблица GameStats – информация для отображения на табло (время, жизни, очки, цвета)
- Таблица GameResults – результат завершения игры, возвращается в последнем вздохе NextTick()
-
Обязательные функции:
- StartGame(gameJson, gameConfigJson) – инициализация игры, на входе Game Json и Config Json
- NextTick() – тик игрового мира, здесь вся основная логика
- RangeFloor(setPixel, setButton) – забор снапшота пола, вызывается следом за NextTick()
- GetStats() – забор статистики игры, вызывается следом за RangeFloor()
- PauseGame() – событие паузы игры
- ResumeGame() – событие снятия игры с паузы
- SwitchStage() – рычаг админа для переключения этапа, может быть полезен в некоторых играх
- PixelClick(click) – событие клика/отпускания пикселя
- ButtonClick(click) – событие клика/отпускания кнопки
- DefectPixel(defect) – событие дефектовки/раздефектовки пикселя
- DefectButton(defect) – событие дефектовки/радефектовки кнопки