您的位置:首页 > 其它

SDL入门学习教程

2014-11-07 09:13 411 查看
SDL入门学习教程

一、简介

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

二、配置

sudo apt-get install libsdl1.2-dev

附加包:

sudo apt-get install libsdl-image1.2-dev

sudo apt-get install libsdl-mixer1.2-dev

sudo apt-get install libsdl-ttf2.0-dev

sudo apt-get install libsdl-gfx1.2-dev

也可以去官网下载最新的源码进行编译。

三、测试

#include "SDL/SDL.h"

int main( int argc, char* args[] )

{

//Start SDL

SDL_Init( SDL_INIT_EVERYTHING );

//Quit SDL

SDL_Quit();

return 0;

}

编译命令:g++ main.c -o main -lSDL

如果程序能够编译通过并能够运行,那么SDL安装成功。

四、加载一张位图

SDL可以很方便的来加载位图。

首先拷贝一张bmp格式的图片到项目文件夹,然后修改代码如下:

#include <stdio.h>

#include <SDL/SDL.h>

int main()

{

//The images

SDL_Surface* hello = NULL;

SDL_Surface* screen = NULL;

SDL_Init( SDL_INIT_EVERYTHING );

//Set up screen

screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );

//Load image

hello = SDL_LoadBMP( "1.bmp" );

//Apply image to screen

SDL_BlitSurface( hello, NULL, screen, NULL );

//Update Screen

SDL_Flip( screen );

//Pause

SDL_Delay( 5000 );

//Quit SDL

SDL_Quit();

//Free memory

SDL_FreeSurface( hello );

//Quit SDL

SDL_Quit();

return 0;

}

编译运行:

如果需要加载其他格式的图片,需要添加SDL_image库。

几个用到的函数解释一下:

SDL_Init():

动态的加载和初始化SDL库。 该函数带有一组标记来表示哪部分需要激活:

SDL_INIT_AUDIO

SDL_INIT_VIDEO

SDL_INIT_CDROM

SDL_INIT_TIMER

SDL_INIT_EVERYTHING

使用完毕最后调用SDL_Quit()。

SDL_SetVideoMode()

设置视频的色彩深度和分辨率

SDL_LoadBMP()

加载BMP图片

int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);

4个参数都是指针——2个SDL_Surface指针,2个SDL_Rect指针。src是源面,也就是被blit的面;dst是目的面,也就是源面被blit到的面。

int SDL_Flip(SDL_Surface *screen);

交换屏幕缓冲

相关链接:SDL入门学习续-在SDL中使用OpenGL http://www.linuxidc.com/Linux/2012-12/75256.htm
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-12/75255.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: