box2d

2024/4/21 19:32:10

Box2D v2.3.0 用户指南(第八章)

第八章 关节(joint) 8.1简介 关节用来将物体约束到世界(world),或者约束到其他物体上。在游戏中比较典型的例子有木偶,跷跷板和滑轮等等。可以由很多种不同的方式构成关节来生成…

Box2D v2.3.0 用户指南(第十三章)

第十三章限制(limitions) Box2D使用很多近似来高效地模拟刚体的物理效果,这样做导致了一些限制。 下面列出了当前的一些限制: 1. 在非常轻的物体上面堆叠重物会不稳定,当质量比达到10&am…

Box2D v2.3.0 用户指南(第九章)

第九章 接触(contact) 9.1简介 接触是Box2D创建的用来管理装置间的碰撞的物体。如果装置具有子物体(child),例如链形状(chainshape),那么每一个相关的子物…

Box2D v2.3.0 用户指南(第十二章)

第十二章调试绘图(debug drawing) 你可以实现b2DebugDraw类来获取物理世界的细节绘图。下面是一些可用的实体: 形状外轮廓(shape outlines) 关节连接线(joint connectivity&…

Box2D中切割刚体效果的实现一览(一)

这个例子中我们来实现Box2D中切割刚体的效果,先看下效果。 切割前: 切割后: 首先我们来制作用鼠标绘制切割线的效果: 我们利用cocos2d中的绘图函数来绘制切割线。 使用cocos2diOS with Box2d模板创建Bo…

Box2D v2.3.0 用户指南(第十章)

第十章 世界类(world class) 简介 b2World类包含物体(body)和关节(joint),它负责模拟工作的各个方面并且支持异步的查询(例如AABB查询和射线投射等等&…

Box2D v2.3.0 用户指南(第一章)

原著:2007-2013 Erin Catto 翻译:远行的风 关注我的博客:http://blog.csdn.net/qwertyupoiuytr 网上已经有很多版本的Box2D用户手册了,这里我们翻译的是最新的2.3.0这个版本的手册,也是为了…

Box2D中切割刚体效果的实现一览(二)

我们继续来实现切割效果。 我们现在有了切割线和多边形,可以利用Box2d的射线投射(RayCast)来检测切割线和多边形的交点(入射点)。在Box2d中通过定义b2RayCastCallback的子类来获取射线投射的…

教你使用Box2d制作用蜡笔手绘物体的效果(一)

首先推荐一款好玩儿的物理益智游戏“CrayonPhysics”,中文名叫“蜡笔物理学”(当然不是做广告哈哈),游戏中我们通过手工绘制各种各样的“物体”来让一个红色的小球吃掉星星。整个游戏都是蜡笔画的风格&am…

Box2D v2.3.0 用户指南(第五章)

第五章动态模块(dynamics module) 5.1概况 动态模块是Box2D中最复杂的部分,并且也是和你打交道最多的模块。动态模块以公共模块(common)和碰撞模块(collision)为基础,因此你现在其…

Box2D中切割刚体效果的实现一览(完)

本篇教程中我们将完成刚体切割效果的制作。 我们需要实现一个切割函数用来切割多边形,下面列出的是切割函数的执行步骤: 循环遍历results和endResults中的切点,找到results和endResults中对应于同一个物体的两个…

Box2d中使用开源的PRKit库来制作任意形状的多边形刚体的纹理

Box2d中刚体的纹理可以有很多种实现方式(参考Box2d中刚体的纹理的几种实现方式),但是这几种实现方式都是在我们已知刚体形状并且保证刚体形状不变的情况下,通过提前将刚体的纹理绘制好并“附加”到刚体上…

Box2D v2.3.0 用户指南(第七章)

第七章装置(fixture) 7.1简介 回想一下,我们曾经说过形状并不知道它依附于的物体的存在,它们能够在物理模拟中独立使用。因此Box2D提供了b2Fixture类来讲形状附加到物体上。一个物体可以没有装置&#…

使用Box2d实现物体在液体中的漂浮效果(一)

今天我们来学习使用Box2d物理引擎制作物体在液体中的漂浮效果,没有新的技术,只是综合运用了以前博文中介绍过的技术。 注:如果使用Box2d flash的版本,可以直接使用buoyancycontroller来实现本文制作的效…

手把手教你制作一款Box2D小游戏(三)

接着我们先来重写ContactListener: 类声明: #import "Box2D.h" class ContactListener : public b2ContactListener { public: voidBeginContact(b2Contact* contact); voidPreSolve(b2Contact* contact, const b2Man…

Box2D v2.3.0 用户指南(第二章)

第二章 HelloBox2D 在Box2D中包含一个HelloWorld项目。程序创建了一个大的地面盒子(ground box)和一个小的动态盒子。工程代码中没有包含任何图形,你仅能在文字输出控制台中看到随时间更新的盒子位置。 从如何搭建…

使用Box2d实现物体在液体中的漂浮效果(二)

我们继续来制作物体在液体中的漂浮效果。 我们来考虑物体和液体的三种位置关系: 1. 物体完全离开液体 2. 物体一部分浸入液体 3. 物体完全浸入液体。 针对这三种位置关系,我们有下面三种结论: 1. …

Box2d中使用b2Separate开源代码创建凹多边形及其算法分析

我们知道,在Box2d中默认只能创建凸多边形,如果我们定义的顶点不小心形成了一个凹多边形,那么凹面部分的法线会存在问题,并且在物理模拟的时候会有问题(比如检测不到碰撞等等)。 要…

使用b2MouseJoint实现鼠标拖拽刚体的效果

要在Box2d中实现鼠标拖拽效果(当然在移动设备上就不是鼠标拖拽而是手指拖拽了),可以使用Box2d中定义的b2MouseJoint来制作。大体思路是,首先在ccTouchBegan事件中获取鼠标(以下不再区分鼠标或…

Box2D v2.3.0 用户指南(第十一章)

第十一章零碎资料(loose ends) 11.1用户数据(user data) b2Fixture,b2Body,以及b2Joint类允许你通过一个通用指针(void pointer)来附加一个用户数据&…

搭建qml box2d开发环境

box2d是开源的优秀物理引擎 box2d官网 https://box2d.org/ qml box2d插件工程 https://gitee.com/gao_yao_yao/qml-box2d 1. qml box2d插件工程 下载,解压qml-box2d-master.zip,用qt打开box2d.pro,编译Debug|Release拷贝Box2D.dll|Box2Dd.…

带你一起分析cut the rope(切绳子游戏)中绳子的制作方法

因为是要模拟物理效果,所以创建工程的时候使用cocos2d ios with Box2D模板。接着,准备一个用来作为绳子片段的图片,例如: rope.png:(4px2px的一个橙色小方块,如果你想…

手把手教你使用PhysicsEditor来辅助制作Box2D刚体

本篇教程需要读者对Box2D有了一些基本了解,如果过程中有什么概念不清楚,请参考Box2Dv2.3.0 用户指南中的相关章节进行学习。 我们知道,在利用Box2D引擎开发游戏的时候,对于规则的物体(刚体&a…

Box2D v2.3.0 用户指南(第四章)

第四章 碰撞模块(Collision Module) 4.1简介 碰撞模块包含形状(shape)以及操作它们的函数。此外,碰撞模块还包括dynamictree和broad-phase来加快大型系统的碰撞处理速度。 碰撞模块被设计为…

Box2D v2.3.0 用户指南(第六章)

第六章物体(bodies) 6.1简介 物体具有位置(position)和速度(velocity),你可以对物体施力(force),施加扭矩(torque&…

Box2d弹性物体的制作

这次我们来使用Box2d框架制作具有一定弹性的物体。这里我们说的弹性物体,不是指物体碰撞到其他物体后反弹的这种特性,而是指物体的外形在受到外力作用的时候会发生形变,比如我们小时候玩儿的弹力球。那么这里就有一个…

教你使用Box2d制作用蜡笔手绘物体的效果(二)

我们继续来制作蜡笔手绘物体的效果。上一篇中我们完成了刚体绘制,这一部分我们来完成蜡笔纹理。 先来看一下最终的效果: (如果觉得蜡笔的纹理不够好的话,可以精加工一个自己的蜡笔纹理) 下面…

Box2d中刚体的纹理的几种实现方式

Box2d中创建完刚体并将装置(fixture)附加到刚体上以后,还需要对刚体应用纹理才能够让刚体看起来像一个真正的物体,而不是一个个多边形或者圆形线框。因此,总结了下面几种为刚体添加纹理的思路…

手把手教你制作一款Box2D小游戏(一)

这次我们利用Box2D物理引擎来制作一款类似于下楼梯的小游戏,关于Box2D物理引擎的介绍,可以参考我博客中的Box2D v2.3.0 用户指南进行学习。 我们先来看一下最终效果: 游戏的组成元素有: 滚动背景(左右两个宽度为15&a…

手把手教你制作一款Box2D小游戏(二)

我们继续来制作这款Box2D小游戏。 前一篇中我们介绍了StepBlock类的制作,本篇中我们首先来定义好游戏的场景(CCScene)和层(CCLayer)。 我们定义一个GameLayer类,继承自CCLayer&a…

Box2D v2.3.0 用户指南(第三章)

第三章 公共模块(Common) 3.1简介 公共模块包含设置(settings),内存管理(memorymanagement),矢量计算(vector math)。 3.2设置 头…