让Cocos2dx中的TestCPP中的Box2dTest运行起来
一般而言,如果你导入TestCPP到VS2012中去后,会编译十几分钟才会出现窗口界面,这是包含Cocos2dx所有功能的一个demo,功能非常齐全强大,里面有两个关于Box2d的测试案例,一个是Box2dTest,另一个是Box2dTestBed,运行发现,Box2dTest运行不了,提示说“Should define CC_ENABLE_BOX2D_INTEGRATION=1\n to run this test case”。
说是要定义CC_ENABLE_BOX2D_INTEGRATION这个宏为1,那要怎样定义呢,可以再程序的最初入口定义,或者打开TestCPP的工程属性,打开[C++]->[预处理器],找到预处理器定义,在里面添加“CC_ENABLE_BOX2D_INTEGRATION=1”即可,此时TestCPP它的CC_ENABLE_BOX2D_INTEGRATION这个宏就是1了。
然后我试着再次跑了一下TestCPP工程,发现Box2dTest仍然不能运行,此时的错误不是CC_ENABLE_BOX2D_INTEGRATION没有定义,而是弹出了一个断言对话框,我F5调试进入,才发现,运行到libExtensions这个工程里面的如下代码:
1 void PhysicsSprite::setB2Body(b2Body *pBody) 2 { 3 #if CC_ENABLE_BOX2D_INTEGRATION 4 _pB2Body = pBody; 5 #else 6 CCASSERT(false, "Can't call box2d methods when Box2d is disabled"); 7 #endif 8 }
运行跑到了这里:CCASSERT(false, "Can't call box2d methods when Box2d is disabled");才发现,在libExtensions中也有CC_ENABLE_BOX2D_INTEGRATION这个启动Box2d的宏开关。我看了看CCPhysicsSprite.cpp这个文件,在文件的头部,有行注释:
1 #if (CC_ENABLE_CHIPMUNK_INTEGRATION && CC_ENABLE_BOX2D_INTEGRATION) 2 #error "Either Chipmunk or Box2d should be enabled, but not both at the same time" 3 #endif
发现libExtensions库,只能同时支持一个物理引擎,要么是Chipmunk要么就是Box2d,默认是支持Chipmunk的。
到此处,才真正找到根源,解决的办法就是给libExtensions工程添加CC_ENABLE_BOX2D_INTEGRATION标记,并且让其=1,并让CC_ENABLE_CHIPMUNK_INTEGRATION=0.
//本文作者:cmlanche 文章内容目前的写法仅仅作为一个笔记,自己参考,并不想特意解释让别人明白
// 2014-04-18
转载于:https://www.cnblogs.com/cmgrass/p/3672551.html
让Cocos2dx中的TestCPP中的Box2dTest运行起来相关推荐
- Cocos2d-x 脚本语言Lua中的面向对象
Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...
- ajax如何循环lis,关于js中循环遍历中顺序执行多个嵌套ajax的问题
就是业务上需要完成一个功能,这个功能需要依次调用四个接口,后面接口的参数都依赖于前一个接口的返回值. 类似这样: var objArr = "从其他逻辑获得"; for(var n ...
- C#中Winform程序中如何实现多维表头【不通过第三方报表程序】
问题:C#中Winform程序中如何实现多维表头. 在网上搜了很多方法,大多数方法对于我这种新手,看的都不是很懂.最后在新浪博客看到了一篇比较易懂的文章:[DataGridView二维表头与合并单元格 ...
- 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...
关于Python程序中与"缩进"有关的说法中,以下选项中正确的是() 答:缩进在程序中长度统一且强制使用 同文学或同音乐主题的民歌,<_______>是其中之一.此曲经 ...
- python中json dumps_python中json.loads,dumps,jsonify使用
search_info = {'id':132,'user_role':3} print type(search_info) #输出 #转为string用dumps print type(json.d ...
- VS2010中“工具选项中的VC++目录编辑功能已被否决”解决方法
http://blog.csdn.net/chaijunkun/article/details/6658923 这是VS2010的改变,不能够在"工具-选项"中看到"VC ...
- django-celery中配置celery中的日志
django-celery中配置celery中的日志 django配置文件中的logging只是针对django中的views.API起作用,对celery不起作用,也就是说celery不能使用dja ...
- word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...
用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...
- php数组重复值销毁,如何从PHP中删除数组中的重复值
如何从PHP中删除数组中的重复值 如何从PHP中删除数组中的重复值? 21个解决方案 204 votes 使用array_unique(). 例: $array = array(1, 2, 2, 3) ...
- oracle urlencode 中文,Python2和Python3中urllib库中urlencode的使用注意事项
前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...
最新文章
- 关于MonoDevelop自动缩进的设置
- android python 纠正图片,Python脚本替换Android资源(包名,图片,文件内容)
- es6 迭代器对象的 return(),throw()
- [转] 数据库加锁 sql加锁的
- 转载 MySql常用查询语句(23种)
- 起风了数字简谱用计算机,起风了钢琴简谱-数字双手-买辣椒也用券
- 利用python爬取飞猪信息_Python---20行代码爬取斗鱼平台房间数据(下)-阿里云开发者社区...
- 【altium designer】画原理图
- 复制微信号并打开微信_理解信号并不那么复杂
- 仅将人脑视为预测机器,人类文明会出什么问题
- 集合之扑克牌---洗牌+发牌+发牌后排序+看牌
- 电子签章过程中的原始数据处理
- android App中bug收集的工具类
- 算法实战应用案例精讲-【自动化办公】使用Python操作PDF文档全记录(python代码实战)
- encodeURI encodeURIComponent 的区别,和使用场景
- 语言学与计算机,计算机与乔姆斯基语言学_刘俐李
- UC3843 PWM控制芯片详解及其应用电路
- 假设检验之p值(probability value)
- 如何设计一个高性能的秒杀系统
- Android项目:手机安全卫士(3)—— 主界面布局
热门文章
- Spring 一二事(1)
- [golang 易犯错误] golang 局部变量初始化:=的陷阱
- android DVM
- Hyper-V上Linux的鼠标驱动
- 一晃眼这个blog已经丢弃两年。。。
- 依赖注入的两种常用方式(构造器和Setter)与注入内容(装配数据)——Spring IOC/DI(三)
- Android 不同布局类型measure、layout、draw耗时对比
- python异常类父类_python【第五篇】异常处理
- Eclipse创建并运行Java程序输出Hello World
- Luogu3825[NOI2017] 游戏