SDL常用库介绍
来源:互联网 发布:女神与一般女生知乎 编辑:程序博客网 时间:2024/05/17 05:10
http://blog.chinaunix.net/uid-14825809-id-3380726.html
库及帮助文档下载:
http://www.libsdl.org/projects/
http://www.libsdl.org/libraries.php
(帮助文档在http://www.libsdl.org/projects/docs下)
1, SDL
全称 Simple DirectMedia Layer,是免费的跨平台多媒体应用编程接口,可用于游戏、游戏开发工具、模拟器、样本演示、多媒体应用等.
2, SDL_Image
SDL库只支持windows bitmap格式的图片显示,而SDL_Image封装了多种格式的图像显示接口,它支持bmp,png,jpeg,jif等,当需要支持某种格式时,还 需要额外的图像解码接口,比如,如果要显示png格式的图像,那么还需要libpng,如果要显示jpeg的图像,需要libjpg.
3, SDL_ttf
该库用于显示文字.
操作过程介绍:
(1) TTF初始化
(2) 打开字体文件,并设置字体大小
(3) 设置字体的其他属性
(4) 使用打开的字体,将所要显示的文字"画"到内存中,根据文字的不同,有三类作用相同但名称不同的函数,他们是 Text,UTF8,UNICODE,Text是普通字符串,UFT8是UTF8格式的字符串,而UNICODE是UNICODE格式的字符串,比如,
TTF_RenderText_Solid
TTF_RenderUTF8_Solid
TTF_RenderUNICODE_Solid
这三组函数都是"画"空心字体,不同的是表示输出字符串的第二个参数.
(5) 将内存数据拷贝到当前显示设备环境
(6) 释放内存显示环境
(7) 刷新当前显示设备环境
(8) 关闭所打开的字体
(9) 销毁TTF
ex:
int DrawText(SDL_Surface *pScreen,const char *pszText,unsigned int nSize,int x,int y,SDL_Color color)
{
const char *pszFontName="arial.ttf";
TTF_Font *pFont;
SDL_Surface *pTextSurface;
SDL_Rect rect;
//打开字体文件并设置字体大小
if((pFont = TTF_OpenFont(pszFontName,nSize)) == NULL)
{
debug("call TTF_Open failed\n");
return -1;
}
//设置字体属性
TTF_SetFontStyle(pFont,TTF_STYLE_BOLD|TTF_STYLE_NORMAL);
rect.x = x;
rect.y = y;
rect.w = rect.h = 0;
SDL_Color bg = {0,255,255};
//使用打开的字体,将字符串"画"到内存(显示环境)中
if((pTextSurface = TTF_RenderText_Blended(pFont,pszText,color)) == NULL)
//if((pTextSurface = TTF_RenderText_Solid(pFont,pszText,color)) == NULL)
//if((pTextSurface = TTF_RenderText_Shaded(pFont,pszText,color,bg)) == NULL)
{
debug("call TTF_RenderUTF8_Solid failed\n");
}
else
{
//将内存(显示环境中的)数据拷贝到当前显示设备环境
SDL_BlitSurface(pTextSurface,NULL,pScreen,&rect);
}
//释放内存显示环境
SDL_FreeSurface(pTextSurface);
//刷新当前显示环境
SDL_Flip(pScreen);//flash the screen
//关闭字体
TTF_CloseFont(pFont);
return 0;
}
SDL_Color color = {255,0,0};
TTF_Init(); //TTF 初始化
DrawText(pScreen,"SDL Demo",30,10,10,color);
TTF_Quit(); //销毁TTF
注:
(1) 个人实验时,可以使用/usr/share/fonts/truetype/*.ttf,但在软件发行版中一定要小心选择所用的字体库,因为很多都是有版权的.
(2) 其他较流行的字体显示库还有freetype (http://www.freetype.org/)
他是一个完全免费的字体库,Licence: http://freetype.sourceforge.net/FTL.TXT
4, SDL_mixer
SDL默认时只支持WAV文件的播放,其他格式,我们可以使用SDL_mixer所封装的接口.
- SDL常用库介绍
- SDL介绍
- SDL 介绍
- SDL介绍
- SDL介绍
- SDL介绍
- SDL介绍
- SDL介绍
- SDL Guide介绍
- SDL Image介绍
- sdl 使用介绍网址
- SDL详情介绍
- SDL概念介绍
- SDL-1:初识SDL开发库
- SDL和SDL扩展库交叉编译
- SDL和SDL扩展库交叉编译
- 小翻译一篇介绍SDL的文章
- 详细介绍Qt,ffmpeg 和SDL开发
- Android之MVC模式
- eclipse启动tomcat访问不到主页
- jQuery关于导航条背景切换效果实现示例
- 类的内建函数
- 快速排序的递归和非递归实现
- SDL常用库介绍
- 观察者模式Observer及Java对此模式的支持
- 对Linux内核中进程上下文和中断上下文的理解
- android 布局如何支持多种不同屏幕尺寸
- Pro Android学习笔记(二三):用户界面和控制(11):其他控件
- Unity3D中c#集合的应用
- 笔记C/C++
- python判断字符串
- 04.多线程--07.【Runnable接口的来历】【Thread类和Runnable接口的关系】【个人总结】