分类: LINUX
2006-05-26 11:00:02
首先你要下载并安装SDL开发包。
如果装在C盘下,路径为C:\SDL1.2.5
如果在WINDOWS下。你可以按以下步骤:
1.打开VC++,点击"Tools",Options
2,点击directories 选项
3.选择"Include files"增加一个新的路径。
"C:\SDL1.2.5\include"
4,现在选择"Libary files“增加
"C:\SDL1.2.5\lib"
现在你可以开始编写你的第一个SDL程序了.
这里有一个简单的程序。目的是在窗口里显示一幅图片。
步骤:
1.我们先用SDL_Init()初始化SDL_video系统。
2,我们设置程序的窗口标题
3,我们创建窗口并用SDL_SetVideoMode()取得平面(surface)的
指针(呵呵,很像DDRAW吧里的缓冲面)但比DDRAW初始化简单太
多了。
4.将背景图片载入临时平面(surface)
5,用SDL_DisplayFormat()创建一个和主平面相同的拷贝做为临
时平面。(这就是类似DDRAW双缓冲吧)可以加快渲染速度。
6.调用SDL_FreeSurface释放临时平面占用内存
7.现在在"main loop"中不断的检测事件和更新屏幕。
8.当用户点击ESC或"q",停止循环并退出
9,释放内存。
用SDL_FreeSuface释放平面
用SDL_Quit()清空SDL
下面是代码:
#include "SDL.h"
int main ( int argc, char *argv[] )
{
/* initialize SDL */
SDL_Init(SDL_INIT_VIDEO);
/* set the title bar */
SDL_WM_SetCaption("SDL Test", "SDL Test");
/* create window */
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0,
0);
/* load bitmap to temp surface */
SDL_Surface* temp = SDL_LoadBMP("hello.bmp");
/* convert bitmap to display format */
SDL_Surface* bg = SDL_DisplayFormat(temp);
/* free the temp surface */
SDL_FreeSurface(temp);
SDL_Event event;
int gameover = 0;
/* message pump */
while (!gameover)
{
/* look for an event */
if (SDL_PollEvent(&event)) {
/* an event was found */
switch (event.type) {
/* close button clicked */
case SDL_QUIT:
gameover = 1;
break;
/* handle the keyboard */
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case SDLK_ESCAPE:
case SDLK_q:
gameover = 1;
break;
}
break;
}
}
/* draw the background */
SDL_BlitSurface(bg, NULL, screen, NULL);
/* update the screen */
SDL_UpdateRect(screen, 0, 0, 0, 0);
}
/* free the background surface */
SDL_FreeSurface(bg);
/* cleanup SDL */
SDL_Quit();
return 0;
}