Construct2游戏中经常需要给某些对象添加物理属性(Physics Behavior),下面详细描述了这个物理Physics属性。
(物理运动只能发生在都带有物理属性的对象之间,如果有的对象不带有物理属性,那么就不会发生任何物理运动。)
参数:
- Immovable(禁止移动): 通常用于游戏场景的设置。比如为了防止带有重力属性的游戏地面掉落出游戏画面,或是受到撞击,这些场景就会旋转或是移动。通过设置Immovable参数来防止移动和旋转等运动,但是又可以参与游戏中的物理碰撞。
- Collision mask(碰撞检测面):这个参数设置对象碰撞检测的形状,它有三个选择项:
- Collision Polygon(多边形碰撞检测面): 默认设置.选择了这个设置,就可以在图片编辑器里编辑对象的碰撞多边形。需要注意的是,碰撞多边形的边越多,就会导致游戏越慢。
- Bounding Box(边界框检测面): 选择这个设置,会忽略图片编辑器里的碰撞多边形设置,而以对象图片的边界框(通常为矩形)为检测面。
- Circle(圆圈检测面):选择这个设置,会忽略图片编辑器里的碰撞多边形设置,而以一个围绕对象的圆为检测面。
- Prevent rotation(阻止旋转):设置这个属性的对象不再具备旋转的特性。
- Density(密度):对象的密度跟它的质量相关,而物体的质量决定了它移动的难易程度。
- Friction(摩擦力):这个参数决定了两个对象(带有物理属性)相互滑动时的难易程度。
- Elasticity(弹力):决定了对象的弹性。
- Linear damping(线性阻尼):表示对象物体线性运动中的阻力(包括摩擦力、空气阻力等等),为0就表示物体在真空中,受力后会永远运动。
- Angular damping(角度阻尼):同线性阻尼类似,就是阻止对象物体旋转的阻力。设为0的话,物体收到一个使其旋转的力后,就会以一个速度永远的旋转下去。
性能:
- 物理仿真非常消耗CPU,过多的使用带有物理属性的对象,会严重消耗CPU,从而降低游戏的速度。而且,如果游戏是为手机等移动设备设计时,就更要注意这一点。
- 如果带有物理属性的对象大都处于静止“睡眠”状态的话,这些对象的物理属性是不会消耗CPU,只有发生了物理碰撞,或是处于物理运动的对象才会消耗CPU,所以,如果一个游戏里虽然有大量具备物理属性的对象的,但是大部分处于静止“睡眠”状态的话,是不会影响游戏的运行效率。
物理仿真的稳定性:
为了保证物理仿真的可靠性,一是不要使用不真实的物理变化,尽量采用符合现实生活的物理变化;二是具备物理属性的对象边长保持在5~500个像素以内。
重力Gravity.
重力是所有添加了物理属性的对象所具备的。它的默认值为10,重力的方向通常设置在Y轴,从上向下。
重力值是可以被改变,通常在事件里改变,而这个改变是整个游戏世界的重力改变。如果设置为0的话,就是整个游戏中所有的对象都没有重力。
Set Physics world gravity to 0
外力与对象运动的物理仿真效果
游戏中,可以通过一些设置的方式来改变对象的位置或是使其运动,比如在事件中通过Set X, Set Y来使物体运动到一个新位置,又比如给物体增加“8个方向的控制”属性,然后通过箭头键使其运动。虽然这些设置导致物体(带有物理属性)的运动也会很好的仿真物理效果,但是不如通过物理行为(比如:给物体施加一个力量force或是一个脉冲式的力量impulse)使之运动的物理效果,这样更加精准。
- 力量(force):是在一段时间里,持续施加在对象物体上的一种力量,带给物体速度、加速度和方向,比如重力。
- 脉冲式力量(impulse):瞬间的力量,比如物体之间的撞击。
- 扭矩(Torque):带给物体旋转的力量。
- 连接(Joint):将两个物体连接固定到一起 ,它有两种连接方式,点连接和线连接。点连接的话,两个物体的某一点固定到一起,然后保持不变,但是各自的其他部分可以旋转变化;线连接的话有点类似在两个物体之间用一根不能弯曲的铁棍连接到一起,各自的其他部分可以旋转,但是两个连接点相对位置不能变化。
时间: 2024-10-11 12:59:47