跳到主要内容

Physics2DServer

继承

Object

简要描述

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

描述

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

方法

返回值类型方法名称
voidarea_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), disabled: bool = false)
voidarea_attach_canvas_instance_id(area: RID, id: int)
voidarea_attach_object_instance_id(area: RID, id: int)
voidarea_clear_shapes(area: RID)
RIDarea_create()
intarea_get_canvas_instance_id(area: RID) const
intarea_get_object_instance_id(area: RID) const
Variantarea_get_param(area: RID, param: int) const
RIDarea_get_shape(area: RID, shape_idx: int) const
intarea_get_shape_count(area: RID) const
Transform2Darea_get_shape_transform(area: RID, shape_idx: int) const
RIDarea_get_space(area: RID) const
intarea_get_space_override_mode(area: RID) const
Transform2Darea_get_transform(area: RID) const
voidarea_remove_shape(area: RID, shape_idx: int)
voidarea_set_area_monitor_callback(area: RID, receiver: Object, method: String)
voidarea_set_collision_layer(area: RID, layer: int)
voidarea_set_collision_mask(area: RID, mask: int)
voidarea_set_monitor_callback(area: RID, receiver: Object, method: String)
voidarea_set_monitorable(area: RID, monitorable: bool)
voidarea_set_param(area: RID, param: int, value: Variant)
voidarea_set_shape(area: RID, shape_idx: int, shape: RID)
voidarea_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)
voidarea_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D)
voidarea_set_space(area: RID, space: RID)
voidarea_set_space_override_mode(area: RID, mode: int)
voidarea_set_transform(area: RID, transform: Transform2D)
voidbody_add_central_force(body: RID, force: Vector2)
voidbody_add_collision_exception(body: RID, excepted_body: RID)
voidbody_add_force(body: RID, offset: Vector2, force: Vector2)
voidbody_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), disabled: bool = false)
voidbody_add_torque(body: RID, torque: float)
voidbody_apply_central_impulse(body: RID, impulse: Vector2)
voidbody_apply_impulse(body: RID, position: Vector2, impulse: Vector2)
voidbody_apply_torque_impulse(body: RID, impulse: float)
voidbody_attach_canvas_instance_id(body: RID, id: int)
voidbody_attach_object_instance_id(body: RID, id: int)
voidbody_clear_shapes(body: RID)
RIDbody_create()
intbody_get_canvas_instance_id(body: RID) const
intbody_get_collision_layer(body: RID) const
intbody_get_collision_mask(body: RID) const
intbody_get_continuous_collision_detection_mode(body: RID) const
Physics2DDirectBodyStatebody_get_direct_state(body: RID)
intbody_get_max_contacts_reported(body: RID) const
intbody_get_mode(body: RID) const
intbody_get_object_instance_id(body: RID) const
floatbody_get_param(body: RID, param: int) const
RIDbody_get_shape(body: RID, shape_idx: int) const
intbody_get_shape_count(body: RID) const
Variantbody_get_shape_metadata(body: RID, shape_idx: int) const
Transform2Dbody_get_shape_transform(body: RID, shape_idx: int) const
RIDbody_get_space(body: RID) const
Variantbody_get_state(body: RID, state: int) const
boolbody_is_omitting_force_integration(body: RID) const
voidbody_remove_collision_exception(body: RID, excepted_body: RID)
voidbody_remove_shape(body: RID, shape_idx: int)
voidbody_set_axis_velocity(body: RID, axis_velocity: Vector2)
voidbody_set_collision_layer(body: RID, layer: int)
voidbody_set_collision_mask(body: RID, mask: int)
voidbody_set_continuous_collision_detection_mode(body: RID, mode: int)
voidbody_set_force_integration_callback(body: RID, receiver: Object, method: String, userdata: Variant = null)
voidbody_set_max_contacts_reported(body: RID, amount: int)
voidbody_set_mode(body: RID, mode: int)
voidbody_set_omit_force_integration(body: RID, enable: bool)
voidbody_set_param(body: RID, param: int, value: float)
voidbody_set_shape(body: RID, shape_idx: int, shape: RID)
voidbody_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float)
voidbody_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)
voidbody_set_shape_metadata(body: RID, shape_idx: int, metadata: Variant)
voidbody_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D)
voidbody_set_space(body: RID, space: RID)
voidbody_set_state(body: RID, state: int, value: Variant)
boolbody_test_motion(body: RID, from: Transform2D, motion: Vector2, infinite_inertia: bool, margin: float = 0.08, result: Physics2DTestMotionResult = null)
RIDcapsule_shape_create()
RIDcircle_shape_create()
RIDconcave_polygon_shape_create()
RIDconvex_polygon_shape_create()
RIDdamped_spring_joint_create(anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID)
floatdamped_string_joint_get_param(joint: RID, param: int) const
voiddamped_string_joint_set_param(joint: RID, param: int, value: float)
voidfree_rid(rid: RID)
intget_process_info(process_info: int)
RIDgroove_joint_create(groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID)
floatjoint_get_param(joint: RID, param: int) const
intjoint_get_type(joint: RID) const
voidjoint_set_param(joint: RID, param: int, value: float)
RIDline_shape_create()
RIDpin_joint_create(anchor: Vector2, body_a: RID, body_b: RID)
RIDray_shape_create()
RIDrectangle_shape_create()
RIDsegment_shape_create()
voidset_active(active: bool)
Variantshape_get_data(shape: RID) const
intshape_get_type(shape: RID) const
voidshape_set_data(shape: RID, data: Variant)
RIDspace_create()
Physics2DDirectSpaceStatespace_get_direct_state(space: RID)
floatspace_get_param(space: RID, param: int) const
boolspace_is_active(space: RID) const
voidspace_set_active(space: RID, active: bool)
voidspace_set_param(space: RID, param: int, value: float)

