CollisionObject2D

CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision Shape2Ds. Each shape must be assigned to a shape owner. The CollisionObject2D can have any number of shape owners.
CollisionObject2D 是所有2D物理体的基类。它可以包含任意数量的2D碰撞形状。其中每一个形状必须要分配一个形状所有者。CollisionObject2D 可以具有任意数量的形状所有者。

四种2D物理体

从CollisionObject2D 拓展出的类,有两大类,一个是Area2D;一个是PhysicsBody2D。其中PhysicsBody2D中又有三个小类。

Area2D(特别常用)

Area2D节点提供检测和影响。它们可以检测物体何时重叠,并可以在物体进入或离开时发出信号。Area2D 还可以覆盖定义区域中的物理特性,例如重力或阻尼。
最大的特点是能发出了一些检测重叠碰撞的信号。这是其他节点没有的。

StaticBody2D(常用)

静态物体是物理引擎不会移动的物体。它参与碰撞检测,但不会响应碰撞而移动。它们最常用于环境中的对象或不需要任何动态行为的对象。

RigidBody2D

这是实现模拟2D物理的节点。您不必直接控制RigidBody2D节点的属性 ,而是要对其施加力(重力,脉冲等),然后物理引擎将计算最终的运动。

KinematicBody2D(特别常用)

提供碰撞检测但没有物理学的物体。所有运动和碰撞响应都必须用代码实现。

2D物理体的一些特性

  • 它们都有物理层的概念。它们只能看到检测层的东西。
  • Area2D 具有monitor选项,可以选择不给任何节点看以及不看任何层。其他物理体没有该选项。
  • Area2D 具有报告碰撞状态的信号。其他物理体没有该信号。可以看到,检测 区域碰撞和物体碰撞是两个不同的信号。所以 Area2D 和 PhysicsBody2D 具有很大区别。
最后修改:2020 年 04 月 03 日
如果觉得我的文章对你有用,请随意赞赏