Physics2DServer

Inherits: Object

用于底层2D物理访问服务的接口。

描述

Physics2DServer 是负责所有 2D 物理的服务。它可以创建多种物理对象,但不会将它们插入到节点树中。

方法

void

area_add_shape ( RID area, RID shape, Transform2D transform=Transform2D( 1, 0, 0, 1, 0, 0 ), bool disabled=false )

void

area_attach_canvas_instance_id ( RID area, int id )

void

area_attach_object_instance_id ( RID area, int id )

void

area_clear_shapes ( RID area )

RID

area_create ( )

int

area_get_canvas_instance_id ( RID area ) const

int

area_get_object_instance_id ( RID area ) const

Variant

area_get_param ( RID area, AreaParameter param ) const

RID

area_get_shape ( RID area, int shape_idx ) const

int

area_get_shape_count ( RID area ) const

Transform2D

area_get_shape_transform ( RID area, int shape_idx ) const

RID

area_get_space ( RID area ) const

AreaSpaceOverrideMode

area_get_space_override_mode ( RID area ) const

Transform2D

area_get_transform ( RID area ) const

void

area_remove_shape ( RID area, int shape_idx )

void

area_set_area_monitor_callback ( RID area, Object receiver, String method )

void

area_set_collision_layer ( RID area, int layer )

void

area_set_collision_mask ( RID area, int mask )

void

area_set_monitor_callback ( RID area, Object receiver, String method )

void

area_set_monitorable ( RID area, bool monitorable )

void

area_set_param ( RID area, AreaParameter param, Variant value )

void

area_set_shape ( RID area, int shape_idx, RID shape )

void

area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

void

area_set_shape_transform ( RID area, int shape_idx, Transform2D transform )

void

area_set_space ( RID area, RID space )

void

area_set_space_override_mode ( RID area, AreaSpaceOverrideMode mode )

void

area_set_transform ( RID area, Transform2D transform )

void

body_add_central_force ( RID body, Vector2 force )

void

body_add_collision_exception ( RID body, RID excepted_body )

void

body_add_force ( RID body, Vector2 offset, Vector2 force )

void

body_add_shape ( RID body, RID shape, Transform2D transform=Transform2D( 1, 0, 0, 1, 0, 0 ), bool disabled=false )

void

body_add_torque ( RID body, float torque )

void

body_apply_central_impulse ( RID body, Vector2 impulse )

void

body_apply_impulse ( RID body, Vector2 position, Vector2 impulse )

void

body_apply_torque_impulse ( RID body, float impulse )

void

body_attach_canvas_instance_id ( RID body, int id )

void

body_attach_object_instance_id ( RID body, int id )

void

body_clear_shapes ( RID body )

RID

body_create ( )

int

body_get_canvas_instance_id ( RID body ) const

int

body_get_collision_layer ( RID body ) const

int

body_get_collision_mask ( RID body ) const

CCDMode

body_get_continuous_collision_detection_mode ( RID body ) const

Physics2DDirectBodyState

body_get_direct_state ( RID body )

int

body_get_max_contacts_reported ( RID body ) const

BodyMode

body_get_mode ( RID body ) const

int

body_get_object_instance_id ( RID body ) const

float

body_get_param ( RID body, BodyParameter param ) const

RID

body_get_shape ( RID body, int shape_idx ) const

int

body_get_shape_count ( RID body ) const

Variant

body_get_shape_metadata ( RID body, int shape_idx ) const

Transform2D

body_get_shape_transform ( RID body, int shape_idx ) const

RID

body_get_space ( RID body ) const

Variant

body_get_state ( RID body, BodyState state ) const

bool

body_is_omitting_force_integration ( RID body ) const

void

body_remove_collision_exception ( RID body, RID excepted_body )

void

body_remove_shape ( RID body, int shape_idx )

void

body_set_axis_velocity ( RID body, Vector2 axis_velocity )

void

body_set_collision_layer ( RID body, int layer )

void

body_set_collision_mask ( RID body, int mask )

void

body_set_continuous_collision_detection_mode ( RID body, CCDMode mode )

void

body_set_force_integration_callback ( RID body, Object receiver, String method, Variant userdata=null )

void

body_set_max_contacts_reported ( RID body, int amount )

void

body_set_mode ( RID body, BodyMode mode )

void

body_set_omit_force_integration ( RID body, bool enable )

void

body_set_param ( RID body, BodyParameter param, float value )

