我的屏幕分辨率是1920x1080。为了有一个全屏窗口,我调用了SDL_SetVideoMode(1920, 1080, 32, SDL_HWSURFACE | SDL_FULLSCREEN);
。然而,当我试图在这个屏幕上添加一个位置为x = 0和y = 0的图像时,它被定位在屏幕之外,就像我的屏幕分辨率比窗口低一样。它只显示了窗口的一部分。
为了看到图像,我需要给予image.x
和image.y
一个大于0的值。例如,下面是image.x = 190
和image.y = 100
的结果:
正如你所看到的,图像被卡在左上角,这可以给予你大致知道当image.x = 0
和image.y = 0
时它在哪里。
下面是我的代码:
int main (int argc, char **argv)
{
SDL_Surface *screen = NULL;
SDL_Surface *image = NULL;
SDL_Rect pos_image;
SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(1920, 1080, 32, SDL_SWSURFACE | SDL_FULLSCREEN);
SDL_WM_SetCaption("SDL Test", NULL);
image = SDL_LoadBMP("pack_images_sdz/image.bmp");
SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 0, 0, 255));
pos_image.x = 190;
pos_image.y = 100;
SDL_BlitSurface(image, NULL, screen, &pos_image);
SDL_Flip(screen);
pause();
SDL_Quit();
return EXIT_SUCCESS;
}
我想知道为什么会这样。为什么x = 0和y = 0的位置在屏幕之外?
1条答案
按热度按时间e4eetjau1#
它可能是你的图像的宽度和高度,我肯定不知道很多关于SDL1.2,但这个问题可能是从图像,尝试另一个图像,并重新启动程序,如果它不工作,我会建议你重新安装SDL1.2祝你好运