Не помню, было ли это, но вы могли бы сделать это самостоятельно, посмотрев на исходный код ArrayList. Разработчики Java должны использовать преимущества исходного кода, поставляемого в комплекте с SDK.
С SDL у вас есть несколько вариантов.
Поверните все свои спрайты заранее (предварительно отрендерив все возможные вращения) и отрендерив их, как любой другой спрайт. Этот подход быстрый, но требует больше памяти и больше спрайтов. Как отметил @Nick Wiggle , RotSprite - отличный инструмент для создания преобразований спрайтов.
Используйте что-то вроде SDL_gfx для вращения / масштабирования в реальном времени . (Не рекомендуется, очень медленно)
Используйте SDL в режиме OpenGL и визуализируйте ваши спрайты в примитивы, применяя вращение к примитивам.
Вариант 3, вероятно, ваш лучший выбор, потому что вы получаете все преимущества использования OpenGL. Вам действительно решать, как это сделать. Также есть возможность загрузить свои спрайты, выполнить все расчеты поворота с помощью SDL_gfx, а затем сохранить повернутые версии на SDL_Surface в памяти.
РЕДАКТИРОВАТЬ: В ответ на ваш комментарий я бы рекомендовал проверить туториалы Lazyfoo по SDL. В частности, это вращение . Также существует функция OpenGl, glRotatef
, которая может быть полезна в вашем случае. Быстрый поиск вернул этот небольшой лакомый кусочек , который также может оказаться полезным.
Вы можете использовать такую библиотеку, как SDL_gfx