admin 管理员组文章数量: 893893
Box2d源码学习一之Box2d简介
本系列博客是由扭曲45原创,欢迎转载,转载时注明出处,
随着智能手机的大量普及,手机的性能也越来越好,伴随而来出现大量的手机游戏 ,其中不乏很多优秀的游戏,如《愤怒的小鸟》、《鳄鱼小玩皮》、《翼飞冲天》等等。同时它们也大量的模拟了现实生活中的相关东西,比如小鸟飞行、碰撞的模拟,流体的模拟,都用到了相关的物理知识,他们的开发团队是怎么做到的呢,我们不得而知,但我们可以通过box2d引擎来实现相应的效果。下面我们就来了解并学习下box2d。
一、学习资料
要学习一件事物,首先要知道它是干什么的,有什么作用,以及它的历史,可以通过它的官网,还可以从,以及它的中文版---阿蕉同学的博客【】和,当然你还可以从互联网上搜索相关的知识。
二、介绍
box2d是一个2d刚体仿真物理引擎,也是目前使用最为广泛的,具有很强的移植性,同时它简洁、跨平台、开源、免费,甚至在c++,java,c#,javascript等很多语言上都有实现。我们主要说的是用c++实现的版本。
box2d可以模拟现实世界物体的物理属性,给用户一种真实感,存在感。该引擎是有英国人Erincatto编写的,并作为每天工作的一部分去维护和完善它。现在经常用于游戏框架中的物理引擎部分,像iphone上有名的开源框架cocos2d就是用的此物理引擎,以及最近很火的跨平台引擎cocos2d-x也是用的它作为物理引擎。
三、源码结构
Box2D由三个模块组成:公用(Common),碰撞(Collision)以及动力学(Dynamics)。公用模块包括内存分配,数学库,设置。碰撞模块定义了形状,broad-phase算法,碰撞的功能/查询。最后动力学模块提供了模拟物理世界,物体,定制器(fixtures),以及连接器。下面是三者的关系图。
四、其它
用过cocos2d、或者cocos2d-x的coder应该清楚,其上述两个引擎还提供了另一个物理引擎Chipmunk,下面我们就来比较一下这两者之间的差异:
1、box2d是用c++写的,而Chipmunk用的是c
2、box2d变量和方法使用全称命名,而Chipmunk很多地方使用一个字母的简写
3、box2d使用类【class】,具有很强的封装物体性,而Chipmunk使用结构体【struct】,暴露了过多的细节给外部
4、box2d有针对快速移动直接穿透而不进行碰撞测试的解决方法。而Chipmunk针对object-c有个叫SpaceManager接口,可以很容易的添加精灵到刚体上。
好了,不都说了,相信大家对box2d有了一定了解了。下一篇开始我们正式学习源码。
本文标签: Box2d源码学习一之Box2d简介
版权声明:本文标题:Box2d源码学习一之Box2d简介 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688192067h190233.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论