欢迎来到天天文库
浏览记录
ID:32536015
大小:294.30 KB
页数:9页
时间:2019-02-11
《sdl入门文字的显示》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SDL文字的显示在游戏中是经常需要输出文字的,如计数、提示、显示分数,这次写这个主要是为我那个俄罗斯方块计分。当然了显示分数可以用图片,也可以用专门的文字绘制函数,这里主要讲用函数这种方法。1、下载适合VS2005使用的文字操纵库下载地址如下:http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-devel-2.0.9-VC8.zip2、解压后拷贝文件,跟第一篇文章一样3、配置IDE环境:剩下的就是敲代码了/*作者:云飞功能:SDL输出文字*/#include#include2、>#include#includeconstintSCREEN_WIDTH=640;constintSCREEN_HEIGHT=480;constintSCREEN_BPP=32;TTF_Font*font=NULL;SDL_Surface*screen=NULL;/*functionname:initSDLparameter:void//noneparameternote:return:int1:initialSDLnormally0:initialSDLabnormallyfunction:initialSDL3、*/intinitSDL(void){//initallSDLsubsystemsif(SDL_Init(SDL_INIT_EVERYTHING)==-1){printf("初始化失败!");return0;}//initscreenscreen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_BPP,SDL_SWSURFACE);if(screen==NULL){printf("初始化屏幕失败!请检查显卡!");return0;}//initttfif(TTF_Init()==-1){printf("初4、始化字库失败!");return0;}return1;}/*functionname:quitSDLparameter:voidparameternote:return:voidfunction:clossSDl*/voidquitSDL(void){//ClosethefontthatwasusedTTF_CloseFont(font);TTF_Quit();SDL_Quit();}/*functionname:loadMessageparameter:constchar*text,SDL_Color&textColor,constchar*FontFile,5、intsizeparameternote:constchar*text:thetextcontentSDL_Color&textColor:textcolorconstchar*FontFile:fontfilenameintsize:textsizereturn:SDL_Surface*function:loadfontfile*/SDL_Surface*loadMessage(constchar*text,SDL_Color&textColor,constchar*FontFile,intsize){font=TTF_OpenFont("simhei.ttf",6、size);if(font==NULL){printf("打开字体失败!");return0;}returnTTF_RenderText_Solid(font,text,textColor);}/*我这破英语水平都能猜出前面TTF_FontTTF_OpenFontTTF_RenderText_SolidTTF_CloseFont的大概意思,相信你更能,都是些函数不必知道它怎么写的会用就行了都是些套路,别人写好的函数,咱们就是用用没什么难度,可以看出TTF_RenderText_Solid返回值是SDL_Surface**//*你是否注意到了simhei.ttf这7、个文件,TTF是一种字库名称,兴趣的可以查查百度知道(相信你会知道的更多)就是咱们那宋体呀楷体什么的,可以到系统的fonts(C:WindowsFonts)文件夹下找到,找到后放到cpp文件同目录下(你在搜索栏那儿一搜出来了)这个是那个黑体*//*functionname:showTextparameter:SDL_Surface*msg,intx,inty,intwidth,intheight,SDL_Surface*destinationparameternote:SDL_Surface*msg:thetexthandlerintx:text'sleft
2、>#include#includeconstintSCREEN_WIDTH=640;constintSCREEN_HEIGHT=480;constintSCREEN_BPP=32;TTF_Font*font=NULL;SDL_Surface*screen=NULL;/*functionname:initSDLparameter:void//noneparameternote:return:int1:initialSDLnormally0:initialSDLabnormallyfunction:initialSDL
3、*/intinitSDL(void){//initallSDLsubsystemsif(SDL_Init(SDL_INIT_EVERYTHING)==-1){printf("初始化失败!");return0;}//initscreenscreen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_BPP,SDL_SWSURFACE);if(screen==NULL){printf("初始化屏幕失败!请检查显卡!");return0;}//initttfif(TTF_Init()==-1){printf("初
4、始化字库失败!");return0;}return1;}/*functionname:quitSDLparameter:voidparameternote:return:voidfunction:clossSDl*/voidquitSDL(void){//ClosethefontthatwasusedTTF_CloseFont(font);TTF_Quit();SDL_Quit();}/*functionname:loadMessageparameter:constchar*text,SDL_Color&textColor,constchar*FontFile,
5、intsizeparameternote:constchar*text:thetextcontentSDL_Color&textColor:textcolorconstchar*FontFile:fontfilenameintsize:textsizereturn:SDL_Surface*function:loadfontfile*/SDL_Surface*loadMessage(constchar*text,SDL_Color&textColor,constchar*FontFile,intsize){font=TTF_OpenFont("simhei.ttf",
6、size);if(font==NULL){printf("打开字体失败!");return0;}returnTTF_RenderText_Solid(font,text,textColor);}/*我这破英语水平都能猜出前面TTF_FontTTF_OpenFontTTF_RenderText_SolidTTF_CloseFont的大概意思,相信你更能,都是些函数不必知道它怎么写的会用就行了都是些套路,别人写好的函数,咱们就是用用没什么难度,可以看出TTF_RenderText_Solid返回值是SDL_Surface**//*你是否注意到了simhei.ttf这
7、个文件,TTF是一种字库名称,兴趣的可以查查百度知道(相信你会知道的更多)就是咱们那宋体呀楷体什么的,可以到系统的fonts(C:WindowsFonts)文件夹下找到,找到后放到cpp文件同目录下(你在搜索栏那儿一搜出来了)这个是那个黑体*//*functionname:showTextparameter:SDL_Surface*msg,intx,inty,intwidth,intheight,SDL_Surface*destinationparameternote:SDL_Surface*msg:thetexthandlerintx:text'sleft
此文档下载收益归作者所有