出于对游戏开发的兴趣,最近想借本书练手。
找到本叫《C++图形与游戏编程基础》的书,该书从头到尾使用DarkGDK库,底层代码全被封装起来了,所以程序看上去很好很强大的样子。反正也没指望这本书能帮我解决DirectX或者OpenGL的学习问题,所以就算只是练练程序逻辑也不错。
于是去官网下载了DarkGDK,蛋疼的问题来了,我配了半天都没能弄出个Hello World。
官方建议搭配的开发平台是Visual Studio 2008,之前机子里装了2010,既然是更高版本应该没大问题才对。另外DarkGDK依赖DirectX 9.0 SDK,所以还要装对应的版本才行。之前装过DirectX June 2010,以为没问题,于是开始安装DarkGDK,有几百MB大。
.................遇到的麻烦很多的.................
1、启动安装界面提示需要VS2008支持,问我是否现在去下载。一开始没细看,于是点了是,安装自动退出了,然后自动打开浏览器到微软的Visual Studio产品下载页(现在已经变成VS2010了)。以为安装好了,一激动到处找,没找到。又点安装包,仔细看了下MessageBox才知道要按“否”才能继续装。
2、装好了后我先检查了系统环境变量,好像没有自动帮我创建起来。于是自己创建了两个(Include 目录和 Lib 目录)。
3、打开VS开始创建项目,修改配置包含了Dark目录文件,然后开始写简单测试代码。报错,找不到ddraw.h。我马上跑去DirectX SDK目录看,果然没有= =。之前听闻DirectX到d3d之后变化比较到,DirectDraw据说是被并入d3d中了,不过毕竟对此了解不多,也不知道直接修改调用文件的代码改到d3d行不行(担心接口函数变了)。找了下负责库调用的代码,结果没找到。
4、到网上求助,结果根据建议下载了DirectX August 2009版本,ddraw.h倒是找到了,不过编译程序继续报错,提示dxerr9.h找不到了(这厮真麻烦...)。查了资料发现是新版本被改成dxerr.h了,我郁闷直接把2009版的DirectX SDK里的dxerr.h改成了dxerr9.h,不再报这个错误了。出现了新错误,无法打开strmbasd.lib文件,我无语,找了一遍DX目录,没有这个文件,我不了解它是哪来的。网上说要自己手动编译什么BaseClass的(DX目录下),我没找到这个文件。担心是DX版本问题,于是根据搜集来的信息下载了DirectX SDK August 2007版本(一下子电脑里出现了3个DX SDK ╮(╯▽╰)╭)。还是没找到,一阵郁闷之后去CSDN直接下载过来用,继续配置包含项。
5、以为都没问题了,再编译,这次没提示找不到文件。但提示:error C2061: 语法错误: 标识符“__RPC__out_xcount_part” ,查资料发现是Dark和WinSDK冲突,要修改目录包含顺序才行。于是把包含WinSDK的语句提前。
6、再次编译的时候出现找不到程序入口点的问题...项目配置里倒是有这项设置,不过配置不来了。这时候想到了官方提供的Dark升级包,下下来解压后在Lib里找到VS9和VS10两个文件,Include也一堆,我把Include中的覆盖了以前版本的,然后把Lib并入以前的文件夹。再次更新项目配置,还是不能解决问题。
7、网上关于DarkGDK的中文资料还真是少啊,事实上英文资料也不多...要不就将就着看了。貌似都没什么人用啊。无奈之下只好求助官方为VS08提供的项目模板文件,我捣鼓了几下没成功,10好像用不起来。-_-|||
8、折腾下来耐心耗去大半,使出绝招准备直接在它给的Demo基础上写,结果运行不起来....报出来的错误还很神奇。。。表示看不懂,也没什么找到什么靠谱的资料。(╯﹏╰)
总结:这丫太蛋疼了...等哥配好的时候菜都凉了,还有啥兴致做游戏哟~~
VS08是懒得装了,CSDN上找到了Dark对VS2010的补丁包,明天再试试,唉不行哥自己封装DX去...
可能有用的资料:
库冲突:http://blog.csdn.net/highyyy/archive/2011/01/16/6144825.aspx
书译者的博客:http://transbot.blog.163.com/blog/static/54213961200992302529265/
一个Dark写的五子棋成品:
http://hi.baidu.com/kingkongwithglasses/blog/item/5a92142cb3480cfd8a13998f.html
VS2010解决Dark问题:http://blog.csdn.net/swc342032437/archive/2011/05/14/6419256.aspx
DarkGDK VS2010补丁:http://download.csdn.net/source/3277981