要在Cocos2dx中使用Box2d,首先我们新建一个Cocos2dx工程,新建工程的办法可以查看本博客的另一篇文章
http://blog.csdn.net/pancwyz/article/details/37741375
工程创建完毕之后如图:
首先我们先编写一些Box2d的代码测试一下。
在HelloWorldScene.cpp中编写:
1.加入Box2d头文件。
2.在bool HelloWorld::init()方法中添加一行,创建一个物理世界。
编写的代码如下:
#include "HelloWorldScene.h"
#include "Box2D/Box2D.h" //添加头文件
USING_NS_CC;
Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
//
// 1. super init first
if ( !Layer::init() )
{
return false;
}
b2World * world = new b2World(b2Vec2(0, 10)); //创建物理世界
Size visibleSize = Director::getInstance()->getVisibleSize();
此处只复制了部分代码,其余代码并没有改动 。
修改好之后按 Ctrl + F5 运行,出现了以下运行结果:
报错原因为库连接失败。
当我们想在VS2012 + Cocos2dx 3.1.1(本人使用的版本) 上使用Box2d的时候,会发现,VS2012并没有默认把Box2d的库添加到工程里面。所以,我们想在cocos2dx上使用Box2d必须通过一些配置。请往下看:
一、我们首先需要添加Box2d这个项目,如何添加呢?
我们右击项目的解决方案->添加->现有项目
在弹出框中找到本项目目录 BlogTest\cocos2d\external\Box2D\proj.win32 中的 Box2D.vcxproj 双击添加进来
双击添加之后可以看见Box2d已经添加到项目了
二、生成并链接libBox2d.lib
1.接下来,我们右键刚刚添加进来的 libBox2D 点生成。
2.生成成功之后,我们可以在BlogTest\proj.win32\Debug.win32 文件中看见多了一个libBox2D.lib
我们再右键我们的项目
点 属性-> 链接器 -> 输入
在附加依赖项点编辑,如下图:
添加 libBox2D.lib 后确定确定
就可以运行我们的工程了:
至此Box2d就配置好了。
再次说明,本人使用的环境是(VS2012 + Cocos2dx 3.1.1)
完