2、其次打开需要粗悉晌翻译的列表进行翻译。
3、最后导出目标文件:右击项目文件,选择生成目标文件即可。SDL(Simple DirectMedia Layer)是一陆槐套开放源代码岩锋的跨平台多媒体开发库,使用C语言写成。
①找到codeblocks安装目录下的MinGW文件夹(我的是这样子的:“E:\programfiles\CodeBlocks\MinGW”)
这个目录下有include文件夹,打开它。在sdl包里面有一个include\SDL文件夹,把这个文件夹拖到你的电脑里面的include文件夹里。
②找到codeblocks安装目录下的MinGW文件夹(我的是这样子的:“E:\program
files\CodeBlocks\MinGW”)
这个目录下有lib文件夹,打开它。在sdl包里面有一个lib文件夹,把这个里面的三个文件“libSDL.dll.a,
libSDL.la和libSDLmain.a”拖到你电脑里的lib文件夹里面。
③把sdl包里面bin文件夹里面的SDL.dll文件拖到“C:\WINDOWS\system32”(我用的是XP系统)。当然,另外一个选择是将SDL.dll随时绑定到使用了SDL库编译的*.exe文件所在的文件夹中。这通常在发布你的程序的时候使用。
这样的话,基本的SDL就算是配置好了谨缺孝,可以用来写程序咯~!
用codeblocks新建一个空项目,在这个项目里面新建扮氏一个c++(我目前学的就是C++,java、C#什么的不感兴趣)文件。敲入下面的代码:
#include
<iostream>
#include
<SDL/SDL.h>
int
main(int
argc,
char*
argv[])
{
try
{
if(SDL_Init(SDL_INIT_EVERYTHING
==
-1))
throw"Could
not
initialize
SDL!"
}
catch(const
char*
s)
{
std::cerr<<s<<std::endl
return
-1
}
std::cout<<"SDL
initialized.\n"
SDL_Quit()
return
0
}
在左侧的Management窗口中,在项目上右击鼠标,选择构建选项,在横向目录里面选择“连接器设置”,添加“mingw32SDLmainSDL”(直接把双引号里面的内容复制进去就好),点击确定。发现添加了三行的连接库(这就对了),然后再此点击确定。
最后编译,运行。无误可以构建成功,虽然没有任何窗口生成,但是说明SDL配置和代码是没有问题的~!
在生成的debug文件祥稿夹下,生成了一个stdcout的txt文档。这个文档里面记录了程序的运行结果。
主要错误:screen没有赋值,导致后面加载字体失败。小错误:fontFile参数应该使用,不要函数内部用自己的参数,否则换一个ttf可能会出错。
此外,错误信息可以用TTF_GetError()和SDL_GetError()得到。
给你粗糙的改了一下,在枝局2010下编译后,在屏幕左上角可见一个白色的"猛雀让TEST"。
有问题可以再问。如果对SDL开发感兴趣,欢迎加入SDL团队。
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include <SDL_ttf.h>
#define WIDTH 600
#define HEIGHT 400
#define CPP 32
SDL_Surface *screen = NULL
int initSDL(void)
{
if(SDL_Init(SDL_INIT_EVERYTHING) == -1)
{ printf("SDL init failed...\n")
return 0
}
screen = SDL_SetVideoMode(WIDTH,HEIGHT,CPP,SDL_SWSURFACE|SDL_DOUBLEBUF)
if(screen == NULL)
{ printf("init screen failed, please check your display card\n")
return 0
}
if(TTF_Init() == -1)
{
printf("init ttf files failed...\n")
return 0
}
SDL_WM_SetCaption("SDL show text",NULL)
return 1}
void quitSDL(void)
{ TTF_Quit()
SDL_Quit()}
int initFont(SDL_Surface **aMsg, const char *aText,SDL_Color &aTextColor,const char *aFontFile,int aSize)
{TTF_Font *font =TTF_OpenFont(aFontFile,aSize)
if(NULL==font)
{printf("打开字体失败:%s\n", TTF_GetError())
return 0}
*aMsg=TTF_RenderText_Solid(font,aText,aTextColor)
TTF_CloseFont(font)
return 1}
void showText(SDL_Surface *aMsg,int aLeft,int aTop,int aWidth,int aHeight,SDL_Surface *aDestination)
{
SDL_Rect textPosition
textPosition.x =aLeft
textPosition.y =aTop
textPosition.w =(aWidth==0)?aMsg->w:aWidth
textPosition.h =(aHeight==0)?aMsg->h:aHeight
SDL_BlitSurface(aMsg,NULL,aDestination,&textPosition)
}
void showScreen(void)
{ SDL_Flip(screen)}
int main(int argc,char *argv[])
{
SDL_Surface *pText
//define color is white
SDL_Color textColor ={255,255,255}
//initial SDL
initSDL()
//载入字库文件,“simhei.ttf”文件是一个字库文件,可以到系统的font文件夹下找到,找到后放到cpp文件目录下
initFont(&pText,"TEST",textColor,"simhei.ttf",12)
//岁吵show text to display memory
showText(pText,0,0,0,0,screen)
//show text to screen
showScreen()
//delay 5s
SDL_Delay(5000)
//close SDL
quitSDL()
system("pause")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)