枚举

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**

常数,用于设置/获取所有物理约束的默认求解器偏差,求解器偏差是一个因子,用于决定两个对象之间如何进行“回弹”,在违背了约束之后,避免把它们留在当前状态,这样会造成数值上的不精确

  • **SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH = 7**

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**

这是用于创建凸多边形形状的常数,凸多边形通过一组点来定义,它可以用于检测相交或者内部/外部的检测

  • **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**

静态实体常数。

  • **BODY_MODE_KINEMATIC = 1**

运动实体常数。

  • **BODY_MODE_RIGID = 2**

刚体常数。

  • **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**

通过光线投射实现连续碰撞检测,这种检测比转换形状快一些,但是精度也低一些

  • **CCD_MODE_CAST_SHAPE = 2**

通过shapecast进行连续碰撞检测,这是最慢的检测方式,但是同时拥有最高的精度


enum AreaBodyStatus:

  • **AREA_BODY_ADDED = 0**

当对象进入其形状之一时,将接收第一个参数和区域回调函数的值。

  • **AREA_BODY_REMOVED = 1**

当对象退出其形状之一时,将接收第一个参数和区域回调函数的值。


enum ProcessInfo:

  • **INFO_ACTIVE_OBJECTS = 0**

用于获取未休眠的对象数的常数。

  • **INFO_COLLISION_PAIRS = 1**

用于获取可能发生的碰撞次数的常数。

  • **INFO_ISLAND_COUNT = 2**

用于获取可能发生碰撞的空间区域数的常数。


方法说明

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

向该区域添加形状以及变换矩阵,形状一般通过索引指定,所以你也可以通过索引找到指定的形状


  • area_attach_canvas_instance_id area_attach_canvas_instance_id(area: RID, id: int)

  • area_attach_object_instance_id area_attach_object_instance_id(area: RID, id: int)

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


  • area_clear_shapes area_clear_shapes(area: RID)

移除区域中的所有形状,这并不会真正的删除那些形状,所以它们还可以再被赋值回来


  • area_create area_create()

创建一个Area2D


  • area_get_canvas_instance_id area_get_canvas_instance_id(area: RID) const

  • area_get_object_instance_id area_get_object_instance_id(area: RID) const

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


  • area_get_param area_get_param(area: RID, param: int) const

返回区域参数值,查看AreaParameter获取可用的参数列表


  • area_get_shape area_get_shape(area: RID, shape_idx: int) const

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


  • area_get_shape_count area_get_shape_count(area: RID) const

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


  • area_get_shape_transform area_get_shape_transform(area: RID, shape_idx: int) const

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


  • area_get_space area_get_space(area: RID) const

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


  • area_get_space_override_mode area_get_space_override_mode(area: RID) const

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


  • area_get_transform area_get_transform(area: RID) const

返回区域的变换矩阵。


  • area_remove_shape area_remove_shape(area: RID, shape_idx: int)

从区域中移除形状,这不会真正的删除这些形状对象,所以它们还可以被赋值回来


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

  • area_set_collision_layer area_set_collision_layer(area: RID, layer: int)

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


  • area_set_collision_mask area_set_collision_mask(area: RID, mask: int)

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


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

设置要在任何身体/区域进入或离开该区域时调用的函数,这个回调函数将在任何对象和这个区域发生作用时被调用,它有5个参数

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

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

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

4:进入/退出区域的对象的形状索引。

5:对象进入/退出的区域的形状索引。


  • area_set_monitorable area_set_monitorable(area: RID, monitorable: bool)

  • area_set_param area_set_param(area: RID, param: int, value: Variant)

设置区域参数的值,查看AreaParameter来获取可用的参数列表


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

