万年潜水归来,发福利。 SDL2.0
SDL这次更新到第二代,最大的新奇地方就是支持安卓和苹果等移动设备(IOS应该不分移动和PC版,这个不清楚)传送门:
http://www.
第一份的是源代码,第二份的是运行库,第三份的是已编译版的开发库(开发库的动态库和静态库打包了32和64位的)。
注:编译版的只提供windows,linux,苹果这三类,linux不用下载,直接更新共享库就行了。如果要开发安卓版的需要下载源代码,然后编译一份安卓版的。它不提供已编译版本的。
第三方插件:
http://www.
SDL_image,SDL_mixer,SDL_net,SDL_rtf,SDL_ttf都有下载
官方提供一份简单的教程,网上有人在翻译成中文,不过我说句实话,真心坑!不是翻译的问题,而是教程里面太坑爹了。除了向你展示能这么做,实际上什么都干不了。
SDL2的教程实在很少,官方网上推荐的书也不多,几本书里看标题就相中一本《SDL game development》翻译过来就是“SDL游戏开发”,大致看了一下还可以,每次说到什么接口的时候都会列出全部参数,总算没那么坑爹了,不过没有中文版的。也别期望我去翻。
关于配置,如果有人使用mingw版本的,那下载最新版的mingw就可以了,如果是DEV-C++,注意更新核,把G++全部更新到最新的。我编译了半天死活过不去,可能是这个问题。
VC版的6.0没试过,我用的是VS2008,我估计2005以上版本都和我的一样。
配置起来极其简单,打比方你自己写了一个DLL,连接导出使用隐式方式。使用方法一模一样。DLL,LIB或者A文件,带标示符的H头文件。
VS2008的配置方法:
下载开发库到某个地方解压,得到include文件夹和lib文件夹,lib文件夹包含DLL
为了简化把include文件夹改名为SDL,然后复制到VS的安装目录一般是Microsoft Visual Studio 9 -> VC -> include 文件夹下
lib的复制方法很邪恶,具体这样做,打开VS2008,新建一个工程,查看工程配置,选择"连接器",选择"高级",在上面一大堆命令行里复制最后一个lib然后进行安装盘查找看它在哪个目录,找到后把SDL的3个lib复制进去,然后在可以自己输入的命令行里加入这三个lib的名称(带.lib的),每个以空格分隔。
测试方法:
现在继续使用这个“工程”,希望你建立的是命令提示窗程序,因为有个命令提示框很容易查看错误输出。
找到带入口函数的CPP,应该是_tmain
复制如下:(代码来自SDL game development,但我改了一下)
#include<SDL\SDL.h>
SDL_Window* g_pWindow = 0;
SDL_Renderer* g_pRenderer = 0;
int main(int argc, char* args[])
{
if(SDL_Init(SDL_INIT_EVERYTHING) >= 0)
{
g_pWindow = SDL_CreateWindow("sdl test", \\窗口名字,注意VS7以后版本全部都是宽字符格式,要用中文的话用宽字符标志
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480,
SDL_WINDOW_SHOWN);
if(g_pWindow != 0)
{
g_pRenderer = SDL_CreateRenderer(g_pWindow, -1, 0);
}
}
else
{
return 1;
}
SDL_SetRenderDrawColor(g_pRenderer, 255, 0, 0, 255);\\第2,3,4的参数分别代表RGB值,这样窗口是红色
SDL_RenderClear(g_pRenderer);
SDL_RenderPresent(g_pRenderer);
SDL_Delay(5000);\\中断5秒,只是为了测试
SDL_Quit();
return 0;
}
如果编译成功会提示找不到SDL2.dll,接着复制这个动态库到编译好的EXE目录下再运行,就会出现一个全红的窗口,并且有5秒时间。
PS:不要去找SDL1的教程,看清楚。SDL2的接口名字全改了,虽然方法都是一样的。如果去复制粘贴SDL1教程的代码,那是编译不过的。
再次PS:这是一个轻型的媒体库,功能不可能同其它大型专业库对比,请勿吐槽。