Loading... ## 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 可以具有任意数量的形状所有者。 ![](https://s1.ax1x.com/2020/04/03/GUCQHO.png) ## 四种2D物理体 从CollisionObject2D 拓展出的类,有两大类,一个是Area2D;一个是PhysicsBody2D。其中PhysicsBody2D中又有三个小类。 ![](https://s1.ax1x.com/2020/04/03/GUp6oQ.png) ### Area2D(特别常用) Area2D节点提供检测和影响。它们可以检测物体何时重叠,并可以在物体进入或离开时发出信号。Area2D 还可以覆盖定义区域中的物理特性,例如重力或阻尼。 最大的特点是能发出了一些检测重叠碰撞的信号。这是其他节点没有的。 ### StaticBody2D(常用) 静态物体是物理引擎不会移动的物体。它参与碰撞检测,但不会响应碰撞而移动。它们最常用于环境中的对象或不需要任何动态行为的对象。 ### RigidBody2D 这是实现模拟2D物理的节点。您不必直接控制RigidBody2D节点的属性 ,而是要对其施加力(重力,脉冲等),然后物理引擎将计算最终的运动。 ### KinematicBody2D(特别常用) 提供碰撞检测但没有物理学的物体。所有运动和碰撞响应都必须用代码实现。 ## 2D物理体的一些特性 * 它们都有物理层的概念。它们只能看到检测层的东西。 ![](https://s1.ax1x.com/2020/04/03/GUFJC4.png) * Area2D 具有monitor选项,可以选择不给任何节点看以及不看任何层。其他物理体没有该选项。 ![](https://s1.ax1x.com/2020/04/03/GUkFMR.png) * Area2D 具有报告碰撞状态的信号。其他物理体没有该信号。可以看到,检测 区域碰撞和物体碰撞是两个不同的信号。所以 Area2D 和 PhysicsBody2D 具有很大区别。 ![](https://s1.ax1x.com/2020/04/03/GUk4yR.png) 最后修改:2020 年 04 月 03 日 02 : 37 PM © 允许规范转载