接下来就是整理MyGame工程了,先记录一下整理之前的MyGame工程:
里面有一个子工程cocos2dx,还有Box2D、chipmunk、CocosDenshion、extensions、libwebsockets等单独的目录,而且cocos2d-x-2.2.4还是单独文件夹,不在MyGame目录下面。
下面开始整理~
首先在/Users/zf/MyGame/下面建立一个新文件夹libs,然后在MyGame工程下面建立一个新Group:libs
将libs指向刚才新建的libs文件夹。
然后将/Users/zf/cocos2d-x-2.2.4/目录下的cocos2dx、CocosDenshion、extensions、external文件夹复制到libs目录下面。注意,在cocos2dx、CocosDenshion、extensions、external/Box2D、external/chipmunk下面有大量的proj开头的文件夹,全部可以删除。这样可以节约空间,想cocos2dx目录本来有200M,删除相应工程以后只有53M多了。
接下来将MyGame工程中的Box2D、chipmunk、CocosDenshion、extensions、libwebsockets都拖拽到libs下面:
然后将libs下面所有文件的路径都改成指向libs相应的文件夹:
比如Box2D目录,原来指向的是/Users/zf/Cocos2d-x-2.2.4/external/Box2D,修改后应该是指向/Users/zf/MyGame/libs/external/Box2D:
然后使用同样的方法操作chipmunk、CocosDenshion、extensions、libwebsockets文件夹。
接下再将cocos2dx工程下面的cocos2dx文件夹也拖到libs下面去:
然后将cocos2dx的路径也同样设置到/Users/zf/MyGame/cocos2dx下面:
然后注意,cocos2dx工程目录下面的Frameworks下面有个libwebp.a也需要拖到MyGame工程下的Frameworks下面,否则后面会编译不过:
这时候注意一下MyGame工程下面的Frameworks下面应该有很多库,其中libcurl.a和libwebp.a都是cocos2d的库,看看他们的路径是否正确,如果不正确也按照之前的方式修改:
他们的路径都在/Users/zf/MyGame/libs/cocos2dx/platform/third_party/ios/libraries/下面。
现在,可以从MyGame中删除cocos2dx工程了,删除cocos2dx工程以后,MyGame工程对cocos2dx工程的依赖也自动解除了。所以之前我们挪动MyGame文件夹的时候,因为找不到cocos2dx子工程,xcode自动将工程依赖给删除了,从而导致链接失败~~
删除子工程以后:
怎么样,是不是清爽很多,但是现在还没完,还记得要修改MyGame工程中的Build Settings中的Header Search Paths和Library Search Paths:
之前我们是让它们指向cocos2d-x-2.2.4目录,现在改成libs下面即可。
(不知道大家有没有注意到,里面的路径都是相对路径,但是不知道为啥第一个没有被双引号包起来,后面的都用了双引号。但是感觉没区别,挺奇怪的。)
然后command+r,编译运行,搞定~~~~~
这时候你会发现200个错误。。。。。。
200个错误,就是和上一篇一样,找不到cocos2dx目录下的所有cpp,为什么呢,因为cocos2dx目录是从cocos2dx子工程拖到MyGame工程中,没有编译,这时候要将cocos2dx目录下的cpp添加到Build Phases下面的Compile Sources去,一个个添加,太累了,有啥好办法么?
我采取的是删除之前MyGame下的cocos2dx目录,然后将/Users/zf/MyGame/libs/cocos2dx文件夹拖拽到工程的libs 下面
注意Copy items选项是不用选的,因为cocos2dx文件夹已经在libs文件夹下面了;
底下的create group for any added folders是需要选的,这就是为拖进来的cocos2dx文件夹下面的每一个子文件夹建立一个group,这样在xcode工程下面看就是黄色的文件夹形式:
而一般资源文件的添加方式采用Create folder reference for any added folders:
因为蓝色文件夹下面的任何文件变化,都能从工程中直接看到,不需要任何额外的操作,比如我们添加了一个图片在蓝色文件夹对应的目录下面,MyGame工程目录下面就能直接看到该图片。
而黄色文件夹下面添加一个图片,则不会反映在MyGame工程上。
现在再次编译,还会发现一些错误,要注意看error指向的cpp,这些cpp应该都是在android目录下的,因为这是android平台所需要的文件,在ios下不用编译,直接从工程中删除就是,记住要选择Remove References:
这时候我还发现多了些warning:
这是因为我将cocos2dx目录下的一些Android.mk文件也添加进来了,将他们也从cocos2dx目录下删除即可。
还有一个cocos2dx/kazmath/src/目录下的CMakeLists.txt也会报告一个warning,同样删除。不过很奇怪一个txt为啥会导致编译警告呢?希望有人看到了能不吝赐教O(∩_∩)O~
现在编译运行,ok了~~
现在大家看看MyGame目录:
是不是清爽多了!
libs下面放各种库源码;
Classes下面放以后的游戏逻辑,可以在Classes下面再建立多个不同的group,将以后的源码分开便于管理;
Frameworks下面放各种动态库和框架;
ios是程序入口所需要的oc文件;
Resources下面放资源。
而且也不用连接cocos2dx-2.2.4文件夹了,要是需要共享代码只要将MyGame文件夹上传到网上就行了,方便不?!
其实通过这些操作,我主要是为了熟悉对编译过程的理解,这个对于程序员是非常有用的哦~
好的,cocos2d-x-2.2.4建立工程就到此结束了,下一步如果有时间,我应该是先将MyGame在android下运行起来吧~