我正在构建一个游戏,主角的 ARM 将跟随鼠标光标,因此它会非常频繁地旋转。旋转它的最佳方式是什么?
最佳答案
使用 SDL,您有多种选择。
提前旋转所有 Sprite (预渲染所有可能的旋转)并像渲染任何其他 Sprite 一样渲染它们。这种方法速度很快,但使用更多的内存和更多的 Sprite 。如@Nick Wiggle指出,RotSprite是生成 Sprite 变换的好工具。
使用类似 SDL_gfx进行实时旋转/缩放。 (不推荐,很慢)
在 OpenGL 模式下使用 SDL 并将您的 Sprite 渲染为基元,对基元应用旋转。
选项 3
可能是您最好的选择,因为您可以获得使用 OpenGL 的所有优势。如何去做真的取决于你。您也可以加载 Sprite ,使用 SDL_gfx 执行所有旋转计算,然后将旋转后的版本保存到内存中的 SDL_Surface。
编辑:针对您的评论,我建议您查看 Lazyfoo 的 SDL 教程。 Specifically, this one about rotation .还有一个OpenGl function, glRotatef
,这对您的情况很有用。快速搜索返回 this little tidbit这也可能会有所帮助。
关于c++ - 使用 SDL 旋转图像的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1183900/