Нарисуйте 2D-кривую в XNA - PullRequest
4 голосов
/ 20 июля 2010

Есть ли способ сгенерировать класс Curve и затем нарисовать эту кривую в 2D на экране в XNA?

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

1 Ответ

4 голосов
/ 21 июля 2010

Звучит так, как будто вы хотите получить 2D-эквивалент карты высот. Я бы не стал делать истинную «кривую» и просто приближал бы ее с отрезками.

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

Чтобы сгенерировать его - вы можете установить несколько точек случайным образом, а затем выполнить некоторую форму плавной интерполяции, чтобы задать остальные. (Это действительно зависит от того, какую кривую вы хотите.)

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

Для обнаружения столкновений - самый простой способ состоит в том, чтобы ваши объекты были одной точкой (звучит так, как будто вы делаете артиллерийскую игру, такую ​​как Scorched Earth) - просто займите положение X вашего объекта , получите положение Y вашего ландшафта в этом положении X, если положение Y вашего объекта ниже ландшафта, установите его так, чтобы оно было на поверхности ландшафта.

Во всяком случае, это грубое руководство:)

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