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