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

标签 c++ user-interface image sdl

我正在构建一个游戏,主角的 ARM 将跟随鼠标光标,因此它会非常频繁地旋转。旋转它的最佳方式是什么?

最佳答案

使用 SDL,您有多种选择。


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

  2. 使用类似 SDL_gfx进行实时旋转/缩放。 (不推荐,很慢)

  3. 在 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/

相关文章:

使用缩放图 block 最大化矩形区域覆盖的算法

swing - GUI 问题 : Dynamic Modular Panel Layout?

标题的 HTML 背景图片

JavaFX图像加载内存泄漏?

c++ - 限制固定输出的尾随零数

c++ - C++ 中的 ObjA = ObjB

c++ - Gtkmm:如何暂停应用程序的执行并等待用户输入?

c++ - 在双向链表中间插入节点

java - 使用以下代码输出错误

Javascript:将图像复制到变量中以放置在某处?