我是游戏开发,SDL和C ++的新手。我一直在学习这里的代码:
http://gamedevgeek.com/tutorials/managing-game-states-in-c/
相关位:
多个状态不仅在演示中很重要,而且在游戏中也很重要。每个游戏都以介绍状态开始,然后移动到某种菜单,最后一个游戏开始。当你最终被击败时,游戏会进入游戏状态,通常会返回菜单。在大多数游戏中,一次可以处于多个状态。例如,您通常可以在游戏过程中调出菜单。
我的问题是:要同时显示多个状态,例如在游戏上显示菜单,每个州都必须拥有自己的渲染器吗?
答案 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。所以你需要的是,许多纹理。
我确定多个渲染器可能有用,但我不知道你为什么会这样做?
// 第二天 // 所以我检查了一下,看到如果你有一个多窗口应用程序,你可以使用多个渲染器。