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。所以你需要的是很多纹理。

我确信可能会使用多个渲染器,但我不知道你为什么要这样做?

//第二天//所以我检查了一下,发现如果你有一个多窗口应用程序,你可以使用多个渲染器。