cocos2d-x-2.2.4 (三) 整理MyGame工程

本文详细介绍了如何整理MyGame工程,包括整合库资源、优化项目结构、解决编译错误等问题,旨在提升开发效率并使项目更加清晰易懂。通过将各种库源码集中于libs目录下,将游戏逻辑与资源分类管理,并最终调整BuildSettings,实现了项目的高效编译与运行。同时,文章还讨论了如何避免不必要的错误,以及如何在iOS与Android平台上适配资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接下来就是整理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下运行起来吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值