Подтвердить что ты не робот

Лучший способ повернуть изображение с помощью SDL?

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

4b9b3361

Ответ 1

С SDL у вас есть несколько вариантов.

  • Поверните все ваши спрайты заранее (предварительно сделайте все возможные вращения) и сделайте их так же, как и любой другой спрайт. Этот подход выполняется быстро, но использует больше памяти и больше спрайтов. Как отметил @Nick Wiggle, RotSprite - отличный инструмент для генерации sprite transoformations.

  • Используйте что-то вроде SDL_gfx для поворота/масштабирования в реальном времени. (Не рекомендуется, очень медленно)

  • Используйте SDL в режиме OpenGL и визуализируйте спрайты на примитивы, применяя поворот к примитивам.

Вариант 3, вероятно, лучший выбор, потому что вы получаете все преимущества использования OpenGL. Это действительно зависит от вас, как это сделать. Также вы можете загрузить спрайты, выполнить все вычисления вращения с помощью SDL_gfx, а затем сохранить повернутые версии в SDL_Surface в памяти.

EDIT: В ответ на ваш комментарий я бы рекомендовал проверить Lazyfoo SDL tutorals. В частности, это о ротации. Существует также функция OpenGl, glRotatef, которая может быть полезна в вашем случае. Быстрый поиск привел этот маленький лакомый кусочек, который также может быть полезен.

Ответ 2

Вы можете использовать библиотеку, такую ​​как SDL_gfx

Ответ 3

SDL_RenderCopyEx()

имеет дополнительные аргументы для вращения, щелчка и центра вращения.