Cocos2d-x中Box2d示例无法运行的问题

Cocos2d-x中Box2d示例无法运行的问题

    最近研究碰撞,因以前对Box2d较为熟悉,所以较为倾向于使用该引擎来实现一些东西。问题是cocos默认使用的是ChipMunk。刚解压出来的引擎,直接对cpp-tests的Box2dTest编译运行会被提示要求定义CC_ENABLE_BOX2D_INTEGRATION = 1,但是这玩意还不太好直接在文件中直接#define,看后面大概能知道其原因。

    解决的办法是直接在cpp-tests项目属性的C/C++项目,预处理器选项的预处理器定义中定义,注意不能同时定义CC_ENABLE_CHIPMUNK_INTEGRATION=1。当然,定义完以后,你会发现程序出错得更离谱,不弹出要求加定义的对话框了,直接发生断言错误……难过

    跟踪一下,断言发生在CCPhysicsSprite.cpp中:

void PhysicsSprite::setB2Body(b2Body *pBody)
{
#if CC_ENABLE_BOX2D_INTEGRATION
    _pB2Body = pBody;
#else
    CCASSERT(false, "Can't call box2d methods when Box2d is disabled");
#endif
}
    其实原因想想也还简单,如图:



      cpp-tests和包含CCPhysicsSprite.cpp的libExtensions项目是平级的,也就是cpp-tests中修改的预定义是不作用到libExtensions上的,哥们这个倒是很快反应过来了,就是找CCPhysicsSprite的时候眼拙,看到libcocos2d项目里面去了,改错了,半天搞不定,大哭。网上狂搜,终于有哥们贴出来同样的过程,点这里。完事,尼玛,选择cocos2dx就是自己找虐的节奏。

    搞定以后,可以看看这位弟兄的学习文章,对着代码看还是很清楚的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值