SDL2多个渲染器?

时间:2014-02-15 01:08:34

标签: c++ game-engine sdl-2

我是游戏开发,SDL和C ++的新手。我一直在学习这里的代码:

http://gamedevgeek.com/tutorials/managing-game-states-in-c/

相关位:

  

多个状态不仅在演示中很重要,而且在游戏中也很重要。每个游戏都以介绍状态开始,然后移动到某种菜单,最后一个游戏开始。当你最终被击败时,游戏会进入游戏状态,通常会返回菜单。在大多数游戏中,一次可以处于多个状态。例如,您通常可以在游戏过程中调出菜单。

我的问题是:要同时显示多个状态,例如在游戏上显示菜单,每个州都必须拥有自己的渲染器吗?

1 个答案:

答案 0 :(得分:2)

您将Image.png *(或其他格式)传递到纹理上,然后将纹理放置在"表面上#34;(您可以使用此剪辑纹理),然后将其传递到渲染器。因此,您所要做的就是更改剪辑和纹理,并将其传递给渲染器!!正确的顺序!

示例:您首先渲染背景,然后渲染Sprite,然后渲染效果等......

我希望这会有所帮助。

以下代码来自LAZY 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 );}

正如您在上面的代码中所看到的,SDL_RenderCopy使用SAME渲染器来渲染不同的TEXTURES。所以你需要的是,许多纹理。

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

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