物理引擎
楚游香
这个作者很懒,什么都没留下…
展开
-
CocosCreator物理引擎Box2D的Demo示例physics-example介绍
CocosCreator的内置物理引擎是Box2D,CocosCreator官方文档中也推荐了一个物理引擎Demo示例包(physics-example,下载链接:https://github.com/2youyou2/physics-example),physics-example包含很多个小示例,分为三个部分,分别是demo、example、example/joint。 最近有这方面功能需求...原创 2018-03-16 20:35:32 · 7375 阅读 · 3 评论 -
CocosCreator物理引擎Demo源码分析(3)-stick-arrow
stick-arrow示例展示了如何动态发射刚体飞往目标点。技术点1、触摸屏幕发射刚体,计算起点和目标点的夹角,设置刚体的线性速度。 2、在Update中不断施加一个作用力到刚体尾部,使它能一直往目标点飞去。 3、在碰撞上后,动态计算并设置WeldJoint的属性,使刚体和碰撞体按一定角度连接起来,不致于自然掉落。源码分析arrow.jsarrow.js代码功能...原创 2018-04-20 21:26:00 · 1611 阅读 · 0 评论 -
CocosCreator物理引擎Demo源码分析(1)-infinite-world
infinite-world示例展示了小球顺着山坡凹凸做左右滚动的效果。技术点1、山坡由数量不等动态生成的的竖条状方块组成。 2、每个方块动态添加RigidBody组件和PolygonCollider组件,使小球和山坡产生物理碰撞效果。 3、摄像机根据山坡的凹凸高度做动态缩放。 4、通过键盘或触摸来控制小球的左右滚动。源码分析camera-control.js该源文件功能...原创 2018-04-06 01:52:46 · 3778 阅读 · 2 评论 -
CocosCreator物理引擎Demo源码分析(2)-tiled
tiled示例展示了如何控制人物在地图上左右和向上跳跃。技术点1、地图由若干个刚体组成,摄像机跟随人物高度位置做缩放。 2、通过施加冲量到刚体,快速改变刚体的线性速度。 3、通过改变刚体的线性速度来控制刚体左右运动。源码分析hero-control.js该源文件功能是通过键盘的方向键来控制人物的左右和向上跳跃。核心函数是设置 linearVelocity 值。...原创 2018-04-08 23:22:49 · 2319 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第13章)-限制
Chapter 13 限制Box2D使用了一些数值近似来让模拟更高效。这就带来一些限制。 这是当前的限制: 1. 将重的物体放到相对很轻的物体上面,会不稳定。当质量比到10:1时,稳定性就会降低。 2. 用关节将body链接起来,如果是较轻的物体吊着较重的物体,body链接有可能被拉伸。比如,一条很轻的锁链吊着个很重的球,就可能不稳定。当质量比超过10:1时,稳定性就会降低。 3....转载 2018-03-20 12:53:35 · 197 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第12章)-调试绘图
Chapter 12 调试绘图实现 b2DebugDraw 可得到物理世界的细部图,这里是可用的实体: • 形状轮廓 • 关节连通性 • broad-phase axis-aligned bounding boxes (AABBs) • 质心 这是绘制这些物理实体的首选方法,比直接访问数据要好。因为很多的必要信息只能在内部访问,并时有变更。 testbed使用d...转载 2018-03-20 12:52:45 · 204 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第11章)-杂项
Chapter 11 杂项11.1 用户数据b2Fixture, b2Body 和 b2Joint 类都允许你通过一个 void 指针来附加用户数据。当你测试Box2D数据结构,并使其跟自己游戏引擎中的对象结合起来时,这样做是比较方便的。 举个典型的例子,角色上附有物体,并在物体中附加角色的指针,这就构成了一个循环引用。如果你有角色(actor),你就能得到物体。如果你有物体,你也能...转载 2018-03-19 20:51:43 · 393 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第10章)-世界类
Chapter 10 世界类关于b2World类包含物体和关节。它管理着模拟的方方面面,并允许异步查询(例如AABB查询和光线投射)。 你与Box2D的大部分交互都将通过 b2World 对象来完成。创建和摧毁世界创建world十分的简单。你只需提供一个重力矢量,和一个布尔量去指定物体是否可以休眠。 通常你会使用new和delete去创建和摧毁一个world。b2W...转载 2018-03-19 20:50:33 · 233 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第9章)-接触
Chapter 9 接触(contact)9.1 关于接触(contact)是由 Box2D 创建的用于管理fixture间碰撞的对象。如果 fixture 有诸如链接形状之类的子 fixture ,那么每个相应的子 fixture 都存在接触。接触有不同的种类,它们都派生自 b2Contact,用于管理不同类型 fixture 之间的接触。例如,有管理多边形之间碰撞的类,有管理圆形之...转载 2018-03-19 20:43:54 · 445 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第8章)-关节
Chapter 8 关节8.1 关于关节用于把物体约束到世界,或约束到其它物体上。在游戏中,典型例子有木偶,跷跷板和滑轮。用不同的方式将关节结合起来使用,可以创造出有趣的运动。 有些关节提供了限制(limit),使你可以控制运动的范围。有些关节还提供了马达(motor),它可以以指定的速度驱动关节一直运动,直到你指定了更大的力或扭矩来抵消这种运动。 关节马达有许多不同的用途。你可以...转载 2018-03-19 20:40:28 · 351 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第7章)-夹具
Chapter 7 夹具7.1 关于回想一下,形状不知道物体的存在,并可独立于物理模拟而被使用。因此Box2D提供b2Fixture类,用于将形状附加到物体上。一个物体可以有零个或多个fixture。拥有多个fixture的物体有时被叫做组合物体。 fixture具有下列属性: • 关联的形状 • broad-phase代理 • 密度(density)、摩擦(fr...转载 2018-03-19 20:37:01 · 300 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第6章)-物体
Chapter 6 物体6.1 关于物体具有位置和速度。你可以将力(forces)、扭矩(torques)、冲量(impulses)应用到物体上。 物体可以是静态的(static)、运动但不受力的(kinematic)或动态的(dynamic)。这是物体的类型定义:b2_staticBodystatic物体在模拟时不会运动,就好像它具有无穷大的质量。在Box2D内部,会将s...转载 2018-03-19 20:34:37 · 357 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第5章)-力学模块
Chapter 5 力学模块5.1 概述力学模块是Box2D中最复杂的部分,也是与你交互最多的部分。力学模块构建在通用和碰撞模块的基础上,到现在你对这两个模块也应该有所了解了。 力学模块包括下面这些类: • 夹具 • 刚体 • 接触 • 关节 • 世界 • 监听者 这些类相互依赖,很难在不提及其它类的情况下单独描述一个类。在接下来的章节中,你会看...转载 2018-03-19 20:31:21 · 223 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第4章)-碰撞模块
Chapter 4 碰撞模块4.1 关于碰撞模块包含了形状和操作形状的函数。该模块还包含了动态树(dynamic tree)和broad-phase,用于加快大型系统的碰撞处理速度。 碰撞模块被设计为可用于动态系统之外的地方。例如,你可以将动态树用于你的游戏中,除了物理之外的目的。 然而,Box2D 的主要目标是提供一个刚体物理引擎。因此对于一些应用来说,使用碰撞模块会感觉受到限制...转载 2018-03-19 20:29:03 · 1062 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第3章)-通用模块
Chapter 3 通用模块3.1 关于通用模块包含了配置(Settings),内存管理(memory management)和矢量数学(vector math)。3.2 配置头文件 b2Settings.h 包含: • 类型,比如int32和float32 • 常数 • 分配器包装(Allocation wrappers) • 版本号类型...转载 2018-03-19 20:25:20 · 267 阅读 · 0 评论 -
(转载)BOX2D V2.3.0 用户手册中文版(第2章)-Hello Box2D
(转载)BOX2D V2.3.0 用户手册中文版(第2章)-Hello Box2DChapter 2 Hello Box2DBox2D的发布包中有个Hello World程序。程序创建了一个大大的地面盒(ground box)和一个小小的动态盒(dynamic box)。代码没有涉及到图形界面,你只能在控制台中看到随时间变化的盒子位置的文字输出。 这是个很好的例子, 展示了怎么学习和...转载 2018-03-19 20:20:07 · 1241 阅读 · 0 评论 -
(转载)Box2D v2.3.0 用户手册中文版(第1章)-导言
Chapter 1 导言1.1 关于Box2D 是一个用于游戏的 2D 刚体仿真库。程序员可以在他们的游戏里使用它,它可以使物体的运动更加真实,并让游戏世界看起来更具交互性。从游戏引擎的视角来看,物理引擎就是一个程序性动画 (proceduralanimation)的系统。 (译注: 做动画常有两种方法, 一种是预先准备好动画所需的数据,比如图片,再一帧一帧地播放。另一种是以一...转载 2018-03-18 00:15:39 · 482 阅读 · 0 评论 -
CocosCreator物理引擎开发笔记
记录1、在CocosCreator中,每个Node只能添加一个RigidBody,但Collider可以添加多个。 2、在物理引擎的调试绘制开关打开情况下,刚体设置为不同的静态或动态时,CocosCreator会自动绘制不同的颜色出来。 3、组件(Joint)的anchor和ConnectedAnchor改变后,不影响实际的碰撞效果,只是两个物体间的连接角度和旋转范围会随着改变。Ancho...原创 2018-04-20 21:47:49 · 3466 阅读 · 0 评论