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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。当然,最为重要的是提供了2D图形帧缓冲(framebuffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口以实现3D图形。从这些属性我们可以看出,SDL基本上可以认为是为以电脑游戏为核心开发的多媒体SDL支持主流的操作系统,包括Windows和Linux。在官方的介绍中,我们可以找到它所支持的其他平台。(SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. )。SDL本身从C语言开发,并且能很好的在C++等高级语言中使用。在官方可以看到SDL所支持的语言很多。(Including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl. ) SDL在GNU LGPL version 2下发布,这意味着你可以免费的使用。并且可以免费的用于商业软件的制作(只要你直接使用SDL的动态链接,Windows下的SDL.dll)。如果你将SDL编译进了自己的二进制代码中,你需要指明你所使用SDL的版本以及包括你自己修改的源代码,并说明这些代码的原始出处。这是很宽松的法律,你可以用如此强大的多媒体完全合法的免费开发商业游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值