用另一个区域形状替换给定的区域形状,通过索引来选取旧形状,通过RID来指定新的形状


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

禁用区域中的给定形状。


  • area_set_shape_transform area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D)

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


  • area_set_space area_set_space(area: RID, space: RID)

为该区域分配一个空间。


  • area_set_space_override_mode area_set_space_override_mode(area: RID, mode: int)

设置区域的空间覆盖模式,查看 AreaSpaceOverrideMode 来获取可用的模式列表


  • area_set_transform area_set_transform(area: RID, transform: Transform2D)

设置区域的变换矩阵。


  • body_add_central_force body_add_central_force(body: RID, force: Vector2)

  • body_add_collision_exception body_add_collision_exception(body: RID, excepted_body: RID)

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


  • body_add_force body_add_force(body: RID, offset: Vector2, force: Vector2)

将定位的力添加到所施加的力和扭矩上,正如 body_apply_impulse,实体源中的力和偏移都处于全局坐标下,因为一个力不同于一个脉冲,虽然两者都是力,但是脉冲在应用后会消除


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

向实体添加形状以及变换矩阵。形状一般通过索引来指定,所以你可以根据索引值来查找具体的形状


  • body_add_torque body_add_torque(body: RID, torque: float)

  • body_apply_central_impulse body_apply_central_impulse(body: RID, impulse: Vector2)

  • body_apply_impulse body_apply_impulse(body: RID, position: Vector2, impulse: Vector2)

在施加的力和扭矩上添加定位脉冲,实体源中的力和偏移都处于全局坐标下


  • body_apply_torque_impulse body_apply_torque_impulse(body: RID, impulse: float)

  • body_attach_canvas_instance_id body_attach_canvas_instance_id(body: RID, id: int)

  • body_attach_object_instance_id body_attach_object_instance_id(body: RID, id: int)

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


  • body_clear_shapes body_clear_shapes(body: RID)

从实体中移除所有形状。


  • body_create body_create()

创建一个物理实体。


  • body_get_canvas_instance_id body_get_canvas_instance_id(body: RID) const

  • body_get_collision_layer body_get_collision_layer(body: RID) const

返回实体所属的一个或多个物理层。


  • body_get_collision_mask body_get_collision_mask(body: RID) const

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


  • body_get_continuous_collision_detection_mode body_get_continuous_collision_detection_mode(body: RID) const

返回连续碰撞检测模式。


  • body_get_direct_state body_get_direct_state(body: RID)

返回实体的Physics2DDirectBodyState


  • body_get_max_contacts_reported body_get_max_contacts_reported(body: RID) const

返回可以报告的最大联系人, body_set_max_contacts_reported.


  • body_get_mode body_get_mode(body: RID) const

返回实体模式。


  • body_get_object_instance_id body_get_object_instance_id(body: RID) const

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


  • body_get_param body_get_param(body: RID, param: int) const

返回body参数的值,查看 BodyParameter 获取可用的参数列表


  • body_get_shape body_get_shape(body: RID, shape_idx: int) const

返回主体的第n个形状的RID


  • body_get_shape_count body_get_shape_count(body: RID) const

返回分配给实体的形状数量。


  • body_get_shape_metadata body_get_shape_metadata(body: RID, shape_idx: int) const

返回身体形状的元数据。


  • body_get_shape_transform body_get_shape_transform(body: RID, shape_idx: int) const

返回身体形状的变换矩阵。


  • body_get_space body_get_space(body: RID) const

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


  • body_get_state body_get_state(body: RID, state: int) const

返回实体状态。


  • body_is_omitting_force_integration body_is_omitting_force_integration(body: RID) const

