Pipes
Pipes - объект, который обладает механикой сбора трубопровода (микросхемы и т.п.) путем поворота отдельных элементов . Объект реализован в виде матрицы, каждая ячейка которой содержит вращающийся элемент. При инициализации объекта pipes все его элементы (ячейки) случайным образом поворачиваются, разрывая соединение входа и выхода. Каждый клик на элемент поворачивает его по часовой стрелке на 90 градусов. Игра считается завершенной, если между входом и выходом трубопровода образуется цепь правильно повернутых элементов.
Общие параметры (см. описание Object)
- положение - координаты левого верхнего угла игрового поля по оси x и y;
- размер - ширина и высота одной ячейка трубопровода.
Основные параметры
Группа - внешний вид:
- картинка - анимация, состоящая из элементов трубопровода начиная с пустого, перетаскивается мышкой из базы ресурсов;
- колонок - количество ячеек с элементами по горизонтали;
- строчек - количество ячеек с элементами по вертикали;
- время поворота - время поворота элемента в миллисекундах.
Группа - 'внешний вид - эффект луча':
- прямая (|) - Графический ресурс луча проходящего через ячейку по прямой вертикально (соотв. кадру 1);
- угол - Графический ресурс луча проходящего через ячейку с зеркалом (соотв. кадру 2);
- крест - Графический ресурс луча проходящего через ячейку с зеркалом (соотв. кадру 4,5);
Все кадры анимации, указанной в поле картинка, должны быть одного размера. Последовательность кадров в анимации должна строго соответствовать приведенной на рисунке ниже:
- Нулевой кадр - пустой;
- Первый кадр - прямой элемент с двумя соединениями на верхней и нижней гранях;
- Второй кадр - изогнутый элемент с двумя соединениями на правой и нижней гранях;
- Третий кадр - тройник с соединениями на правой, нижней и левой гранях;
- Четвертый кадр - крестик с соединениями на всех четырех гранях;
- Пятый кадр - пересечение двух прямых не совмещенных элементов (верхнее и нижнее соединения относятся к одному элементу, правое и левое ко второму);
- Шестой кадр - два изогнутых не совмещенных элемента (правое и нижнее соединения относятся к одному элементу, верхнее и левое ко второму).
Группа - вход:
- x - номер столбца ячейки, с которой будет начинаться трубопровод, нумерация начинается с 0 и следует слева направо;
- y - номер строка ячейки, с которой будет начинаться трубопровод, нумерация начинается с 0 и следует сверху вниз;
- грань - номер грани ячейки элемента, которая считается входом (если отправной точкой является верхняя грань, то значение поля 0, правая грань - 1, нижняя - 2, левая - 3).
Группа - выход:
- x - номер столбца ячейки, которой будет заканчиваться трубопровод, нумерация начинается с 0 и следует слева направо;
- y - номер строка ячейки, которой будет заканчиваться трубопровод, нумерация начинается с 0 и следует сверху вниз;
- грань - номер грани ячейки элемента, которая считается выходом (верхняя грань - значение 0, правая - 1, нижняя - 2, левая - 3).
Группа - настройки уровня:
- Расклад - "рисунок" собранного уровня в виде массива пар чисел через запятую, например, 1,0,0,0,2,3,.. и т.д. Каждая пара чисел описывает один элемент (ячейку), первое число в паре - номер кадра анимации, который будет рисоваться в ячейке, второе число - угол поворота этого кадра (0 - без поворота, 1 - поворот на 90 по часовой стрелке, 2 - поворот на 180 по часовой, 3 - поворот на 270 по часовой). Элементы описываются построчно, начиная с левого верхнего. Для пустых ячеек первое число в паре - 0 (начальный пустой кадр анимации).
- файл уровней - Путь к файлу с описанием уровней;
- номер уровня - Номер уровня.
Проверка висячих - 1- не считать уровень пройденным, если у присоединенного ко вхожу узла есть свободные соединения нет=0, да=1";
вращать кресты - условие сбора уровня, принимает значение 0 или 1. 1-крестообразные ячейки будут вращаться, 0-не будут (речь идет о кадрах 4 и 5, эффекта такое вращение в любом случае не дает нет=0, да=1".
Добавляемые параметры
Меню выбора Добавляемые параметры к объектам активируется по правой кнопки мыши.
Вход в трубопровод (используется, если входов больше одного):
- x - номер столбца ячейки, с которой будет начинаться трубопровод;
- y - номер строка ячейки, с которой будет начинаться трубопровод;
- грань - номер грани ячейки элемента, которая считается входом.
Выход из трубопровода (используется, если выходов больше одного):
- x - номер столбца ячейки, которой будет заканчиваться трубопровод;
- y - номер строка ячейки, которой будет заканчиваться трубопровод;
- грань - номер грани ячейки элемента, которая считается входом.
- объект - объект, который перейдет в новое состояние, если элемент трубопровода повернуть правильно;
- состояние - новое состояние объекта из предыдущего поля.
- объект - объект, который перейдет в новое состояние по собиранию pipes;
- состояние - новое состояние объекта из предыдущего поля.
Изменить параметр (свойство) объекта:
- объект - объект, которому будет меняться параметр по собиранию pipes;
- параметр - изменяемый параметр;
- значение - новое значение параметра.
Состояния
Объекту pipes можно передавать следующие состояния:
- init - элементы трубопровода поворачиваются произвольным образом, разрывая соединение входа с выходом;
- skip - каждый элемент поворачивается в положение указанное в поле расклад за время поворота, после чего pipes считается собранным, и устанавливаются добавляемые параметры, если они есть.
Примечания и дополнения
Вариантов собранного трубопровода может быть несколько, в зависимости от рисунка, но в случае скипа всегда будет рисоваться вариант, указанный в раскладе.
Трубопровод может иметь несколько входов и выходов. Линия, которая строится при этом, должна соединять в одну сеть все входы и выходы (возможность ставить в соответствие каждому входу свой выход пока не реализована).