Хонич А.
Как самому создать трехмерную игру
стр. 187

Здесь вам должно Ьыть все ясно. Основным гвоздем здесь является функция MoveThingTo, которая, собственно, и перемещает объект на новые координаты. Эта функция не сложная, но громоздкая. Поэтом}' исходный текст ее приводить здесь ие будем, но тем не менее объясним, что она делает. Первым делом вызывается функция, которая, анализируя путь, заполняет структуры STEP аналогично тому, как мы это разобрали при описании функции PressUse. Затем, в соответствии с накопленной информацией о линиях, составляется таблица специальных линий, которые пересек объект. Одновременно проверяются линии или объекты, которые могли бы служить препятствием на пути следования объекта. И, если таковые имеются, то устанавливается глобальная переменная MoveThing в 1, а в глобальную переменную TouchLine записывается указатель на линию, которая послужила препятствием (или в переменную TouchThing записывается указатель иа объект, если препятствием стал объект). В самом конце функции, если препятствий обнаружено не было, проверяется массив специальных линий (если таковые встретились на пути следования объекта), и для каждой линии вызывается функция SpecLine WalkAccrossLine, которая производит определенные действия в соответствии с типом линии. Если было обнаружено препятствие, то функция MoveThingTo возвращает 0. В противном случае она возвращает 1.

Функция SlideTraverse.

А теперь поговорим о том, зачем нужна функция SlideTraverse. Замечали ли вы при игре в DOOM, что, если вы упираетесь в какую-либо стену' не под прямым углом, то скользите вдоль этой стены. Наверняка замечали, но не придавали этому значения, т.к. это кажется естественным. Именно этим скольжением и занимается функция SlideTraverse. Она вызывается только для игроков. Если же монстры встретятся со стеной (независимо от угла), то они меняют направление перемещения. Как работает функция SlideTraverse? Если вектор перемещения игрока пересекается со стеной под прямым углом, то перемещения ие будет и игрок останется стоять там, где он встретил препятствие. Если же угол между вектором перемещения и линией препятствия не прямой, то объект скользит вдоль линии препятствия. При этом направление скольжения зависит от знака разности угла пересечения и угла 90 градусов. А скорость скольжения прямо пропорциональна абсолютному значению этой разности.

Новости
Выход Fear the Wolves в раннем доступе в Steam отложили
Чернобыльская королевская битва Fear the Wolves от бывших авторов "Сталкера" должна была уже сегодня выйти в раннем доступе в Steam, но игра задержится - участники закрытого бета-теста выявили множество проблем, так что релиз решили отложить.
Похоже, авторы God of War уже приступили к работе над продолжением
В начале июня старший художник Sony Santa Monica Нейт Стивенс рассказал, что следующая часть God of War станет «масштабнее, лучше и продолжительнее», а команде предстоит поломать голову над тем, как бы превзойти самих себя в сиквеле.