SDL2多个渲染器
SDL2 Multiple renderers?
本文关键字:SDL2 更新时间:2023-10-16
我是游戏开发、SDL和C++的新手。我一直在学习这里的代码:
http://gamedevgeek.com/tutorials/managing-game-states-in-c/
相关位:
多个状态不仅在演示中很重要,在游戏中也很重要。每一个游戏都以介绍状态开始,然后进入某种菜单,最后开始游戏。当你最终被击败时,游戏进入游戏结束状态,通常随后返回菜单。在大多数比赛中,一次可能处于多个状态。例如,您通常可以在玩游戏时打开菜单。
我的问题是:要同时显示多个状态,例如在游戏顶部显示菜单,每个状态必须有自己的渲染器吗?
将Image.png*(或其他格式)传递到纹理上,然后将纹理放置在"表面"上(可以用它剪裁纹理),然后将其传递到渲染器上。因此,您所要做的就是更改片段和纹理,并将其传递给中的渲染器!秩序正确!
示例:首先渲染背景,然后渲染精灵,然后渲染效果等。
我希望这能有所帮助。
下面的代码取自懒惰的FOO网站!!查看它非常有用,可以开始SDL2
http://lazyfoo.net/tutorials/SDL/07_texture_loading_and_rendering/index.php
//While application is running
while( !quit )
{
//Handle events on queue
while( SDL_PollEvent( &e ) != 0 )
{
//User requests quit
if( e.type == SDL_QUIT )
{
quit = true;
}
}
//Clear the last frame
SDL_RenderClear( gRenderer );
//Render texture to screen
SDL_RenderCopy( gRenderer, gTexture1, NULL, NULL );
SDL_RenderCopy( gRenderer, gTexture2, NULL, NULL );
SDL_RenderCopy( gRenderer, gTexture3, NULL, NULL );
SDL_RenderCopy( gRenderer, gTexture4, NULL, NULL );
//Update screen
SDL_RenderPresent( gRenderer );}
正如您在上面的CODE中看到的那样,SDL_RenderCopy使用相同的渲染器来渲染不同的TEXTURES。所以你需要的是很多纹理。
我确信可能会使用多个渲染器,但我不知道你为什么要这样做?
//第二天//所以我检查了一下,发现如果你有一个多窗口应用程序,你可以使用多个渲染器。
相关文章:
- 如何创建事件驱动的 SDL2 应用程序
- 使用 SDL2 和SDL_image C++加载图像
- 将 SDL2 与 CMake 链接起来
- SDL2 透明背景
- 如何在使用 SDL2 的 Eclipse 中构建 c++ 程序
- 不带轮询的 SDL2 事件回调
- C++ SDL2:如何将矩形渲染到多个视口中
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- SDL2 二维纹理分配/池化
- 如何使用 sdl2 快速绘制像素网格?
- 看不到文件'SDL2.lib'
- 我的 SDL2 程序需要哪些二进制文件,以便它在另一台未安装 SDL2 的计算机中工作
- SDL2 无法正确绘制矩形
- 实施英特尔实感和 SDL2 时出现问题
- 找不到 sdl2.dll
- SDL2 程序只写入部分字符串
- 为什么在使用 SDL2 时仍然收到'undefined reference'链接器错误?
- 在另一台 PC 上执行程序时加载 SDL2 共享库时出错
- SDL2 (C++) 如何使图像变小
- SDL2 不是基于 VS 代码构建的