Я сделал 2D изометрический рендеринг. Он отлично работает, но теперь я хочу показать свою сцену с 4-х разных точек зрения (NO NW SE SW), но при повороте на 90 ° моя камера не может удерживать центр моей сцены на экране.Вычислите новые координаты камеры после поворота на 90 градусов в изометрической 2D-проекции
Что работает:
- Я Calcul новой проекции сцены, чтобы соответствовать новому видовому экрану (х у г в моем мире).
- Я реорганизовать часть моей сцены (кусок), чтобы привлечь их в правильном порядке
- Я реорганизовать «плитку» из «кусков», чтобы привлечь их в правильном порядке
- я могу держать правильный центр с 180 вращение градаций.
Что нам сделать не работает:
- Я не могу найти правильный перевод, чтобы применить к моей камере после поворота 90 Degres.
То, что я знаю:
- Чтобы сохранить тот же центр при повороте на 180 ° с моей камерой, я должен сделать это:
camera.Position -= new Vector2(2 * camera.Position.X + camera.Width, 2 * camera.Position.Y + camera.Height);
Иллюстрация
Спасибо за ваш ответ, я провешу этот вечер, но он выглядит хорошим. Действительно, для моего поворота на 180 ° сделать перевод Pi является логикой. –
У меня появилась идея, я постараюсь сделать 1,1 поворот, а затем повторно применить изометрическое преобразование. –
Я правильно сделал поворот на 90 °, Vector2 (new_camera_x, new_camera_y) = новый Vector2 (- (old_camera_y - old_camera_height)/2, old_camera_x * 2) или своего рода. Это правильно для Z = 0 в моем мире, но если я изменю высоту, все будет не так. Поэтому, наконец, мне нужно найти центр моей сцены (X Y Z) и повернуть его вокруг (par matrice ou simple decallage avant/apres). –