SDL图像分屏

4

尝试在屏幕上显示两张图片,每张图片占据屏幕的一半。以下是我使用的代码:

SDL_Init(SDL_INIT_VIDEO);
SDL_Surface* pScreen = SDL_SetVideoMode(1280,720,16, SDL_FULLSCREEN );
SDL_ShowCursor(SDL_DISABLE);
//load two images
SDL_Surface* pImage1 = IMG_Load("/media/x01.JPG");
SDL_Surface* pImage2 = IMG_Load("/media/x02.JPG");

//create two rectangles for left and right of screen
SDL_Rect leftR;
SDL_Rect rightR;
leftR.x = 600;
leftR.y = 0;
leftR.w = 640;
leftR.h = 720;
rightR.x = 640;
rightR.y = 0;
rightR.w = 640;
rightR.h = 720;

//display
SDL_BlitSurface(pImage1,&leftR,pScreen,&leftR);
SDL_BlitSurface(pImage2,&rightR,pScreen,&rightR);
SDL_Flip(pScreen);

//free image surfaces
SDL_FreeSurface(pImage1);
SDL_FreeSurface(pImage2);

//wait to see what's on screen...
sleep(5);

//close SDL
SDL_Quit();

我希望实现一种分屏效果,使用两张静态图片。但是,现在只有第一张图片被显示在屏幕的一半上,另一半则是空白的。
我尝试过调整矩形框的x和y值,但似乎图片的位置并没有改变,而是观看矩形框的大小发生了变化。你有什么想法吗?
1个回答

6
SDL_BlitSurface需要两个矩形参数,一个用于源图像,另一个用于目标图像。
第二个参数源矩形指定源图像(即您的图像)要绘制的部分。
第四个参数目标矩形指定在目标图像上绘制的位置。
您将相同的矩形传递给了两个参数,这可能不是您想要的。如果您只想显示整个图像,请将源矩形参数设置为NULL。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接