Construct2/3

创建于:2017-02-24

创建人: iconboy

103 信息 377 成员
Construct2/3 引擎开发专题

C2物理行为概述- Physics behavior

慕雪白羊 2017-07-07

Physics behavior/物理行为


翻译BY白羊  翻译来源 官方文档:https://www.scirra.com/manual/98/physics 

物理行为(Physics behavior)模拟真实物体的物理。它是基于Box2D的。关于物理行为的例子,在启动对话框(Start dialog)搜索Physics。

物理行为比较复杂。建议学习以下教程,了解如何使用物理行为和一些重要的知识点,然后才能开始使用它:

Physics in Construct 2: The basics
Physics in Construct 2: Forces, impulses, torque and joints
本手册将不再重复这些教程中的信息。相反,它将简单地描述物理行为的每一个特性。教程描述了物理引擎是如何工作的,不同类型的关节是什么,脉冲(impulses)和力(forces)之间的区别,等等,以免你忘了它们。

备注:以上两篇教程也已经翻译点击查看


Using Physics in Construct 2/在C2中使用物理

物理和C2本身的行为这是两个世界分开运行的。物理行为将物理模拟结果发送到C2的布局中。而C2也试图保持物理行为所在的世界和C2所在的“世界”是同步的。如果其中一个变化,但另一个没有变化,所造成的结果是无法预料的。例如,设置一个对象的位置或角度将导致C2将物理模拟中对应的对象传送到新的位置上,而该位置并不总是正确地避免冲突。同样地,在物理上使用其他C2行为也是如此。

因此,强烈建议通过物理行为(通过设置力、脉冲、力矩等/ forces, impulses, torques etc)来控制物理对象,而不是试图通过设置位置、设置角度等操作对象。

另一个后果是物理不会与 对象的固体(solid)或jumpthru行为发生关系。在使用物理时这些行为是完全多余的,没有效果。如果你希望接近的效果,可以使用固定(Immovable property)这个物理特性。


 Physics properties/物理特性

Immovable/不移动
如果是,模拟具有无限无穷大质量的物体。它的密度被忽略,所以它永远不会移动。

Collision mask/碰撞遮罩\形状
碰撞遮罩使用物体的图像编辑中(Image/Animations editor)的碰撞多边形。如果它没有碰撞多边形,它将使用对象的包围盒。

Bounding box  包围盒忽略对象的碰撞多边形,在物理碰撞中为矩形。

Circle 圆忽略物体的碰撞多边形,在物理碰撞中物体被当作圆形处理。这允许对象顺利滚动(例如桶)。这是特别有用的,因为物体的碰撞多边形是由直线构成的,所以不能用这种方式创建光滑的圆。

Prevent rotation/防止旋转
锁定物体的角度,这样物理碰撞不会引起物体旋转。

Density/密度
物理对象的密度。只有在不动(Immovable)的情况下才被使用,物体的质量是以它的密度乘以碰撞遮罩的面积来计算的。所用密度值的精确度并不重要,也没有特定的单位——密度只是相对而言的(即密度为6的物体密度为 密度为3的物体的两倍)。

Friction/摩擦系数
物理物体的摩擦系数从0(无摩擦)到1(最大摩擦)。摩擦力越大的物体越不容易被移动。

Elasticity/弹性
弹性(也被称为restitution或bounciness)的物理对象,从0(无弹性的,比如岩石)到1(最大的弹性,比如一个橡皮球)。弹性会影响其他物体撞击到该物体后的反弹程度。

Linear damping/线性阻尼
物体移动的速度随着时间的推移而降低,从0(没有减速)到1(最大减速)。

Angular damping/角度阻尼
当旋转时,物体的速度减慢,从0(没有减速)到1(最大减速)。

Bullet/子弹
针对快速移动的物体强化检测碰撞的能力。这会影响性能,所以除非对象移动得如此之快,标准碰撞检测不太可靠,你才需要设置这个特性。

Initial state/初始状态
物理模拟是否已启用或禁用。如果禁用,则不处理对象的物理,而其他物理对象可以像空气一样通过对象。


Physics conditions/物理条件

Compare angular velocity/比较角速度
比较物体的当前物理行为的角速度(度/秒)。正值表示顺时针旋转,负值表示逆时针旋转。

Compare mass/比较质量
比较物理体的质量。这是由物体的碰撞多边形面积乘以密度决定的。

Compare velocity/比较速度
比较物理体的当前velocity(速度),以像素每秒为单位。速度可以在一个单独的轴上进行比较,例如使用x轴来比较水平运动,或者也可以使用整体速度来比较。

Is enabled /是否启用
如果当前物理行为启用,则为true。当被禁用的物理体被完全从物理模拟中删除时,其他物理对象将通过对象。

Is sleeping/是否进入静止状态
如果该对象处于静止状态而不移动或被干扰了一段时间,那么物理引擎就可以停止处理它。注意对象即使在它们被停止时,仍然可以不知不觉地移动,它们并不算是进入了睡眠状态。



Physics actions: Forces/物理操作:力