返回实体是否使用回调函数来计算其自身的物理特性(参见method_body_set_force_integration_callback(#method_body_set_force_integration_callback))。


  • body_remove_collision_exception body_remove_collision_exception(body: RID, excepted_body: RID)

从免于碰撞的物体列表中删除物体。


  • body_remove_shape body_remove_shape(body: RID, shape_idx: int)

从实体中移除一个形状,被移除的形状并没有被删除,所以你还可以将它再赋值回来


  • body_set_axis_velocity body_set_axis_velocity(body: RID, axis_velocity: Vector2)

设置轴速度,这个给定向量轴的速度会被设置为给定的向量长度,这个设定对于“跳跃”的行为是很有帮助的


  • body_set_collision_layer body_set_collision_layer(body: RID, layer: int)

设置物体所属的一个或多个物理层。


  • body_set_collision_mask body_set_collision_mask(body: RID, mask: int)

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


  • body_set_continuous_collision_detection_mode body_set_continuous_collision_detection_mode(body: RID, mode: int)

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

连续碰撞检测试图预测移动物体的碰撞位置,而不是移动它并在碰撞时纠正其运动。


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

设置用于计算对象物理的函数(如果该对象允许的话)(参见method_body_set_omit_force_integration)。


  • body_set_max_contacts_reported body_set_max_contacts_reported(body: RID, amount: int)

设置要报告的最大联系人数量,实体会保持对于其他实体联系人的观察,这个设置要生效的话需要设置最大的amount参数大于0


  • body_set_mode body_set_mode(body: RID, mode: int)

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


  • body_set_omit_force_integration body_set_omit_force_integration(body: RID, enable: bool)

设置物体是否使用回调函数来计算其自身的物理特性(参见method_body_set_force_integration_callback(#method_body_set_force_integration_callback))。


  • body_set_param body_set_param(body: RID, param: int, value: float)

设置实体参数,查看 BodyParameter 获取可用参数列表


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

用另一个替换给定的实体形状替换当前的实体形状,旧的形状通过索引来选择,新的形状通过RID来指定


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

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


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

如果disabletrue,则禁用实体形状。


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

设置实体形状的元数据,元数据和Object.set_meta不同,并且可以通过查询获取


  • body_set_shape_transform body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D)

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


  • body_set_space body_set_space(body: RID, space: RID)

为实体分配一个空间(请参见space_create)。


  • body_set_state body_set_state(body: RID, state: int, value: Variant)

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


  • body_test_motion body_test_motion(body: RID, from: Transform2D, motion: Vector2, infinite_inertia: bool, margin: float = 0.08, result: Physics2DTestMotionResult = null)

如果从空间中的给定点沿给定方向移动会导致碰撞,则返回true


  • capsule_shape_create capsule_shape_create()

  • circle_shape_create circle_shape_create()

  • concave_polygon_shape_create concave_polygon_shape_create()

  • convex_polygon_shape_create convex_polygon_shape_create()

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

在两个实体之间创建阻尼弹簧接头,如果没有特别指定,那么第二个实体就假设为接头本身


  • damped_string_joint_get_param damped_string_joint_get_param(joint: RID, param: int) const

返回阻尼弹簧接头参数的值。


  • damped_string_joint_set_param damped_string_joint_set_param(joint: RID, param: int, value: float)

设置阻尼弹簧接头参数,查看 DampedStringParam 获取可用参数列表


  • free_rid free_rid(rid: RID)

销毁Physics2DServer创建的所有对象,如果传入的RID不是一个可以被Physics2DServer创建的对象,那么一个错误信息将会被发送到控制台


  • get_process_info get_process_info(process_info: int)

返回有关2D物理引擎当前状态的信息,查看 ProcessInfo 来获取可用的状态列表


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

在两个实体之间创建凹槽接头,如没有特殊指定,那么实体则假设为接头本身


  • joint_get_param joint_get_param(joint: RID, param: int) const

返回关节参数的值。


  • joint_get_type joint_get_type(joint: RID) const

返回关节的类型(参见[枚举JointType])。


  • joint_set_param joint_set_param(joint: RID, param: int, value: float)

设置关节参数,查看 JointParam 来获取可用的参数列表


  • line_shape_create line_shape_create()

  • pin_joint_create pin_joint_create(anchor: Vector2, body_a: RID, body_b: RID)

在两个实体之间创建铰链接头,如果没有特殊指定,那么第二个实体假设为接头本身


  • ray_shape_create ray_shape_create()

  • rectangle_shape_create rectangle_shape_create()

  • segment_shape_create segment_shape_create()

  • set_active set_active(active: bool)

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


  • shape_get_data shape_get_data(shape: RID) const

返回形状数据。


  • shape_get_type shape_get_type(shape: RID) const

返回形状的类型(参见ShapeType)。


  • shape_set_data shape_set_data(shape: RID, data: Variant)

设置定义其形状和大小的形状数据。传入的数据依靠某种形状来创建,参见 shape_get_type.


  • space_create space_create()

创建一个空间,空间指的是能够分配到物理引擎中实体或者区域的一组参数集合,它可以通过 area_set_space被赋值到区域,或者通过 body_set_space赋值到实体


  • space_get_direct_state space_get_direct_state(space: RID)

返回空间的状态,即Physics2DDirectSpaceState,这个对象可以被用于查询碰撞和相交


  • space_get_param space_get_param(space: RID, param: int) const

返回空格参数的值。


  • space_is_active space_is_active(space: RID) const

返回该空间是否处于活动状态。


  • space_set_active space_set_active(space: RID, active: bool)

将空间标记为活动空间,这并不会产生效果,除非这个空间已经被分配到了一个区域或者实体上


  • space_set_param space_set_param(space: RID, param: int, value: float)

设置空间参数的值,查看 SpaceParameter 来获取可用的参数列表