试图在屏幕上显示两个图像,每个图像占据屏幕的一半.这是我正在使用的代码:
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();
Run Code Online (Sandbox Code Playgroud)
我希望用两个静态图像实现分屏效果.然而,所有这一切都是第一张图像显示在屏幕的一半,另一张是空白.
我试过搞乱矩形x和y,看起来图像的位置没有改变,而是观察矩形的大小.有任何想法吗?
SDL_BlitSurface 取两个矩形,一个用于源,一个用于目标.
该源矩形,这是第二个参数,是源表面的哪一部分(在这种情况下,图像)来绘制.
的目的地矩形,这是第四参数,是在哪里目的地表面上绘制.
你为两者传递了相同的矩形,这可能不是你想要的.如果您只想显示整个图像,请为源矩形传递NULL.