Векторы.




ВекторЧто такое векторы? Из курса геометрии и алгебры класса примерно девятого, узнаём, что векторы - отрезки, имеющие направление. Так и сдесь. Любая линия сдесь - вектор, так как имеет направление. Направление зависит от первой стороны. На рисунке вы видите эту зависимость.



Простые векторы.


Эту тему сначала хотел назвать "простые движения" :). Ну ладно, дело у нас нешуточное: щас будем двигать текстуры пола и потолка.
Сдесь мы видим вектор, имеющий тип "Scroll Tagged Floor". Это значит, что пол движется в том же направление, что и вектор. Скорость движения зависит от длины вектора, она будет в 32 раза меньше длины вектора. С таким же успехом можно двигать и текстуру стены. Если вектор будет параллелен линии, то текстура будет двигаться горизонтально, если перпендикулярен, то вертикально. Если он будет под непонятным углом, то и то, и другое сразу. Сектор/линия не могут иметь более одного двигающего вектора.



Комплексные векторы.


Существуют сложные векторы. Они реагируют на изменение высоты сектора, в котором находяться (высота сдесь - расстояние между полом и потолком). Скорость движения текстуры сдесь равна длине вектора, делённая на 32 и умноженная на разницу в высоте сектора. То есть конечная высота минус начальная. Значит, если изменения нет, разница равна нулю, то и скорость равна 0. Если разница = 1, то скорость равна длине вектора, делённой на 32. Если изменение больше 1, то скорость равна длине вектора, делённой на 32 и умноженной на разницу. Если же высота сектора стала уменьшаться, то следовательно, скорость по направлению будет противоположной направлению вектора. Если пол (или потолок) поменял высоту мгновенно, то и скорость изменилась мгновенно. Если же пол или потолок двигаются медленно, на большое расстояние, то и скорость будет изменяться плавно. Также точно ведёт себя и текстура стены. Сектор/линия не могут иметь более одного двигающего вектора.
Ещё один вид векторов - ускоряющие векторы. Они действуют как предыдущие: реагируют на высоту. На рисунке слева: два сектора - большой и маленький. В маленьком секторе тоже 3 линии, только линия, отмеченная II равна 4. То есть, скорость такого вектора равна 1/8. Зачем так жестоко? Щас обьясню. I - простой двигающий вектор. Длина равна 256, скорость текстуры = 8. II - сложный ускоряющий сектор. III - нацелен на маленький сектор, придвигает пол к потолку (мы тем самым меняем высоту пола в секторе и активируем ускоритель). Чем отличаются двигающий и ускоряющий сектора? Сектор может иметь только 1 двигающий вектор, но бесконечное множество ускорителей. Тем самым все эти вектора суммируются, ускоряя, замедляя, подавляя друг друга. Очень рекомендую почитать вам у суммировании векторов, я всего сам обьяснить не смогу. А в остальном ускорители - это те же комплексные движущие векторы.
Теперь вы можете делать конвееры, а если очень посторайтесь, то и регулятор скорости конвееров!



Ветер. Течение. Трение.


Течение. Помните, играя в Еретика или Хексена, вы сталкивались с водой, которая уносила вас за собой. Вот такой эффект и есть течение. Чем же он тогда отличается от двигающих и ускоряющих векторов, способных перемещать предметы? Когда тебя двигают те векторы, игрок почему - то плавно "врыгает" вверх - вниз, создаётся впечатление, что это ты сам идёшь, а не пол тебя тащит. У течения такого эффекта нет.
Ветер. Чем отличается течение от ветра? При течении ты можешь прыгнуть и "оторваться" от пола, пока ты в воздухе, течение не оказывает воздействия на тебя. Ветер - наоборот. Пока ты стоишь на полу, ветер не так сильно двигает тебя. Если ты прыгнешь, то ветер будет действовать на тебя в несколько раз сильнее.
В BooM ввели обьекты контроля ветра. Есть два типа обьекта: 1)Всё притягивает к себе со всех сторон, 2) всё отталкивает от себя. А так это - тот же ветер. Делается такой эффект так: есть линия со специальным типом и тагом. В сеторе, где должен быть такой ветер, должен быть один из этих двух обьектов, а сектор должен иметь тот - же таг. Полученный ветер не будет зависить от направления вектора, только от длинны.
Трение. Как получается эффект льда? Путём уменьшения силы трения. Есть вектор с нужным типом и тагом. Трение не зависит от направления вектора. Чем больше длина вектора, тем меньше сила трения. Если длина вектора больше 100, то тогда получается эффект льда (повышение скорости и понижение торможения), если меньше 100, то эффект "густой грязи" - понижение скорости и повышение торможения. Как мы помним, если игрок разгонится, а потом отпустит кнопку бега, он остановится не сразу, а немного поскользит по инерции. В BooM мы можем тем самым это скольжение замедлить или ускорить.
В BooM есть ещё и BooM Sector Type Menu. Для того, что бы активировать ветер/течение/трение надо выбрать соответствующую опцию в этом меню. Ну вы уже разберётесь сами.



Типы векторов.


Название

Номер

Описание

Scroll Tagged Ceiling250Двигать текстуру потолка
Scroll Tagged Floor251Двигать текстуру пола
Scroll Objects On Tagged Floor252Двигать обьекты, стоящие на полу
Scroll Tagged Floor And Objects253Двигать текстуру пола и обьекты, стоящие на полу
Scroll Tagged Wall254Двигать текстуру стены
Scroll Tagged Ceiling wrt 1st Side's Sector245Двигать текстуру потолка (комплексный вектор)
Scroll Tagged Floor wrt 1st Side's Sector246Двигать текстуру пола (комплексный вектор)
Scroll Objects On Tagged Floor wrt 1st Side's Sector247Двигать обьекты, стоящие на полу (комплексный вектор)
Scroll Tagged Floor And Objects wrt 1st Side's Sector248Двигать текстуру пола и обьекты, стоящие на полу (комплексный вектор)
Scroll Tagged Wall wrt 1st Side's Sector249Двигать текстуру стены (комплексный вектор)
Accelerate Tagged Ceiling214Двигать текстуру потолка (ускоряющий вектор)
Accelerate Tagged Floor215Двигать текстуру пола (ускоряющий вектор)
Accelerate Objects On Tagged Floor216Двигать обьекты, стоящие на полу (ускоряющий вектор)
Accelerate Tagged Floor And Objects217Двигать текстуру пола и обьекты, стоящие на полу (ускоряющий вектор)
Accelerate Tagged Wall218Двигать текстуру стены (ускоряющий вектор)
Set Friction In Tagged Sector223Изменить силу трения в секторе
Set Wind In Tagged Sector224Создать ветер в секторе
Set Current Force In Tagged Sector225Создать течение в секторе
Set Point Of Push/Pull Field In Tagged Sector226Создать ветер в секторе, используя специальные обьекты.



Следующая тема: Остальное.
Предыдущая тема: Платформы, элеваторы.


На главную страницу маппинга для BooM.
На главную страницу маппинга.
На главную страницу.