- 博客(60)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
转载 第十三章 限制 第十四章 参考
声明:此文章翻译自Box2D v2.2.0用户手册,仅供学习参考。Box2D使用了一些近似值来模拟刚体的物理效果。这就带来了一些限制。下面是当前的一些限制:叠加一些重物体到很轻的物体上面会不稳定。当质量比例超过10:1的时候稳定性会下降。被连接器连接的物体链,轻物体吊着重物体容易被拉伸。比如说,一个很重的球拉着一个很轻的球可能就会不稳定。当质量比超过10:1的时
2016-05-22 10:51:06 317
转载 Box2D C++ 教程-开发环境设置(iPhone)
声明:本文翻译自Box2D C++ tutorial-Setting up (iPhone),仅供学习参考。简介这篇文章针对在iOS上使用Box2D和OpenGL进行开发的环境设置问题。既然这跟环境设置话题中使用testbed框架不一样,那么我么也就让这个教程页单独分离出来,但是如果你现在的情况依然是我六个月前提到的情况,那么这篇文章依然对你有用:想用Box2D基于
2016-05-21 09:55:11 608
转载 Box2D C++ 教程-连接器-平移
声明:本文翻译自Box2D C++ tutorial-Joints-prismatic,仅供学习参考。平移连接器(Prismatic joints)平移连接器可能更多的俗称为滑动连接器。连接器上的两个物体相对于彼此来说保持固定的旋转,它们只能够沿着特定的轴线一起移动。平移连接器可以进行限定,保证其只能沿着某个轴在一定范围内进行移动。还可以设定此连接器的马达,连接的物体会以给定的
2016-05-21 09:54:19 666
转载 Box2D C++ 教程-连接器-旋转
声明:本文翻译自Box2D C++ tutorial-Joints-revolute,仅供学习参考。旋转连接器(Revolute joints)旋转连接器可以想象成枢纽,锚点,或者转轴。每个物体上都定义一个锚点,物体移动的时候锚点总是重合的,之间的相对转动也是没有限制的(译者注:详细可见Box2D手册第八章旋转连接器部分,此处有一张图,一目了然)。旋转连接器可以设置限制
2016-05-21 09:53:06 758
转载 Box2D C++ 教程-连接器-概述
声明:本文翻译自Box2D C++ tutorial-Joints-overview,仅供学习参考。连接器Box2D中有大量的’连接器(joints)’用来把两个物体连接到一起。这些连接器可以模拟物体之间的相互作用,以此形成铰链,活塞,绳索,车轮,滑轮,汽车,链子,等等吧。学习使用连接器可以高效的帮你创建更吸引人和有趣的场景。让我们快速浏览一些有效的连接器,然后回顾一下
2016-05-21 09:52:31 1098
转载 Box2D C++ 教程-幽灵顶点
声明:本文翻译自Box2D C++ tutorial-Ghost vertices,仅供学习参考。题外话:因为在Box2D的用户手册的第四章中,我把ghost vertices翻译成了幽灵顶点,所以这里还延续这个翻译吧,如果有人有更恰当的翻译,指出来我会改正,:)。好了,下面开始正文。(注意:本话题接下来要说的内容和其它教程并不太一样,因为其它教程是基于Box2D v2.1
2016-05-21 09:51:55 1398
转载 Box2D C++ 教程-跳跃问题
声明:本文翻译自Box2D C++ tutorial-The ‘can I jump’ question,仅供学习参考。在地上是我的特性吗?如果曾经遇到了关于Box2D的问题,多半可能有“我如何告诉我的游戏角色当前是站在地上的”。我想这个问题如此频繁的冒出来的首要原因,是因为类似回调方法可以得到接触信息有关-回调方法可以抛出与当前物体自身不同的相关信息,或许还因为可以获知当前接
2016-05-21 09:51:20 961
转载 Box2D C++ 教程-安全地移除物体
声明:本文翻译自Box2D C++ tutorial-Removing bodies safely,仅供学习参考。安全地移除物体除非你正在完成一个最基本地游戏,否则很有可能你会在游戏进行的某一时刻删除一些物体。比如说当玩家杀死一个敌人后,所发出的子弹需要被清除掉,还比如说两个物体发生碰撞其中一个完全毁坏,等等很多此类的例子。在代码中移除一个物体简单的令人发指-只要调用world
2016-05-21 09:50:36 765
转载 Box2D C++ 教程-查询 World
声明:本文翻译自Box2D C++ tutorial-World querying,仅供学习参考。查询World通常你可能想知道在给定的场景中都有哪些实体。例如有一个炸弹爆炸了,周围的所有实物都会受到不同程度的破坏,那么在RTS(译者注:Real-Time Strategy,即时战略)游戏当中,当玩家拖拉一个选框的时候,玩家可以合理的选中其中尚未完全破坏的单位。这种快速查询部分
2016-05-20 21:26:20 453
转载 Box2D C++ 教程-射线投射
声明:本教程翻译自:Box2D C++ tutorials - Ray casting,仅供学习参考。射线投射经常用来找出部分物理世界当中已经存在的物件。所谓射线就是一条直线,我们可以通过使用Box2D当中提供的方法来检测是否与某个定制器(fixture)有交点。我们也可以找出与定制器交点的法线。下面就是上面我提到的方法,如果射线与某个定制器发生碰撞则返回true。这里需要注意
2016-05-20 21:25:31 1939
转载 Box2D C++ 教程-传感器
声明:本教程翻译自:Box2D C++ tutorials-Sensors ,仅供学习参考。传感器(Sensors)在上一个话题中,我们看到,可以通过一些设置防止两个定制器发生碰撞。它们肆无忌惮的互相穿透,好像压根儿就没有看到对方,即便它们在穿透的过程中停止运动,也会保持着重叠的状态。也许这可能就是你想要的特性,但这么做有一个缺陷:既然互相之间没有碰撞,那么我们也就永远都不
2016-05-20 21:24:50 1127
转载 Box2D C++ 教程-碰撞过滤
声明:本教程翻译自:Box2D C++ tutorials-Collision filtering,仅供学习参考。碰撞过滤(Collision filtering)到目前为止所有场景都是我们自己创建的,场景中的每个定制器(fixture)之间可以互相发生碰撞。这是默认的物理环境,但是可以通过设置’碰撞过滤’(Collision filtering)来控制定制器之间的碰撞状态
2016-05-20 21:24:00 2604
转载 Box2D C++ 教程-碰撞回调
声明:本教程翻译自:Box2D C++ tutorials Collision callbacks,仅供学习参考。碰撞回调(Collision callbacks)当物理场景中的物体移动或者彼此之间发生碰撞的时候,Box2D会为我们处理所有必要的碰撞监测,对于这一点我们不必过于担心。但是就整个游戏来说,偶尔我们需要在物体发生碰撞的时候触发一些事件。例如当游戏玩家触碰到怪物的
2016-05-20 21:22:56 840
转载 Box2D C++ 教程-源代码
声明:本教程翻译自:Box 2D C++ turorials - Source code,仅供学习参考。教程源代码这里你可以下载到教程中所提到相关话题的例子源代码。zip文件中包含了标准的并带有一些额外添加测试的Box2D v2.1.2源码树,所以你应该可以使用cmake或者在Setup话题中提到的相关code::blocks方法进行编译。教程中例子的源代码(更新到
2016-05-20 21:21:26 530
转载 Box2D C++ 教程-碰撞剖析
声明:本教程翻译自:Box 2D C++ turorials - Anatomy of a collision,仅供学习参考。在Box2D中,经常会遇到物体之间的碰撞问题,当一个碰撞发生时,就是利用定制器(fixtures)用来做碰撞检测的。碰撞可以以很多方式进行,我们可以在碰撞过程中获取大量信息用在游戏逻辑中。比如说,你可能想知道这几条信息:-碰撞的开始和结束 -定制
2016-05-20 21:20:33 3669
转载 Box2D C++ 教程-用户数据
用户数据(User data)在上一个话题中,我们看到在游戏实体中存储物理对象的的用处。有时候情况相反也许也很有用-在游戏中,一个物理实体指针存储游戏实体。在Box2D中这叫做user data,这是一个能够让你存储有用数据的指针。下面这些类都有这个功能:-b2Body -b2Fixture -b2JointBox2D不会在意具体内容是什么,而且不会对内容有任何操作
2016-05-20 21:03:27 499
转载 Box2D C++ 教程-画自己的图像
声明:本教程翻译自:Box 2D C++ turorials - Drawing your own objects,仅供学习参考。画自己的图像从之前的话题中可以看出,很显然使用debug draw不能做出视觉上具有吸引力的游戏。通常我们都会使用我们自己的方法在场景中画图像,然后访问Box2d获取物体的物理信息以此知道在哪里画图像。在本次话题中,我们将会专门定义一个类用作渲染
2016-05-20 09:51:08 703
转载 Box2D C++ 教程-使用debug Draw
声明:本教程翻译自:Box 2D C++ turorials - Using debug draw,仅供学习参考。使用debug drawtestbed使用一个称为“debug draw”的特性来画你所见到的形状。不过很显然,如果你想让游戏能够更加吸引眼球,还是需要替换那些无聊的多边形的,但是当物理场景中产生问题时,debug draw会变的非常有用。有时候问题发生在游戏场
2016-05-20 09:50:30 769
转载 Box2D C++ 教程-跳跃
声明:本教程翻译自:Box 2D C++ turorials - Jumping,仅供学习参考。跳跃(Jumping)水平滚轴游戏中的角色可以进行跳跃,是吧?现在就让我们看看几种不同实现跳跃的方法。我们已经在之前力和冲量(force and impulses)的话题中进行过相关问题的讨论,但是现在就让我们考虑一下如何把这些方法整合到游戏中。我们可以从匀速运动(movin
2016-05-20 09:49:44 445
转载 Box2D C++ 教程-旋转到指定角度
声明:本教程翻译自:Box2D C++ tutorials-Rotating to a given angle,仅供学习参考。旋转指定角度这个话题和之前的那个话题类似,只不过把直线运动改成旋转运动。旋转一个物体既可以直接设置角度也可以通过设置扭矩/冲量方法来实现,同样需要注意的问题是,如果直接设置物体的角度,其实并不算是真正的模拟物理场景。为了做这个实验我们需要一个
2016-05-20 09:49:08 1084
转载 Box2D C++ 教程-匀速运动
声明:本教程翻译自:Box2D tutorials-Moving at constant speed,仅供学习参考。以匀速移动物体游戏中一种常见的需求是让物体做匀速运动。例如横屏游戏中的玩家角色,太空飞船或者汽车,等等。根据游戏的不同,有时候物体应该逐渐改变速度,其他情况又希望能够瞬间开始和停止运动。使用SetLinearVelocity方法精确的设置物体速度,这种方法看起
2016-05-20 09:48:31 644
转载 Box2D C++ 教程-自定义重力
声明:本教程翻译自:Box2D C++ tutorials-Custom gravity,仅供学习参考。为每一个物体指定不同的重力我们经常会遇到的一个问题是,在其他物体依然遵循重力规则的情况下,如何让指定的物体不受重力影响。其实这实现起来很简单,现在就用我们所了解的力矩试着实现它。我们还是以上一个话题的场景为基础,使用三个独立的物体。123
2016-05-20 09:47:31 652
转载 Box2D C++ 教程-力和冲量
声明:本教程翻译自:Box2D C++ tutorials-Forces and impulses,仅供学习参考。力和冲量(Forces and impulses)让物体移动,需要对其施加力或者冲量。可以通过时间的不断积累对物体施加力的作用来改变物体的运动,然而冲量作用于物体则会立刻改变物体的速度。举个例子,想象一下现在你的车坏了,你想推车,可以选择驱动另外一辆车缓慢开向这
2016-05-20 09:46:51 1977
转载 Box2D C++ 教程-设置世界
声明:本教程翻译自: Box2D C++ tutorials-World settings ,仅供学习参考。世界(Worlds)世界(Worlds)作为Box2D世界里主要的实体,在之前的讨论话题中已简单的介绍过。当你创建或者删除物体的时候,可以调用世界里的方法来完成这些功能,所以世界也管理着所有对象的空间分配。这也就意味着世界非常重要,那么就让我们来看看世界到底可以做些什
2016-05-20 09:46:18 715
转载 Box2D C++ 教程-定制器
声明:本教程翻译自: Box2D C++ tutorials- Fixtures ,仅供学习参考。定制器(Fixtures)定制器用来描述场景中对象的大小,形状,材质属性等。一个物体可以附加多个定制器,物体的质心会因为定制器的附加顺序所影响。当两个物体相撞时,会根据各自的定制器作出相应的反应。定制器的主要属性如下:-形状 - 多边形或圆弧 -恢复 - 定制器的弹
2016-05-20 09:45:30 418
转载 Box2D C++ 教程-物体
声明:本教程翻译自:Box2D C++ tutorials-Bodies,仅供学习参考。物体(Bodies)物体是物理场景中的基本对象,但是这里的物体并不是你看到的实际互相弹跳碰撞的实物。听起来很费解吗?挺住!马上做解释!你可以把物体想象成是一种看不见摸不着的实物的属性。这些不可见的属性是:-质量(mass)-实物到底有多重 -速度(velocity)-
2016-05-20 09:44:51 610
转载 Box2D C++ 教程-创建测试
声明:本教程翻译自:Box2D C++ tutorials-Making a test,仅供学习参考。创建属于你的测试让我们向testbed中添加一个测试,这里只是一个简单的例子,一开始不会实现很多功能,但是作为一个例子我们会看到所有需要编辑和修改的地方。首先需要一个Test类的子类来定义测试自身。在Testbed/Tests文件夹下面,应该可以找到一大堆在testbe
2016-05-20 09:44:18 454
转载 Box2D C++ 教程-Testbed结构
声明:本文翻译自Box2D tutorials-Testbed structure ,仅供学习参考。Testbed结构testbed框架可以让你高效的添加新的测试。当定义一个新的测试,只要写出针对于测试必要的代码即可。相对于所有测试来说的,相同功能的方法例如,创建、销毁、重设,以及控制面板上的选中框和按钮,都由testbed框架来处理,永远都不需要你亲自更改。每个测试的
2016-05-20 09:43:14 755
转载 Box2D C++ 教程-环境设置
声明:本文翻译自Box2D C++ tutorial-Setting up ,仅供学习参考。环境设置包括三种主流系统:-Windows -Linux -Mac由于最新的Box2D版本,源码中针对Windows和Mac平台中的主流IDE(VS2010和XCode4)已经进行了整合,所以这里就不进行翻译了,再者教程原文中的设置看起来已经过时了,有兴趣的读者可以自
2016-05-19 21:39:52 632
转载 Box2D C++ 教程-简介
声明:本文翻译自Box2D C++ tutorial-Instroduction 仅供学习参考。简介Box2D这个名字是世界上2D物理引擎中最好的命名,在如今大部分软件都习惯采用动物的名字命名的情况下,似乎Box2D这个名字看起来有点土,但是名字仅仅是个名字,就像玫瑰总是能够散发出香气一样,不管她叫什么玫瑰。轻量级、健壮、高效以及非常的小巧。并且在很多平台上都开辟了很多应用
2016-05-19 21:26:44 590
转载 BOX2D 自然的旋转到一个指定角度
在BOX2D 中如何控制body 自然的旋转到一个指定角度?这个问题在许多游戏中控制角度时都会遇到,但是在BOX2D中,你必须考虑到如果转动中与其他body碰撞等物理因素。能够想到的解决方案有三种:1 在update方法里不断更改body的角度,使他接近于要设定的角度。 b2vec2 clickedPoint;//设定点的向量float bodyAngle =
2016-05-19 14:36:45 1280
转载 BOX2D 自然的旋转到一个指定角度
在BOX2D 中如何控制body 自然的旋转到一个指定角度?这个问题在许多游戏中控制角度时都会遇到,但是在BOX2D中,你必须考虑到如果转动中与其他body碰撞等物理因素。能够想到的解决方案有三种:1 在update方法里不断更改body的角度,使他接近于要设定的角度。 b2vec2 clickedPoint;//设定点的向量float bodyAngle =
2016-05-19 14:36:02 417
转载 Cocos2d-x教程-Box2D 物理引擎
欢迎加入 Cocos2d-x 交流群: 193411763转载时请注明原文地址:http://blog.csdn.net/u012945598/article/details/17787243Cocos2d-x 3.x版本物理引擎的使用参考 http://blog.csdn.net/u012945598/article/details/38417333
2016-05-19 13:28:21 512
转载 第十二章 调试绘图
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第12章 调试绘图(Debug Drawing)实现 b2DebugDraw 可得到物理世界的细部图,这里是可用的实体:• 形状轮廓• 关节连通性•
2016-05-19 11:31:20 376
转载 第十一章 其它
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第11章 杂项(Loose Ends)11.1 隐式摧毁Box2D没有使用引用计数。你摧毁了body后,它就确实不存在了。访问指向已摧毁body的指针,会导致未定义的行为。 也就是说,你的程序可能会崩溃。以debug方式编译出的程序,Bo
2016-05-19 11:30:19 224
转载 第十章 世界类
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第10章 世界(World Class)关于b2World类包含物体和关节。它管理着模拟的方方面面,并允许异步查询(就像AABB查询和光线投射)。 你与Box2D的大部分交互都将通过 b2World 对象来完成。创建和摧毁world
2016-05-19 11:29:41 332
转载 第九章 接触
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第09章 接触(Contacts)9.1 关于接触(contact)是由 Box2D 创建的用于管理fixture间碰撞的对象。接触有不同的种类,它们都派生自 b2Contact,用于管理不同类型形状之间的接触。例如, 有管理多边形之间碰
2016-05-19 11:28:45 720
转载 第八章 连接器
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第08章 关节(Joints)8.1 关于关节用于把物体约束到世界,或约束到其它物体上。在游戏中, 典型例子有木偶, 跷跷板和滑轮。用不同的方式将关节结合起来使用, 可以创造出有趣的运动。有些关节提供了限制(limit), 使你可
2016-05-19 11:26:00 811
转载 第七章 物体
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第07章 物体(Bodies)7.1 关于物体具有位置和速度。你可以将力(forces), 扭矩(torques),冲量(impulses)应用到物体上。 物体可以是静态的(static), 运动但不受力的(kinematic), 和动态
2016-05-19 11:25:19 351
转载 第六章 定制器
内容很多摘自Aman JIANG(江超宇)翻译的Box2D v2.0.1 用户手册第06章 夹具(Fixtures)6.1 关于回想一下,形状并不知道物体的存在,可以独立使用。因此Box2D需要提供b2Fixture类,用于将形状附加到物体上。 fixture具有下列属性:• 关联的形状
2016-05-19 11:24:20 306
Intel® 64 and IA-32 Architectures Software Developer’s Manual(汇总)
2013-04-23
MASM汇编软件集合
2013-04-23
《Windows程序设第五版计》该如何读?
2015-04-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人