大佬教程收集整理的这篇文章主要介绍了cocos2d-x初探学习笔记(20)--物理引擎box2d(2),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
由于box2d的内容比较多,它也有自己的TESTBed例子,所以关于比较深入的box2d引擎内容,我准备单开一个专题去研究它的TESTBed例子,当然,是嵌入到我们的cocos2d中的TESTBed,因为box2d本身就是用C++编写的,所以区别不是很大。
首先看一下box2dtest这个例子,这个例子相对简单
就是可以点击屏幕,在屏幕中生成方块,然后方块之间有碰撞,就这么简单,但是带出了整个cocos2d-x的框架。
第一步当然是构建整个世界,正如上一节所说的,建立重力,通过重力构建生成世界,当然,这也是使用这个引擎new构建为数不多地方,因为有世界才有一切
第二步就是构建地面及墙壁,这里面的做法略有不同,因为要构建一个空心的物体,因此我们不能直接定义,而是分别定义长方体里的四个边。
另外一个需要注意的地方就是我们进行了长度的转换,由于box2d采取的现实世界的米作为计量长度的单位,这里要注意的是长度范围在0.1m到10m范围内的物体模拟的效果更好,所以我们要把我们的像素级的长度单位转换为米的单位就要除以PTM_RATIO(定义32像素为1米)。
需要说明的是,这里我对例子进行了修改,例子是以屏幕的中心为锚点,而我,是以原点为锚点的,我觉得这样更好理解。
之后使用批处理精灵类管理所有的盒子,先生成格子的定义,在通过定义生成物体
可以看到类型是动态刚体,另外值得注意的就是用userData这个参数保留了我们的对象,从而完成了对象和刚体的绑定
之后再绑定形状,先生成形状,在通过关联来绑定形状
关于物理引擎的深入研究,我想再开一个系列的文章来单独谈,因为这个的例子写的也很好,对不同类型游戏的开发都很有用
刚开始研究此引擎,如有错误之处,希望大家多多指正
下一篇打算写精灵类的深入研究
以上是大佬教程为你收集整理的cocos2d-x初探学习笔记(20)--物理引擎box2d(2)全部内容,希望文章能够帮你解决cocos2d-x初探学习笔记(20)--物理引擎box2d(2)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。