|
#include <SDL/SDL.h>
void ShowBMP(char *filename,SDL_Surface *screen,int x,int y)
{
SDL_Surface *image;
SDL_Rect dest;
image=SDL_LoadBMP(filename);
if(image==NULL)
{
fprintf(stderr,"无法加在%s:%s\n",SDL_GetError());
return;
}
dest.x=100;
dest.y=200;
dest.w=image->w;
dest.h=image->h;
SDL_BlitSurface(image,NULL,screen,&dest);
SDL_UpdateRects(screen,1,&dest);
}
int main()
{
SDL_Surface *screen;
if(SDL_Init(SDL_INIT_VIDEO)<0)
{
fprintf(stderr,"无法初始化SDL%s\n",SDL_GetError());
exit(1);
}
screen=SDL_SetVideoMode(800,600,16,SDL_SWSURFACE);
if(screen==NULL)
{
fprintf(stderr,"无法设置%s\n",SDL_GetError());
exit(1);
}
/* SDL_Event event;
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_KEYDOWN:
printf("anykey down");
ShowBMP("test.bmp",screen,10,10);break;
//exit(0);
case SDL_MOUSEMOTION:
printf("mouse from %d, %dto %d,%d\n",event.motion.xrel,event.motion.yrel,event.motion.x,event.motion.y);
break;
case SDL_MOUSEBUTTONDOWN:
printf("%d down%d %d\n",event.button.button,event.button.x,event.button.y);
break;
case SDL_QUIT:
exit(0);
}
}*/
SDL_Event event;
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_KEYDOWN:
case SDL_KEYUP:
ShowBMP("test.bmp",screen,10,10);
SDL_Delay(5000);
break;
case SDL_QUIT:
exit(0);
}
//SDL_Delay(5000);
atexit(SDL_Quit);
}
我想实现在键盘按下后,加载一副图片可是,上面的两种方法都试了,不起作用阿。要么一闪而过,要么不响应事件,为什么?希望得到指正,谢谢了。 |
|