При написании игр, нередко, можно столкнуться с проблемой: вот есть мой персонаж, который представляет из себя сложную форму, совсем не похожую на прямоугольник; и есть другой персонаж, тоже совсем не похожий на прямоугольник. И они, в какой-то момент, пересекаются - и как же определить, что факт пересечения наступил? Эту прикладную задачу и рассмотрим в статье. Изначально о простом: определить пересечение двух прямоугольников просто, а двух многоугольников - нет. Но "не просто" не значит невозможно, однако всё упирается в цену вопроса: если для определения факта пересечения двух игровых объектов надо будет тратить слишком много процессорного времени, игра начнёт тормозить и удовольствие от процесса быстро сменится раздражением и разочарованием. Но что делать, если наш персонаж - треугольник, а его враг - ромб? Вписав их в прямоугольники, частично, задачу можно решить, но решение будет неудовлетворительной. Довольно легко представить, как треугольник и ромб находятся рядом друг с друго
Столкновение объектов: метод разделяемой оси или как скрестить ежа с ужом
17 июля17 июл
47
3 мин