Просмотр
Материал из DoomDev
Страница «
Полиобъекты
»
Перейти к:
навигация
,
поиск
''[Этот раздел с небольшими изменениями взят из официальных спецификаций Hexen]'' Полиобъекты – это односторонние линии, которые строятся на карте где-то в другом месте, а затем при загрузке уровня преобразуются в желаемые точки появления на карте. При построении полиобъектов можно использовать два различных спецификатора линий, определяющих порядок рисования линий: Polyobj_ExplicitLine(polyNumber, orderNumber, polyMiror, sound); Polyobj_StartLine (polyNumber, polyMirror, sound); Каждый полиобъект должен иметь уникальный '''polyNumber''', используемый в спецификаторах линий полиобъектов, чтобы связать их с конкретным полиобъектом. '''polyMirror''' указывает на второй полиобъект, который будет «отражать» все действия первого. Например, если полиобъект вращается вправо на 90 градусов, то зеркало полиобъекта будет вращаться влево на 90 градусов. Обратите внимание, что иметь два полиобъекта, отражающих друг друга, считается плохой идеей, но обычно это не вызывает проблем, так как в каждый конкретный момент времени полиобъект может выполнять только одно действие. То есть: если полиобъект, вращающийся влево на 90 градусов, отражает полиобъект, вращающийся вправо, то он будет игнорировать все попытки вращать его снова, так как он уже что-то делает. Последний параметр этих спецификаторов определяет конкретную дверную последовательность звуков, проигрываемую при движении или вращении полиобъекта. Более подробную информацию можно получить в разделе последовательности звуков. == Polyobj_StartLine == Очень простой спецификатор. Установите его у отдельной линии полиобъекта, и она будет первой отображаемой линией полиобъекта. Порядок отображения остальных линий, определяется путем перебора линий, пока не встретится такая, у которой первая точка совпадает со второй точкой первой линии. Третьей отображаемой линией будет линия, у которой первая точка совпадает со второй точкой второй линии, и т.д. и т.п. Этот способ работает хорошо, если полиобъекты выпуклы, и имеет то преимущество, что оставляет свободными все линии кроме одной для других спецификаторов линий. == Polyobj_ExplicitLine == Использование этого спецификатора чуть сложнее. Его должна использовать каждая линия в полиобъекте, определенном при помощи этого спецификатора. Затем значение 1-255 должно быть помещено в '''orderNumber'''. Этот аргумент определяет порядок отображения линий, причем 1 – означает первую отображаемую линию и т.д. Он полезен для невыпуклых полиобъектов, но его недостатком является то, что нужно указывать спецификатор для каждой линии полиобъекта. == Точки появления полиобъектов и якори == Каждый полиобъект должен иметь якорь и точку появления. Якорь размещается около полиобъекта и определяет точку отсчета для полиобъекта или точку, вокруг которой он будет вращаться. Якорь (и все линии полиобъекта) напрямую преобразуются в точку появления полиобъекта. Итог: Якорь – это точка недалеко от полиобъекта, а точка появления полиобъекта – точка на самой карте, определяющая местонахождения полиобъекта. Существует два различных типа точек появления: давящие и не давящие. Очевидно, чем они отличаются J Если полиобъект нажимает на объект, то сначала он пытается его сдвинуть, а в случае неудачи или попытается нанести ему повреждение или просто остановится. Что именно произойдет, зависит от типа точки появления. Обратите внимание, что поле ANGLE точки появления и якоря должны быть равны '''polyNumber''', ранее указанному для соответствующего полиобъекта. абота над полиобъектами была закончена перед реализацией кода TID/спецификаторов, поэтому Raven сделала такой временный ход, который оказался постоянным, так как проектировщики уже сделали очень много полиобъектов и не захотели исправлять их. ''[А Randy сохранил это для совместимости с картами Hexen.]''
Шаблон:Zdoomwikibased2
Возврат к странице
Полиобъекты
.
Просмотры
Статья
Обсуждение
Просмотр
История
Личные инструменты
Представиться системе
Навигация
Заглавная страница
Сообщество
Текущие события
Свежие правки
Случайная статья
Справка
Поиск
Инструменты
Ссылки сюда
Связанные правки
Загрузить файл
Спецстраницы