SDL图形库使用跳坑指南
作者:互联网
SDL图形库的安装跳坑经验及入门学习路线
为什么选择SDL
这两天在捣鼓Linux系统,安装了国内的deepin(深度系统),然后就头脑发热的想使用C/C++ 来做款小游戏,在锻炼编程能力的前提下打发时间,关于游戏开发的图形库使用较多的有两款,一是DirtctX,而是SDL,SDL具有强大的图形渲染能力,提供了面向硬件的API,最主要的是跨平台,在window系统、MAS OS X、LINUX系统中都有对应的开发包,具体下载地址在SDL
官网:SDL WIKI.
使用哪个版本的安装包
SDL官方提供的开发包主要有SDL1.2、SDL2.0,还用想吗,肯定用最新版的了,因为在升级的过程中有些函数,有些方法被抛弃了,引申出了更优秀的方法,比如在创建图形窗口的时候SDL1.2使用的函数SDL_SetVideoMode
如果使用新的开发包写这样的函数,编译器是不认的,同理,SDL2.0中使用的SDL_Window* SDL_CreateWindow( 参数 ),在SDL1.2环境中编译也不能通过,会显示:SDL_Window 为不能识别的、未定义类型,实际上它是一个结构体类型。所以这里一定一定一定要注意,不要像我一样傻傻的疑惑了两天。
安装及配置方法
首先我会说在LINUX 系统中的安装方法,不仅适用于deepin,Ubuntu系统同样适用,第一重方法,下载开发包并使用解压缩命令,对应不同的文件格式有不同的命令,比如.ZIP类型的解压缩使用的是unzip filename,其他的自行百度,第二种是推荐的无脑安装命令 apt
记住,是4个,按照先后顺序输入命令:
sudo apt-get install libsdl2-dev
sudo apt-get install libsdl2-image-dev
sudo apt-get install libsdl2-ttf-dev
sudo apt-get install libsdl2-mixer-dev
如果要查看安装路径的话,使用
whereis SDL2,默认位置一般为 /usr/include/SDL2 ,当然,这个无所谓。
如果在window 系统下做开发的话,建议使用visual studio,因为visual c++和
Dev c++ 的话,使用比较小众,网上查找问题不方便,我开始使用的
Dev c++,但是我发现即使是官网的配置资料和方法,完全照做还是会出现问题,谷歌了下都没找到解决方法,可能是版本更新的问题。
这个的安装网上也很多,推荐链接:SDL中文翻译教程.
注意事项
在Linux系统下编译的时候,要添加链接库命令 ,一般为 -lSDL,针对1.2版本,-lSDL2、-lSDL2_main… 针对SDL2.0版本。
示例如下:
#include "SDL2/SDL.h"
#include "stdio.h"
int main(int argc,char* argv[])
{
SDL_Window* window;
SDL_Renderer* renderer;
SDL_Init(SDL_INIT_VIDEO);
if(SDL_Init(SDL_INIT_VIDEO) < 0)
fprintf(stderr,"%s\n",SDL_GetError());
window = SDL_CreateWindow("SDL_RenderClear",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
512,512,0);
renderer = SDL_CreateRenderer(window,-1,0);
SDL_SetRenderDrawColor(renderer,255,0,0,255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
SDL_Delay(5000);
SDL_Quit();
return 0;
}
编译:
gcc demo.c -o demo -lSDL2
示例代码网上很多,自己去学。
在头文件的形式上,visual studio为:#include "SDL.h"
linux中一般表示成路径形式 #include "SDL2/SDL.h"
补充
如果你之前安装过了SDL1.2,想要卸载的话,也同样使用 apt-get 命令
具体形式可以使用 帮助文件 apt-get - help
下面这些资料,包括示例代码,比较好的网站链接,有些是在别的地方找的,有的是自己在官网翻译的,还有三本PDF,希望对大家有帮助。
搜索:SDL最最全学习资料.zip
标签:get,跳坑,apt,SDL,window,使用,图形库,include 来源: https://blog.csdn.net/anmujun/article/details/98470134