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

Алгоритм функции CheckTouchLine очень прост. Втар указывает на текущую линию до тех пор, пока не встретится -1. Перед анализом очередной линии проверяется, не использовалась ли данная линия в текущем цикле (в нашем конкретном случае в функции CheckWay Run) путем сравнения if ( Counter != H->CountUseLine ). И если условие истинно, то линия не использовалась. Данная проверка осу ществляется для того, чтобы не делать одну и ту же работу несколько раз. Ведь часто возможна такая ситуация, что одна линия может принадлежать нескольким смежным блокам. В этом случае прн анализе очередного блока данная линия опять подвернется под руку.

Если линия еще не использовалась, то запускается функция анализа линии и заполнения структуры STEP В нашем случае - это функция MakeStepLine. Эта функция проверяет, пересекается ли вектор пути с текущей линией, указатель которой передается в функцию MakeStep Line. Проверка осуществляется в два

этапа:

1.    Проверяется, с какой стороны от вектора пути находятся обе вершины линии. Если обе находятся с правой стороны, или с левой то линии пересечься не могут. Это условие является достаточным. Если же вершины наход ятся по разным сторонам от вектора, то линии могут пересекаться. Эго условие является необходимым, но недостаточным. Реализация данной проверки выглядит так:

Функция CheckSideVector ofPoint возвращает 0, если координата, заданная в первых двух параметрах, находится справа от вектора, указатель на который передается третьим параметром. Если координата находится слева от вектора, то функция возвращает 1. В реализации данная функция несложна, и я надеюсь, что вы осилите ее самостоятельно.

2.    По специальной формуле вычисляется расстояние между началом вектора пути и точкой пересечения двух векторов. Тут вы можете спросить, откуда же взялся второй вектор? А второй вектор - это наша проверяемая линия.


Новости
Авторы Kingdom Come: «Мы хотели сделать Red Dead Redemption с мечами»
Не причислять себя к традиционным инди-разработчикам, а пытаться создать игру, сравнимую с Red Dead, Far Cry, «Ведьмаком», Assassin’s Creed и The Elder Scrolls V: Skyrim.
VR-игра по мотивам Psychonauts добралась до ПК
На ПК вышла VR-игра от легендарного Тима Шейфера: теперь в Psychonauts in the Rhombus of Ruin могут сыграть не только владельцы PS VR, но и обладатели HTC Vive или Oculus Rift.