void

body_set_shape ( RID body, int shape_idx, RID shape )

void

body_set_shape_as_one_way_collision ( RID body, int shape_idx, bool enable, float margin )

void

body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

void

body_set_shape_metadata ( RID body, int shape_idx, Variant metadata )

void

body_set_shape_transform ( RID body, int shape_idx, Transform2D transform )

void

body_set_space ( RID body, RID space )

void

body_set_state ( RID body, BodyState state, Variant value )

bool

body_test_motion ( RID body, Transform2D from, Vector2 motion, bool infinite_inertia, float margin=0.08, Physics2DTestMotionResult result=null, bool exclude_raycast_shapes=true, Array exclude=[ ] )

RID

capsule_shape_create ( )

RID

circle_shape_create ( )

RID

concave_polygon_shape_create ( )

RID

convex_polygon_shape_create ( )

RID

damped_spring_joint_create ( Vector2 anchor_a, Vector2 anchor_b, RID body_a, RID body_b )

float

damped_string_joint_get_param ( RID joint, DampedStringParam param ) const

void

damped_string_joint_set_param ( RID joint, DampedStringParam param, float value )

void

free_rid ( RID rid )

int

get_process_info ( ProcessInfo process_info )

RID

groove_joint_create ( Vector2 groove1_a, Vector2 groove2_a, Vector2 anchor_b, RID body_a, RID body_b )

float

joint_get_param ( RID joint, JointParam param ) const

JointType

joint_get_type ( RID joint ) const

void

joint_set_param ( RID joint, JointParam param, float value )

RID

line_shape_create ( )

RID

pin_joint_create ( Vector2 anchor, RID body_a, RID body_b )

RID

ray_shape_create ( )

RID

rectangle_shape_create ( )

RID

segment_shape_create ( )

void

set_active ( bool active )

void

set_collision_iterations ( int iterations )

Variant

shape_get_data ( RID shape ) const

ShapeType

shape_get_type ( RID shape ) const

void

shape_set_data ( RID shape, Variant data )

RID

space_create ( )

Physics2DDirectSpaceState

space_get_direct_state ( RID space )

float

space_get_param ( RID space, SpaceParameter param ) const

bool

space_is_active ( RID space ) const

void

space_set_active ( RID space, bool active )

void

space_set_param ( RID space, SpaceParameter param, float value )

枚举

enum SpaceParameter:

  • SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0 —- 常数,用于设置/获取一对物体在其碰撞状态被重新计算之前的最大移动距离。

  • SPACE_PARAM_CONTACT_MAX_SEPARATION = 1 —- 常数,用于设置/获取形状在被视为分离之前与另一形状之间的最大距离。

  • SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2 —- 常数,用来设置/得到一个形状在被认为碰撞之前穿透另一个形状的最大距离。

  • SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3 —- 常数,用于设置/获取活跃的阈值线速度。一个被标记为线性速度和角速度都可能不活跃的物体将在给定的时间后进入睡眠状态。

  • SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4 —- 常数,用于设置/获取活动的阈值角速度。一个被标记为线性和角速度都可能不活跃的物体,在给定的时间后将会进入睡眠状态。

  • SPACE_PARAM_BODY_TIME_TO_SLEEP = 5 —- 常数来设置/获得最大的活动时间。一个被标记为线速度和角速度都可能不活动的物体,在这个时间之后将被置入睡眠状态。

  • SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 6 —- 常数,用于设置/获取所有物理约束的默认求解器偏置。解算器偏差是一个控制两个物体在违反约束后 “反弹 “程度的因素,以避免由于数值不精确而使它们处于这种状态。


enum ShapeType:

  • SHAPE_LINE = 0 —- 这是创建线型形状的常量。线条形状是一条具有原点和法线的无限长直线。因此,它可以被用于前后检查。

  • SHAPE_RAY = 1

  • SHAPE_SEGMENT = 2 —- 这是创建线段形状的常量。线段形状是一条从A点到B点的线,它可以被检查交点。

  • SHAPE_CIRCLE = 3 —- 这是创建圆形的常量。一个圆的形状只有一个半径。它可以用于交点和内/外侧检查。

  • SHAPE_RECTANGLE = 4 —- 这是用于创建矩形形状的常量。矩形形状是由宽度和高度定义的。它可以用于交点和内/外侧检查。

  • SHAPE_CAPSULE = 5 —- 这是创建胶囊形状的常量。一个胶囊形状由一个半径和一个长度定义。它可以用于交点和内/外侧检查。

  • SHAPE_CONVEX_POLYGON = 6 —- 这是用于创建凸多边形的常量。一个多边形是由一个点的列表定义的。它可以用于交点和内/外侧检查。与CollisionPolygon2D.polygon属性不同,用shape_set_data修改的多边形并不验证所提供的点的形式是一个凸形多边形。

  • SHAPE_CONCAVE_POLYGON = 7 —- 这是创建凹形多边形的常量。一个多边形是由一个点的列表定义的。它可以用于交叉点检查,但不能用于内/外侧检查。

  • SHAPE_CUSTOM = 8 —- 这个常数是由引擎内部使用的。任何试图创建这种形状的行为都会导致错误。


