Я создаю игру, и главный персонаж будет следовать курсору мыши, поэтому он будет вращаться довольно часто. Каким будет лучший способ повернуть его?
Лучший способ повернуть изображение с помощью SDL?
Ответ 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()
имеет дополнительные аргументы для вращения, щелчка и центра вращения.