我使用的是 vs2010 + cocos2dx 2.2.0
看见很多人说示例程序跑不起来,所以发个贴来说说我是怎样运行起来的,仅仅代表我自己的方法哦
首先下载示例程序,这个包里面就自带了个cocos2d-x的目录,咱们可以把cocos2dx根目录都放到这里来,或者将示例程序包放到cocos2dx那个文件夹的上一级,不过的保证文件夹的名称和cocos2d-x保持一致
然后随便选择一个项目打开,如:D:\360Downloads\CocoStudioSamples-master\DemoGame\proj.win32里面的 DemoGame.vcxproj 文件,可以先打开vs2010,然后从通过vs2010打开解决方案,找到这个路径
(这里原本的.sln是 2012版本的,可以先打开vs2010,然后从通过vs2010打开.vcxproj 文件,然后保存一个.sln文件,替换原来的,以后就可以直接打开.sln文件了)
编译,发现很多lib没找到,或者link有问题,别着急我把这些库加进来
分别把下面几个目录下的项目都加到解决方案里面来
D:\360Downloads\CocoStudioSamples-master\cocos2d-x\cocos2dx\proj.win32 cocos2d.vcxproj
D:\360Downloads\CocoStudioSamples-master\cocos2d-x\CocosDenshion\proj.win32 CocosDenshion.vcxproj
D:\360Downloads\CocoStudioSamples-master\cocos2d-x\extensions\proj.win32 libExtensions.vcxproj
D:\360Downloads\CocoStudioSamples-master\cocos2d-x\external\Box2D\proj.win32 Box2D.vcxproj
D:\360Downloads\CocoStudioSamples-master\cocos2d-x\external\chipmunk\proj.win32 chipmunk.vcxproj
不管用不用的到,我都给加进去了,这个时候解决方案里面就多了这几个工程lib了
现在右击解决方案-》属性-》通用属性-》项目依赖项,项目选择DemoGame,下面列表会有刚刚加进去的几个lib工程,把他们都勾上再编译
(到这里其实大部分的示例都能跑起来了,就剩下两个使用到了Box2d的项目跑不起来 DemoGame和SampleCollision)
在DemoGame里面有一个ReadMe.doc文件,这里面其实已经说了怎么让这个项目正常跑起来
首先你要找到 这么一段,就在 CCArmatureDefine.h 文件里面
#ifndef ENABLE_PHYSICS_BOX2D_DETECT
#defube ENABLE_PHYSICS_BOX2D_DETECT 0
#endif
#ifndef ENABLE_PHYSICS_CHIPMUNK_DETECT
#defube ENABLE_PHYSICS_CHIPMUNK _DETECT 1
#endif
其实就是物理引擎的开关,是使用BOX2D还是CHIPMUNK了,把他改成
#ifndef ENABLE_PHYSICS_BOX2D_DETECT
#defube ENABLE_PHYSICS_BOX2D_DETECT 1
#endif
#ifndef ENABLE_PHYSICS_CHIPMUNK_DETECT
#defube ENABLE_PHYSICS_ CHIPMUNK _DETECT 0
#endif
就可以了,完了之后还得右击项目-》属性-》配置属性-》c/c++ -》预处理器-》预处理器定义,将里面的 CC_ENABLE_CHIPMUNK_INTEGRATION=1 改成 CC_ENABLE_BOX2D_INTEGRATION=1 就可以了
另外,上面编译还有问题,可以右击项目-》属性-》通用属性-》框架和引用-》添加新引用,把libBox2D,libChipmunk,libcocos2d,libCocosDenshion,libExtensions都加进来
好了,现在编译解决方案就可以同过了。。。
我把所有的示例项目都加到这个里面来了,SampleCollision这个项目编译还有问题,armature2->setB2Body(body);说setB2Body不是他的成员函数,把他改成setBody就好了
这个是我自己通过hanrea和另一个人的提示弄出来的,希望对大家有用。。。
一些操作截图。。
cocostudio示例运行.rar (225 KB)



error: ‘class cocos2d::extension::CCPhysicsSprite’ has no member named ‘setB2Body’