enum AreaParameter:

  • AREA_PARAM_GRAVITY = 0 —- 在一个地区设置/获得重力强度的常数。

  • AREA_PARAM_GRAVITY_VECTOR = 1 —- 在一个区域内设置/获取重力向量/中心的常数。

  • AREA_PARAM_GRAVITY_IS_POINT = 2 —- 常数用于设置/获取一个区域的重力向量是一个方向,还是一个中心点。

  • AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3 —- 常数,用于设置/获取一个区域的点重力的衰减系数。这个值越大,重力的强度随着距离的平方下降得越快。

  • AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4 —- 这个常数用于设置/获取点重力的衰减因子。它已经被AREA_PARAM_GRAVITY_DISTANCE_SCALE所取代了。

  • AREA_PARAM_LINEAR_DAMP = 5 —- 常数,用于设置/获取一个区域的线性阻尼系数。

  • AREA_PARAM_ANGULAR_DAMP = 6 —- 常数,用于设置/获取一个区域的角度阻尼系数。

  • AREA_PARAM_PRIORITY = 7 —- 常数,用于设置/获取一个区域的优先级(处理顺序)。


enum AreaSpaceOverrideMode:

  • AREA_SPACE_OVERRIDE_DISABLED = 0 —- 这个区域不影响重力/阻尼。这些一般都是只存在于检测碰撞的区域,以及进入或离开它们的物体。

  • AREA_SPACE_OVERRIDE_COMBINE = 1 —- 此区域把它的重力/阻尼加到目前已经计算过的对象上。这样一来,许多重叠的区域可以结合它们的物理运算来产生有趣的效果。

  • AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2 —- 这个区域把它的重力/阻尼加到迄今为止已经计算出来的任何东西上。然后停止考虑其余的区域,甚至默认的区域。

  • AREA_SPACE_OVERRIDE_REPLACE = 3 —- 这个区域取代了任何重力/阻尼,甚至是默认的,并停止考虑其余的区域。

  • AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4 —- 这个区域取代了到目前为止计算的任何重力/阻尼,但继续计算其余的区域,直到默认的区域。


enum BodyMode:

  • BODY_MODE_STATIC = 0 —- StaticBody 的常量。

  • BODY_MODE_KINEMATIC = 1 —- KinematicBody 的常数。

  • BODY_MODE_RIGID = 2 —- RigidBody 的常数。

  • BODY_MODE_CHARACTER = 3 —- 角色模式下刚体的常数。在这种模式下,物体不能旋转,只有它的线速度受物理运算影响。


enum BodyParameter:

  • BODY_PARAM_BOUNCE = 0 —- 常数,用于设置/获取物体的反弹系数。

  • BODY_PARAM_FRICTION = 1 —- 常数,用于设置/获取一个物体的摩擦力。

  • BODY_PARAM_MASS = 2 —- 设置/获取一个物体的质量的常数。

  • BODY_PARAM_INERTIA = 3 —- 常数,用于设置/获取一个物体的惯性。

  • BODY_PARAM_GRAVITY_SCALE = 4 —- 常数,用于设置/获取一个物体的重力倍数。

  • BODY_PARAM_LINEAR_DAMP = 5 —- 常数,用于设置/获取一个物体的线性阻尼系数。

  • BODY_PARAM_ANGULAR_DAMP = 6 —- 常数,用于设置/获取一个物体的角度阻尼系数。

  • BODY_PARAM_MAX = 7 —- 表示BodyParameter枚举的大小。


