DinS Written on 2017/11/25
本文介绍如何建立urho3d工程,需要编译好的库。如何编译可见《编译Urho3D库》。
参考了官方两篇教程:
https://github.com/urho3d/Urho3D/wiki/Setting-up-a-Project-(CMake)
https://urho3d.github.io/documentation/1.6/_using_library.html
核心思路是利用Urho3D提供的cmake方法,建立一个类似的目录然后build得到完成的工程。
第一步,先搭建一个目录系统。
建立一个文件夹叫CustomUrho3D,然后从Urho3D的source里把bin和Cmake拷贝过去的:
这是一个讨巧的方法,bin里就是准备一些资源文件,从source拷贝过去的。一方面是保持目录结构,另一方面提供一些资源可以直接使用。
当然source的bin下面还有一些文件一起拷贝过来了,删掉就好,最后自定义的工程目录里bin和cmake里看起来是这样的:
然后从Urho3D的source里把cmake_generic.bat和cmake_vsXXXX拷贝过来,因为这里使用的是VS2015所以拷贝对应bat文件。
现在看起来是这样的:
之后在同级目录下新建一个CMakeLists.txt文件,内容填这个网址中的https://github.com/urho3d/Urho3D/wiki/Setting-up-a-Project-(CMake)
内容看起来是这样的:
(大图点这里)
红线部分是工程名字和exe名字。这一步的意义就是指定cmake的相关指令。
现在文件夹看起来是这样的:
最后要提供一个cpp,cmake至少需要一个cpp才能够生成成功。
我们这里增加一个main.cpp,内容如下:
(大图点这里)
等具体介绍引擎功能时再细说,这里先这么写就好了。
最后文件夹看起来是这样的:
第二步,使用cmake生成工程
这里使用GUI好了,使用方法跟编译库一样。
打开cmake_GUI,输入目录:
我这里直接在CustomUrho3D下新建了一个build文件夹,工程生成在那里
注意:此时的build选项必须与生成Urho3D时候的build选项一致。比如编译库时勾了OPEN_GL那么新建工程也要勾OPEN_GL。
Finish后会出现这样:
不要着急,正常,点击OK后勾选build options。
选项会少很多,但是有一个_HOME非常重要:
cmake生成工程时需要用到在编译库时生成的lib,这个HOME就是指定这个lib文件在哪里。指定到图示目录即可,会有自动寻找的模块。实际上lib和include都会用到。
再次Generate即可:
找到对应目录,打开sln:
看起来都是正常的,生成:
找到对应exe:
这里可以看到CoreData和Data,这里面的内容就是刚才我们准备CustomUrho3D时放进去的,也就是游戏资源默认加载路径。
可以运行。也可以从VS里Debug运行。
比如我们改这两个数值:
将HelloWorld设置为启动项:
然后从VS里运行:
有一点要注意,据说如果增加了source file则必须按照上述流程再次build,否则会生成失败。当然也有方法解决,后面的文章再细说。
最后来说说一些周边问题,如何给exe换图标?
这个肯定是要做的,但是怎么简单呢?
其实很简单,不需要代码手动即可。
找到一个ico,放到sln目录下,当然这是对应导入ico情况,手绘ico也是可以的。
选择导入,找到对应图标:
可以看到对应的图标被导入了:
改成release,然后生成:
去找生成的exe,发现图标自动更换了。确实方便:
接下来是另一个问题:如何确保exe在其他的机器上可以正确执行?
这里可以细分为两个问题:exe的运行环境以及资源路径。
因为我们使用了static library并且是release版,所以exe的运行环境应该没有问题。至于路径,需要把CoreData和Data一并提供,并且目录结构也要保持一致。所谓CoreData即引擎本身需要用到的文件,而Data则是作者自己提供的资源。
比如把刚刚制作的内容拷贝到另一台机器上:
然后运行HelloWorld.exe:
成功了!
运行一遍以后可以发现多出了一个log文件:
打开如下:
这里可以看到CoreData和Data确实有作用,而且还从侧面说明了一点:路径里不要有非英文字符,不然可能加载失败。
之所以会生成这个log是因为在build工程时勾选了option,不勾就不会生成。
至此准备工作全部完成,可以正式进入urho3d使用方法了,一步一步来,先研究《Urho3D引擎框架》。