我一直在学习本教程,并且已经到了指导我们如何加载和使用位图的地步。这是当前代码:
#include "SDL/SDL.h"
#include <stdlib.h>
int main (int arg, char *argc[]) {
SDL_Surface* screen = NULL;
SDL_Surface* hello = NULL;
SDL_Init(SDL_INIT_EVERYTHING);
screen = SDL_SetVideoMode (256, 256, 32, SDL_SWSURFACE);
hello = SDL_LoadBMP("hello world.png"); // Here
if (hello == NULL) exit(0);
SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);
SDL_Delay(2000);
SDL_FreeSurface(hello);
SDL_Quit();
return 0;
}
你好,但是,永远不会得到除 NULL 之外的任何值。我正在使用 Code::Blocks,即使我将 hello world.png 分散在项目的所有可能目录中(无论是在 bin、obj、Debug 中的任何一个、带有 .cbp 的目录中)还是指定整个路径到代码中的图像(如 SDL_LoadBMP("C:\Dir\hello world.png")) hello将获得 NULL。
我究竟做错了什么?
操作系统是 Windows
编辑:好吧,显然 SDL_LoadBMP 只能加载 .bmp 文件!我真傻。