enum BodyState:

  • BODY_STATE_TRANSFORM = 0 —- 常数,用于设置/获取物体的当前变换矩阵。

  • BODY_STATE_LINEAR_VELOCITY = 1 —- 常数,用于设置/获取物体的当前线速度。

  • BODY_STATE_ANGULAR_VELOCITY = 2 —- 常数,用于设置/获取物体的当前角速度。

  • BODY_STATE_SLEEPING = 3 —- 常数,用于使物体沉睡/唤醒,或得到它是否在沉睡。

  • BODY_STATE_CAN_SLEEP = 4 —- 常量,用于设置/获取物体是否可以休眠。


enum JointType:

  • JOINT_PIN = 0 —- 常数,用于创造针状关节。

  • JOINT_GROOVE = 1 —- 常数,用于创造槽型关节。

  • JOINT_DAMPED_SPRING = 2 —- 常数,用于创造有阻尼的弹簧关节。


enum JointParam:

  • JOINT_PARAM_BIAS = 0

  • JOINT_PARAM_MAX_BIAS = 1

  • JOINT_PARAM_MAX_FORCE = 2


enum DampedStringParam:

  • DAMPED_STRING_REST_LENGTH = 0 —- 设定弹簧关节的静止长度。当拉开时,关节将总是试图回到这个长度。

  • DAMPED_STRING_STIFFNESS = 1 —- 设置弹簧接头的刚度。该关节施加的力等于刚度乘以离其静止长度的距离。

  • DAMPED_STRING_DAMPING = 2 —- 设置弹簧接头的阻尼比率。值为0表示无阻尼弹簧,而1导致系统尽可能快地达到平衡(临界阻尼)。


enum CCDMode:

  • CCD_MODE_DISABLED = 0 —- 禁用连续碰撞检测。这是检测物体碰撞的最快方法,但可能会错过小的、快速移动的物体。

  • CCD_MODE_CAST_RAY = 1 —- 通过射线投射实现连续的碰撞检测。它比shapecasting更快,但不够精确。

  • CCD_MODE_CAST_SHAPE = 2 —- 通过形变实现连续的碰撞检测。它是最慢的CCD方法,也是最精确的。


enum AreaBodyStatus:

  • AREA_BODY_ADDED = 0 —- 当对象进入其形状之一时,第一个参数和区域回调函数接收的值。

  • AREA_BODY_REMOVED = 1 —- 当对象退出其形状之一时,第一个参数和区域回调函数接收的值。


enum ProcessInfo:

  • INFO_ACTIVE_OBJECTS = 0 —- 常量,用来获取未处于睡眠状态的对象的数量。

  • INFO_COLLISION_PAIRS = 1 —- 常数,用以获取可能的碰撞数。

  • INFO_ISLAND_COUNT = 2 —- 常量,用以获取可能发生碰撞的空间区域数。

方法说明

  • void area_add_shape ( RID area, RID shape, Transform2D transform=Transform2D( 1, 0, 0, 1, 0, 0 ), bool disabled=false )

向区域添加一个形状,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应该跟踪哪个形状具有给定的索引。


  • void area_attach_canvas_instance_id ( RID area, int id )

  • void area_attach_object_instance_id ( RID area, int id )

将区域分配给Object的子类,因此它可以存在于节点树中。


  • void area_clear_shapes ( RID area )

从一个区域移除所有形状。它不会删除形状,因此它们可以稍后重新分配。


  • RID area_create ( )

创建一个 Area2D。用这个方法创建了一个Area2D后,使用area_set_space将其分配给一个空间,以便在物理世界中使用创建的Area2D


  • int area_get_canvas_instance_id ( RID area ) const

  • int area_get_object_instance_id ( RID area ) const

获取区域分配给的对象的实例ID。


返回区域参数值。有关可用参数的列表,请参阅AreaParameter


  • RID area_get_shape ( RID area, int shape_idx ) const

返回区域的第n个形状的RID


  • int area_get_shape_count ( RID area ) const

返回分配给区域的形状数量。


返回区域内形状的变换矩阵。


  • RID area_get_space ( RID area ) const

返回分配给该区域的空间。


返回该区域的空间覆盖模式。


返回区域的变换矩阵。


  • void area_remove_shape ( RID area, int shape_idx )

从区域中移除一个形状。它不会删除形状,因此可以稍后重新分配。


  • void area_set_area_monitor_callback ( RID area, Object receiver, String method )

  • void area_set_collision_layer ( RID area, int layer )

将区域分配给一个或多个物理层。


  • void area_set_collision_mask ( RID area, int mask )

