|
发表于 2004-5-19 10:27:41
|
显示全部楼层
刚看明白,你第一行写的是
#include "SDL/SDL.h"
现在换成
#include <SDL.h> 或者#include <SDL/SDL.h> (应该都可以编译成功的) 再试试看, 因该能解决问题
如果要看到一些结果, 试着加入一下代码, 首先任意找一张bmp图片,比方说是background.bmp
代码更改如下
[code:1]
#include <SDL.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char*argv[]){
SDL_Surface * screen; //添加1
SDL_Surface * background; //添加2
SDL_Rect sourceRect, destinationRect; //添加3
printf("wufeng");
if(SDL_Init(SDL_INIT_VIDEO)<0){
fprintf(stderr,"SDL:%s\n",SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
/*以下部分是添加的代码,显示一张bmp图片*/
//设置显示分辨率,和颜色深度,以及显示模式
screen = SDL_SetVideoMode( 640,480,16,0);
if(screen==NULL){
printf("Unable to set video mode: %s\n", SDL_GetError());
return 1;
}
//载入一张bmp图片
background = SDL_LoadBMP("background.bmp");
if(background==NULL){
printf("Unable to load bmp: %s\n", SDL_GetError());
return 1;
}
//设置原始图象大小
sourceRect.x = 0;
sourceRect.y = 0;
sourceRect.w = background->w;
sourceRect.h = background->h;
//设置在屏幕上显示的大小和位置
destinationRect.x = 0;
destinationRect.y = 0;
destinationRect.w = background->w;
destinationRect.h = background->h;
//把图片画到屏幕上
SDL_BlitSurface(background, &sourceRect, screen, &destinationRect);
//更新屏幕,现在可以看到图片了
SDL_UpdateRect(screen, 0, 0, 0, 0);
//释放图片所占的内存
SDL_FreeSurface(background);
//延迟2秒钟, 如果图象一闪而过,可以把数字改大一点
SDL_Delay(2000);
return 0;
}
[/code:1] |
|