Короче, герой кастит спелл.
Нужно определить точку у границы карты относительно его спины.
Т. е., допустим, стоит он в центре карты и смотрит влево. Условно проводим от его спины прямую линию до границы карты - вот на самой границе и должна определиться точка, она получится на границе карты справа в центре.
Думаю, примерно понятно, что хочу сказать, перед сном мысли традиционно путаются.
Как можно рассчитать такую точку в любом случае, где бы герой ни стоял?
Ну, допустим, взять facing - 180, текущую позицию, а дальше? Тут главный вопрос, который интересует.
Допустим, возьму я p - позиция героя; p2 - это p offset by 999999 towards facing-180 degrees.
Если это самое 999999 выйдет за границы карты, оно "сгладится" и точка таки отметится на границе?
Или просто черт знает что получится?

Мысли тоже путаются, придумал вот что: смещать не на 999999, а понемногу, а при смещении проверять, находится ли координаты смещения в области (вся карта). Если находятся, то сместить на них точку и проверять ещё раз, если нет - то не смещать точку, она и будет у границы карты.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
20
нужно знать границы карты, и постоянно двигать точку периодиком, сверяя её координаты
как только она на границе - перестаем двигать
8
Можно для каждой четверти вычислять его, например если угол <90 то берем расстояние от правого угла и этот угол, и угол 90 это два угла и сторона, можно по теореме синусов найти расстояние.
30
Через использование полярных координат находятся координаты точки, лежащей на прямой, вдоль которой смотрит юнит таким образом, чтобы эта точка находилась за его спиной. Используя полученную пару координат и координаты юнита, можно найти численные коэффициенты функции прямой (y = kx + b; x = (y-b)/k, где k, b - численные коэффициенты). После этого остаётся только подставить min/max X/Y в полученные фунции и определить точки пересечения, лежащие в пределах карты (через сравнение координат).
21
Clamp, боюсь, мне будет трудно самостоятельно определить формулу. Ладно, спасибо всем за ответы, думаю, так или иначе разберусь, когда придёт время делать (проверю разные способы и определю, что что даёт и что лучше).
30
боюсь, мне будет трудно самостоятельно определить формулу
Школьного уровня тригонометрии и базового уровня векторов для этого будет более, чем достаточно.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.