设置区域将监控的物理层。


  • void area_set_monitor_callback ( RID area, Object receiver, String method )

设置当任何主体/区域进入或退出该区域时调用的函数。这个回调函数将被任何与区域交互的对象调用,并接受5个参数:

1: AREA_BODY_ADDEDAREA_BODY_REMOVED,取决于对象是否进入或退出该区域。

2:进入/退出该区域对象的RID

3:进入/退出该区域对象的实例ID。

4:进入/离开该区域的物体的形状指数。

5:物体进入/离开区域的形状指数。


  • void area_set_monitorable ( RID area, bool monitorable )

设置区域参数的值。有关可用参数的列表,请参阅 AreaParameter


  • void area_set_shape ( RID area, int shape_idx, RID shape )

用另一种形状代替一种形状。旧的形状由它的索引选择,新的形状由它的RID选择。


  • void area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

在区域中禁用一个给定的形状。


设置区域形状的变换矩阵。


  • void area_set_space ( RID area, RID space )

为该区域指定一个空间。


为该区域设置空间覆盖模式。请参阅AreaSpaceOverrideMode获取可用模式的列表。


设置区域的变换矩阵。


  • void body_add_central_force ( RID body, Vector2 force )

  • void body_add_collision_exception ( RID body, RID excepted_body )

将一个物体添加到免于碰撞的物体列表中。


在施加的力和扭矩上添加一个有作用点的力。与body_apply_impulse一样,力和物体原点的偏移量都在全局坐标中。力与冲量的不同之处在于,虽然两者都是力,但冲量在被施加后会自动清除。


  • void body_add_shape ( RID body, RID shape, Transform2D transform=Transform2D( 1, 0, 0, 1, 0, 0 ), bool disabled=false )

添加一个形状到物体,以及一个变换矩阵。形状通常通过它们的索引来引用,因此您应该跟踪哪个形状具有给定的索引。


  • void body_add_torque ( RID body, float torque )

  • void body_apply_central_impulse ( RID body, Vector2 impulse )

在施加的力和扭矩上增加一个有作用点的冲量。力和物体原点的偏移量都在全局坐标中。


  • void body_apply_torque_impulse ( RID body, float impulse )

  • void body_attach_canvas_instance_id ( RID body, int id )

  • void body_attach_object_instance_id ( RID body, int id )

将区域分配给Object的子类,因此它可以存在于节点树中。


  • void body_clear_shapes ( RID body )

从物体上移除所有碰撞形状。


  • RID body_create ( )

创建一个物理体。


  • int body_get_canvas_instance_id ( RID body ) const

  • int body_get_collision_layer ( RID body ) const

返回物体所属的物理层或层。


  • int body_get_collision_mask ( RID body ) const

返回物体可以碰撞的物理层或层。


  • CCDMode body_get_continuous_collision_detection_mode ( RID body ) const

返回连续碰撞检测模式。


返回物体的 Physics2DDirectBodyState。如果该物体已被销毁或者已被移出物理空间,则返回 null


  • int body_get_max_contacts_reported ( RID body ) const

返回可报告的最大接触数。参阅body_set_max_contacts_reported


返回物体模式。


  • int body_get_object_instance_id ( RID body ) const

获取区域分配给的对象的实例ID。


返回物体参数的值。请参阅BodyParameter获取可用参数列表。


  • RID body_get_shape ( RID body, int shape_idx ) const

返回body的第n个碰撞形状的RID


  • int body_get_shape_count ( RID body ) const

返回分配给物体的碰撞形状数量。


  • Variant body_get_shape_metadata ( RID body, int shape_idx ) const

返回物体碰撞形状的元数据。


返回物体碰撞形状的变换矩阵。


  • RID body_get_space ( RID body ) const

返回分配给物体的空间的RID


返回物体的状态。


  • bool body_is_omitting_force_integration ( RID body ) const

返回一个body是否使用回调函数来计算它自己的物理值(参阅body_set_force_integration_callback方法)。


  • void body_remove_collision_exception ( RID body, RID excepted_body )

从免于碰撞的物体列表中移除一个物体。


  • void body_remove_shape ( RID body, int shape_idx )

从物体上移除一个碰撞形状。碰撞形状不会被从内存中删除,所以它可以在之后被重复使用。


  • void body_set_axis_velocity ( RID body, Vector2 axis_velocity )

