XNA Как заставить камеру вращаться по кругу и всегда смотреть на Вектор3.Ноль?

#xna

#xna

Вопрос:

Всем гало,

Как сделать так, чтобы камера вращалась вокруг вектора3.Ноль на определенном расстоянии (например, Земля вращается вокруг Солнца) И чтобы камера всегда смотрела на этот Вектор3.Ноль?

Пожалуйста, любезно ответьте, спасибо

Ответ №1:

Камера обычно передается эффектам в виде View матрицы.

Вы можете создать матрицу «look at» с помощью Matrix.CreateLookAt (MSDN).

Это принимает три аргумента: целевой и восходящий векторы должны быть довольно стандартными (предположительно, Vector3.Zero и Vector3.Up в вашем случае).

Теперь вам просто нужно положение самой камеры. И вы хотите, чтобы он вращался. Это будет что-то вроде этого:

 Vector3.Transform(new Vector3(distance, 0, 0), Matrix.CreateRotationY(angle));
  

Для получения дополнительной информации взгляните на методы, которые Matrix предоставляет класс для создания матриц преобразования.