使用SDL旋转图像的最佳方法?

时间:2009-07-26 06:28:37

标签: c++ user-interface image sdl

我正在构建一个游戏,主角的手臂将跟随鼠标光标,所以它会频繁旋转。什么是旋转它的最佳方法?

3 个答案:

答案 0 :(得分:20)

使用SDL,您有几个选择。

  1. 提前旋转所有精灵(预渲染所有可能的旋转)并像任何其他精灵一样渲染它们。这种方法很快,但使用更多内存和更多精灵。正如@Nick Wiggle指出的那样,RotSprite是生成精灵变换的一个很好的工具。

  2. 使用SDL_gfx之类的内容进行实时旋转/缩放。 (不推荐,非常慢)

  3. 在OpenGL模式下使用SDL并将精灵渲染为基元,将旋转应用于基元。

  4. 选项3可能是您最好的选择,因为您获得了使用OpenGL的所有优势。这取决于你如何做到这一点。您也可以加载精灵,使用SDL_gfx执行所有旋转计算,然后将旋转版本保存到内存中的SDL_Surface。

    编辑:在回复您的评论时,我建议您查看Lazyfoo的SDL tutorals。 Specifically, this one about rotation。还有一个OpenGl function, glRotatef,在您的情况下可能很有用。快速搜索带回this little tidbit,这也可能有所帮助。

答案 1 :(得分:2)

您可以使用像SDL_gfx

这样的库

答案 2 :(得分:2)

SDL_RenderCopyEx()

有旋转,翻转和旋转中心的额外参数。