Как создать список векторов, используя класс кривой, перемещающийся от А к В? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь создать путь, по которому должен пройти объект.

Я хочу, чтобы путь использовал кривую, которая идет вверх от начала (A), а затем опускается вниз (B).

Как это:

Travel Path

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

Итак, я посмотрел на класс Microsoft.Xna.Framework.Curve, но не могу найти хорошего ресурса, чтобы правильно его использовать.

Класс Curve использует CurveKey для своих точек, но неясно, как именно вы преобразуете ключ в Vector2D, поскольку ключ определяется в одиночном числовом значении, а не в координате XY.

Мне нужен SortedList всех точек, которые необходимы для перемещения Sprite с кривой, которую я могу использовать с классом Vector2D, но, опять же, я не совсем понимаю, как использовать класс Curve, и документация довольно запутанная . Это говорит о том, что если вы хотите больше измерений, вы можете использовать несколько объектов Curve, но там нет примера.

Мне не удалось заставить CurveEditor скомпилировать , и его поддержка, кажется, давно умерла.

Если бы кто-нибудь мог показать мне, как сделать кривую с классом Curve и перевести ее в координату с Vector2D, которая была бы отличной отправной точкой.

1 Ответ

0 голосов
/ 08 июня 2019

Класс Vector2 имеет статический метод, определяемый как:

public static Vector2 Hermite(Vector2 value1, Vector2 tangent1, Vector2 value2, Vector2 tangent2, float amount)

Это похоже на lerp, где сумма представляет собой число от 0 до 1.

...