StaticBody2D
StaticBody2D
以下为我对于官方文档的翻译以及使用情况,3.0版本的文档
StaticBody2D官方文档
继承: PhysicsBody2D < CollisionObject2D < Node2D < CanvasItem < Node < Object
类型: Core
简要说明
2D物理学中的静态体。
成员变量
- float bounce - 身体的弹性。取值范围从
0
(无反弹)到1
(最大弹性)。 - float constant_angular_velocity - 物体体恒定的角速度。这不会旋转物体,而是影响碰撞的物体,就像它在旋转一样。
- Vector2 constant_linear_velocity - 恒定的线性速度为物体。这不会移动物体,而是影响碰撞的身体,就像它在移动一样。
- float friction - 身体的摩擦力值范围从
0
(无摩擦)到1
(最大摩擦)。
说明
2D物理学中的静态体。静态体2D是一个不打算移动的物体。它是理想的环境中的对象,如墙壁或平台。
此外,可以为静态物体设置恒定的线性速度或角速度,这将影响碰撞物体,就好像它在移动(例如,传送带)。
使用
将创建三个场景分别为,球,地板,主场景。
球场景:
- RigidBody2D(然后单点节点名可以改名,将它改名为ball)
- Sprite
- CollisionShape2D(这是设置碰撞区域的)
然后拉个球的图片进Sprite的texture属性。
然后选择CollisionShape2D节点,单击它Shape属性的null创建个圆形碰撞区域(也可以是别的形状)。
然后场景中的会出现一块半透明蓝色圆形,用它中偏右的一个小点控制它大小,直到正好覆盖整个图形。
地板场景:
- RigidBody2D(然后单点节点名可以改名,将它改名为floor)
- Sprite
- CollisionShape2D(这是设置碰撞区域的)
为Sprite节点的texture属性拉近一张长方形图片,并用CollisionShape2D创建一个长方形碰撞区域。
创建主场景
- Node2D
通过场景树编辑器上的锁链状按钮实例化Ball和Floor场景的节点各一个,然后摆下位置,球在地板上方。
运行下看下。
将地板场景中StaticBody2D节点的Bounce属性设置为0.5(默认为0无弹性)其他属性为默认值。
运行。
将地板场景中StaticBody2D节点的Constant Angular Velocity属性设置为6(默认为0,无角速度)其他属性为默认值,后运行。
将地板场景中StaticBody2D节点的Constant Linear Velocity属性设置为(200,0)(默认为(0,0),无线性速度)其他属性为默认值,后运行。
将地板场景中StaticBody2D节点的Friction属性设置为0(默认为1,最大摩擦)其他属性随意,后运行。
当摩擦为零,那么与摩擦相关的移动(这里是水平移动)将不会出现。