我正在构建一个游戏,主角的手臂将跟随鼠标光标,所以它会频繁旋转。什么是旋转它的最佳方法?
答案 0 :(得分:20)
使用SDL,您有几个选择。
提前旋转所有精灵(预渲染所有可能的旋转)并像任何其他精灵一样渲染它们。这种方法很快,但使用更多内存和更多精灵。正如@Nick Wiggle指出的那样,RotSprite是生成精灵变换的一个很好的工具。
使用SDL_gfx之类的内容进行实时旋转/缩放。 (不推荐,非常慢)
在OpenGL模式下使用SDL并将精灵渲染为基元,将旋转应用于基元。
选项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()
有旋转,翻转和旋转中心的额外参数。