Получение координат линии в массив - PullRequest
3 голосов
/ 14 февраля 2012

Я работаю не в игре, и так как я не смог найти хороший метод обнаружения столкновений для обнаружения столкновений с повернутыми прямоугольниками, я решил попробовать что-то вроде этого: У меня есть повернутый прямоугольник (который, я полагаю, я могу получить координаты его углов (возможно, некоторая функция CGRect или тригонометрии, если необходимо) Я хочу получить все координаты вдоль линии, соединяющей два угла (даже только значения int или с определенным приращением, чтобы он не становился слишком длинным), и поместить их в массив. затем я могу проверить наличие прямоугольника шара, который не вращается его ограничивающим прямоугольником), содержит ли он какую-либо точку массива. если это произойдет, они столкнулись.

Есть ли простой способ получить эти координаты в массив? при условии, что я знаю начало и конец? Я понимаю, что это будет не совсем эффективно, но сейчас я использую обнаружение цветов OpenGL, и оно слишком медленное и не работает должным образом, так что мне как бы нужен новый метод.

Спасибо!

1 Ответ

1 голос
/ 14 февраля 2012

У вас уже есть линии через края вашего прямоугольника. Просто возьмите координаты X, Y вашего 4 угла, и у вас есть 4 линии.

Как правило, при столкновении вы почти всегда можете найти способ подделать его, я бы потрудился использовать повернутый прямоугольник для столкновения, если он вам действительно нужен, большую часть времени вы можете взять то, что выглядит как прямоугольник, и просто дать это круговое столкновение.

Если вы придерживаетесь повернутого прямоугольника, вы можете попробовать другой подход - применить обратное вращение к обоим объектам, а затем проверить столкновение. Поэтому, если прямоугольник повернут на 45 градусов, поверните прямоугольник на -45 градусов, чтобы он был выровнен по оси, затем также поверните центр круга на -45 градусов. Теперь у вас есть намного более простая коллизия для работы.

Вы можете получить больше здесь: Обнаружение столкновения окружности с прямоугольником (пересечение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...