首页 > 解决方案 > 如何仅将部分 OpenGL 代码实现到使用 SDL 编写的游戏中?

问题描述

所以,我正在制作一款类似于 Vector Runner 的游戏。我有一个背景纹理和几个使用 SDL 实现的纹理对象。我想使用 glRotate 旋转背景。我不希望它移动或任何东西,我只想对它有不同的看法(类似于第三人称视角)并保持这种状态。由于现在一切都是 SDL,我可以只制作 background.h 和 .cpp 并仅在那里实现 OpenGL,还是我需要在整个代码中使用它,或者有没有办法使用 SDL 来实现?

标签: c++openglsdl

解决方案


就个人而言,我不会尝试将 OpenGL 与 SDL 的 2D 表面类型代码混合使用。我要么使用 OpenGL 来实现精灵(更快,更多的操作选项),要么在可能的情况下使用 SDL 函数(最简单的选项),或者使用软件渲染来旋转背景(非常便携,一切都在你的控制之下)。

我想使用 glRotate 旋转背景。我不希望它移动或任何东西,我只想对它有不同的看法(类似于第三人称视角)并保持这种状态。

如果您想自己进行旋转,您可以使用纹理映射技术,并自己逐像素渲染。如果背景没有移动,您只需执行一次并将结果存储在缓冲区中。

SDL 还有一个渲染功能,让您可以选择旋转源图像(没有透视变换选项):https ://wiki.libsdl.org/SDL_RenderCopyEx


推荐阅读