Apply force/施加力
Apply force at angle/以角度施加力
Apply force towards position/以坐标施加力

在物体上施加一个力,无论是在某个角度,朝向一个位置,或者用定制的x轴和Y轴力。施加一个力使物体沿着力的方向加速。力可以从图像点或物体的原点应用。

补充: ApplyForce指的是对物体应用一个力,物理学中F=ma,这里的ApplyForce就是我们的F,物体的质量mass固定,因此物体加速度也固定,速度抓紧改变


Apply impulse/施加 脉冲
Apply impulse at angle / 以角度施加脉冲
Apply impulse towards position /以 坐标 施加脉冲

向物体施加一个冲量,无论是在某个角度,朝向某个位置,还是用指定的X轴和Y轴方向来施加脉冲。可以模拟被脉冲所击中的物体,例如被蝙蝠击中。脉冲可以应用于图像点或物体的原点。

补充: ApplyImpulse是对物体施加一个冲量,经典物理学中动量守恒:http://img.my.csdn.net/uploads/201212/23/1356245863_5181.png,F*t即为我们的冲量,m一定,则速度改变,这里v是在原速度的基础上进行改变的

Set velocity/设置速度
直接设置对象的当前速度,为x和y轴方向提供(像素每秒)的速度。

补充:这是直接用来改变物体的速度,中间没有什么加速度的概念,直接定义新速度。新速度和原速度没有关系,这就是和ApplyImpulse的区分。



Physics actions: Global settings/物理操作:全局设置

这些行为一般影响物理行为,而不仅仅是它所设置的行为。

Enable/disable collisions/启用/禁用冲突
默认情况下,所有物理对象相互冲突。您可以禁用对象与另一物理对象之间的冲突,从而使它们相互传递。这将影响两种对象类型的所有实例。注意:当对象重叠时启用冲突可能会导致物理模拟的不稳定。

Set stepping iterations/设定步进迭代
设置物理引擎中使用的速度迭代和位置迭代的数量级(number of velocity iterations and position iterations)。默认值分别为8和3。较低的值运会行得更快,但精度更低,更高的值会降低性能,但提供更真实的模拟。

Set stepping mode/设定stepping模式
选择物理时间步使用DT(delta time, for Framerate independent)或固定值。默认情况下,它使用一个固定的时间步长(time step)来消除DT带来的随机性或不稳定性,确保每次模拟结果都相同。独立设置的帧率会根据帧率来调整时间步长,可能会引起相同的模拟运行时,得到两次不同的结果。即使在这种模式,行为最大时间步长应该为1/30(约等于30微秒,FPS),这可以防止最大时间步长造成的不稳定结果。更多信息请参考 Delta-time and framerate independence.

Set world gravity/设置世界重力
设置重力,会影响所有物理物体。默认情况下,这是向下的力值为10。



Physics actions: Joints/物理操作:关节


Create distance joint/创建关节
在一个给定的距离上固定两个物理物体,就像用一根杆子连接起来一样。可以指定一个图像点来连接对象的特定部分。请注意,0的图像点是指对象的重心——如果您打算连接到对象的原点,请使用- 1。

Create revolute joint/创建旋转接头
Create limited revolute joint/创建有限转动关节

把两个物理物体连接在一起,这样它们就可以像大头针一样自由转动。有限的旋转接头只允许通过一定的角度范围内旋转,像钟摆一样。你还可以指定一个图像点来连接对象的特定部分。请注意,0的图像点指定对象的重心——如果您打算连接到对象原点,请使用- 1。

Remove all joints/删除所有节点
从物体上移除所有关节。该对象通过关节连接到的任何物体也受到影响。注意,某些关节自动禁用对象之间的碰撞,所以在删除关节后,您可能希望手动禁用碰撞。

重叠的对象将直接被“传送”(teleport)分开(因为物理引擎将试图阻止它们重叠)。

Physics actions: Object settings/物理操作:对象设置

这些设置相应的属性。有关更多信息,请参见物理属性。



Physics actions: Torque/ 物理动作:扭矩

Apply torque/施加扭矩力
Apply torque towards angle/向角度施加扭矩力
Apply torque towards position/向坐标位置施加扭矩力

向物体直接或朝向角度或位置施加一个 力矩( 就是旋转加速度)。

Set angular velocity
以度/秒单位 直接设置角速度(旋转速率)。



Physics expressions/物理表达式


AngularVelocity/角速度
物理物体的当前角速度(旋转速度),以秒为单位。

CenterOfMassX
CenterOfMassY

由物理引擎计算的物理对象的质量中心的位置。这取决于物体的密度,所以这不一定在对象的中间。

Mass/质量
由物理引擎计算的物理对象的质量。这是物体的密度乘以它的面积。

VelocityX
VelocityY

物理对象的当前速度,以每秒像素为单位。

AngularDamping/阻尼角
Density/密度
Elasticity/弹性
Friction/摩擦
LinearDamping/线性阻尼

这些返回相应的属性。有关更多信息,请参见物理属性。


近期喜欢的会员

 
v2sam 2018-04-10

很详细,点赞!

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册