Box2D更重,Chipmunk更轻量级

Box2D的类是

  • b2World:运行在游戏里的物理世界,是所有有物理表现的物体的容器,负责遍历和更新。
  • b2BodyDef:刚体定义,表示刚体的物理特性和参数,比如是静态还是动态,加速度角速度等等,主要用于创建b2Body。
  • b2Body:刚体,在世界内创建的刚体。
  • b2Shape:表示刚体的形状的,b2Shape只是基类,它的子类目前包括ChainShape、CircleShape、EdgeShape、PolygonShape等分别实现了多边形、三角形、球等形状。主要的用处是通过b2Body的CreateFixture接口来为刚体b2Body创建外形,要注意的是目前Box2D是无法创建空心球体的,只能通过多边形来近似模拟空心圆。
  • b2FixureDef:定义形状的,表示刚体形状的具体物理特性,比如摩擦力、密度、弹性等等,主要是用于创建形状的。

Chipmunk的类是

  • space: 发生物理模拟的空间,可容纳body, shape,joint
  • body:刚体,可被赋予shape。刚体具有质量,转动惯量,位置,线性速度,加速度,角度,角速度,角加速度等属性。刚体之间可通过joint连接
  • shape:决定刚体的碰撞外形。一个刚体上可覆盖上多个shape,同属于一个刚体的shape不会互相发生碰撞。shape同样需要加到space中。有圆,线段,凸多边形这三种shape类型。
  • joint: 用于连接刚体。有4种类型:
    1. pin joint: 相当于一根棍子(质量忽略)加两个大头针(锚点),两个刚体如果用pin joint连接,他们之间的距离不会改变,他们各自可绕锚点转动(如果有力矩的话)
    2. slide joint: 相当于把pin joint的棍子换成了滑槽。这个滑槽有最大和最小长度。
    3. pivot joint: 即一个旋转轴。两个刚体都绕这个轴旋转
    4. groove joint:相当于可滑动的pivot joint。将刚体2的旋转轴挂到处于刚体1的一段滑槽上。

在Box2D的世界里,世界的大小是通过”米”来衡量的,从像素点到米的需要转换 Chipmunk中不需要将像素转换成米,而是直接使用像素大小来表示

碰撞比较复杂 Box2D的碰撞检测是通过b2ContactListenner来实现的,如果你想接受来自碰撞的回调,你需要创建一个继承自b2ContactListener的新类

Chipmunk的碰撞是通过函数cpSpaceAddCollisionHandler(space,defaultCollisionType,defaultCollisionType, &contactBegin, NULL, NULL, &contactEnd, NULL);来完成的

转载于:https://my.oschina.net/djy2130/blog/866355

Box2D和Chipmunk的一些对比相关推荐

  1. Cocos2d-x 3.0 开发(九)使用Physicals代替Box2D和chipmunk

    1.   概述 游戏中模拟真实的世界是个比较麻烦的事情,通常这种事情都是交给物理引擎来做.首屈一指的是Box2D了,它几乎能模拟所有的物理效果.而chipmunk则是个更轻量的引擎,能够满足简单的物理 ...

  2. Box2D和Chipmunk

    物理的表现力对游戏的影响越来越重要,几乎已经是现在游戏中不可获取的要素之一,如果进入游戏开发的物理世界中,你会发现这是一个深不可测的领域,没个十几年的功力怕是难说出个头道来的,不过再难总要去面对和挑战 ...

  3. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)

    初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...

  4. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比

    前言 iOS7 beta发布后,大部分开发者和用户的注意力都集中在了iOS 7的全新UI交互设计界面上.一直负责硬件工业设计的Jony Ive首次全面负责苹果的软件和硬件设计工作,自然要把他自己的设计 ...

  5. android box2d运行小例子,配置eclipse【转】

    本文是一篇在android上使用2D物理引擎的入门教程.  2D物理引擎能增强游戏世界中物体如多边形(箱子,三角形,多边形)的动作的真实感从而提高游戏质量.这个引擎通过用户设定的参数如重力,密度,摩擦 ...

  6. 【COCOS2DX-BOX2D游戏开发之一】Box2d概念

    1.cocos2d 自带了两套物理引擎:Box2D 和Chipmunk.  两套引擎都是为2D游戏设计的,可以和cocos2d 完美整合.  Box2D 是用 C++写的,而 Chipmunk 用的是 ...

  7. cocos2dx之Chipmunk

    Cocos2Dx中本来没有物理引擎的,Box2D.Chipmunk这两个物理添加入cocos2dx中,为了模拟出更好的真实游戏世界,好了,看代码例子吧: typedef enum {SPRITEBAT ...

  8. cocos2dx box2d 概念

    1.cocos2d 自带了两套物理引擎:Box2D 和Chipmunk.  两套引擎都是为2D游戏设计的,可以和cocos2d 完美整合.  Box2D 是用 C++写的,而 Chipmunk 用的是 ...

  9. cocos中的Box2d物理引擎

    原文地址:http://wwk.iteye.com/blog/1722124 一些Box2d的基本概念,一些cocos中使用box2d需要注意的地方 1. cocos2d 自带了两套物理引擎:Box2 ...

最新文章

  1. 斯坦福抢开“元宇宙”第一课,上起来还真不便宜
  2. 计数排序、桶排序和基数排序
  3. HttpURLConnection简单用法
  4. c#控件弹幕效果_C# Form 实现桌面弹幕
  5. linux shell sql赋值,Linux下shell执行SQL
  6. 三年硬件工程师薪水_谷歌员工基本薪资曝光:软件工程师最高 241 万,工程副总裁 325 万,产品经理、UX 171 万,硬件工程师 166 万...
  7. HiveQL:文件格式和压缩方法
  8. python-50: 验证码
  9. 算法学习之路|方格分割
  10. vector容器——容量和大小
  11. BT5新的征程!全民***计划!
  12. 国人魔改后的中文优化版资源管理器,终于解决我多年的难题
  13. 用二维数组进行学生的成绩排序和计算
  14. 爬山法求解八皇后问题的全部解法
  15. 金字塔型自动化的利弊
  16. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分解决办法
  17. 数据库系统概论-第一章绪论【概念模型、层次模型和三级模式(外模式、模式、内模式)】
  18. java基础之异常_繁星漫天_新浪博客
  19. 用Matlab把 .txt文件中的16进制数据转换成2进制数据
  20. .o/.obj 文件的组成格式

热门文章

  1. mfc设置半透明对话框
  2. 单链表、循环链表、双向循环链表总结
  3. [Cadance][Virtuoso][Calibra]使用技巧總結
  4. Python----关键字in , 计算序列的函数
  5. java中person作用_Java题目:建立一个人类(Person)和学生类(Student) 功能要求:
  6. (六) kityminder 协同编辑执行用例时,如果做到不相互干扰
  7. ElasticSeach全文检索
  8. 每天学习10句英语-第九天
  9. windows 开机不进入桌面自动进入自己的程序和恢复桌面显示
  10. iOS app跳转到设置权限页面