设置轴速度。给定向量轴上的速度将被设置为给定向量长度。这对跳跃行为很有用。


  • void body_set_collision_layer ( RID body, int layer )

设置物体所属的物理层或层。


  • void body_set_collision_mask ( RID body, int mask )

设置物理层或身体可以碰撞的层。


  • void body_set_continuous_collision_detection_mode ( RID body, CCDMode mode )

设置使用CCDMode常量之一的连续碰撞检测模式。

连续碰撞检测试图预测一个运动体将在哪里发生碰撞,而不是移动它并在它发生碰撞时纠正其运动。


设置用于物体物理运算的函数,如果该物体允许的话,参阅body_set_omit_force_integration


  • void body_set_max_contacts_reported ( RID body, int amount )

设置要报告的最大关联数。物体可以保存与其他物体的关联日志,当最大数量的关联报告的数字大于 0 时才启用此功能。


使用BodyMode常量之一设置body模式。


  • void body_set_omit_force_integration ( RID body, bool enable )

设置一个物体是否使用回调函数来计算它自己的物理(参阅 body_set_force_integration_callback)。


设置主体参数。请参阅BodyParameter获取可用参数列表。


  • void body_set_shape ( RID body, int shape_idx, RID shape )

用一个给定的物体形状代替另一个。旧的形状是通过其索引选择的,新的是通过其RID选择的。


  • void body_set_shape_as_one_way_collision ( RID body, int shape_idx, bool enable, float margin )

如果enabletrue,则在body上启用单向碰撞。


  • void body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

如果disabletrue,则在body中禁用形状。


  • void body_set_shape_metadata ( RID body, int shape_idx, Variant metadata )

设置一个体中的形状的元数据。这个元数据与Object.set_meta不同,可以在形状查询中检索。


设置物体形状的变换矩阵。


  • void body_set_space ( RID body, RID space )

给物体分配一个空间(参阅space_create)。


使用 BodyState 常量之一设置物体状态。

请注意,该方法不会立即生效。状态将在下一个物理帧发生变化。


如果从空间中的给定点沿给定方向移动会导致碰撞,则返回 true。边距增加了碰撞检测中涉及的形状的大小。 通过返回Physics2DTestMotionResult 可以附加信息。


  • RID capsule_shape_create ( )

  • RID circle_shape_create ( )

  • RID concave_polygon_shape_create ( )

  • RID convex_polygon_shape_create ( )

在两个体之间创建一个阻尼弹簧关节。如果没有指定,第二个体将被假定为关节本身。


返回阻尼弹簧关节参数值。


设置阻尼弹簧关节参数。参阅DampedStringParam获取可用参数的列表。


  • void free_rid ( RID rid )

销毁由 Physics2DServer 创建的任何对象。如果传递的 RID 不是 Physics2DServer 可以创建的对象之一,则会向控制台发送错误。


返回关于2D物理引擎当前状态的信息。有关可用状态列表,请参阅ProcessInfo


在两个物体之间形成凹槽连接。如果没有指定,则假定物体是关节本身。


返回关节参数的值。


返回一个关节的类型(见JointType)。


设置关节参数。有关可用参数的列表,请参阅JointParam


  • RID line_shape_create ( )

在两个体之间创建一个针状关节。如果没有指定,第二个物体将被假定为关节本身。


  • RID ray_shape_create ( )

  • RID rectangle_shape_create ( )

  • RID segment_shape_create ( )

  • void set_active ( bool active )

激活或停用2D物理引擎。


  • void set_collision_iterations ( int iterations )

设置计算碰撞体速度的迭代次数。迭代次数越多,碰撞就越准确。但是,更大量的迭代需要更多的 CPU 能力,这会降低性能。默认值为 8


返回形状数据。


返回一个形状的类型(参阅ShapeType)。


设置定义形状和大小的形状数据。要传递的数据取决于创建的形状的类型shape_get_type


  • RID space_create ( )

创建一个空间。空间是物理引擎的参数集合,可以分配给区域或主体。它可以通过area_set_space分配给一个区域,或者通过body_set_space分配给一个主体。


返回空间的状态,Physics2DDirectSpaceState。此对象可用于进行碰撞/相交查询。


返回空间参数的值。


  • bool space_is_active ( RID space ) const

返回该空间是否是活动的。


  • void space_set_active ( RID space, bool active )

将空间标记为活动空间。它不会有效果,除非它被分配到一个区域或物体。


设置空间参数的值。参阅SpaceParameter获取可用参数列表。