Physics2DServer
继承
简要描述
用于底层2D物理访问的服务器接口。
描述
Physics2DServer是负责所有2D物理的服务器,可以创建各种物理对象,但是不会把它们插入到节点树中
方法
返回值类型 | 方法名称 |
---|---|
void | area_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), disabled: bool = false) |
void | area_attach_canvas_instance_id(area: RID, id: int) |
void | area_attach_object_instance_id(area: RID, id: int) |
void | area_clear_shapes(area: RID) |
RID | area_create() |
int | area_get_canvas_instance_id(area: RID) const |
int | area_get_object_instance_id(area: RID) const |
Variant | area_get_param(area: RID, param: int) const |
RID | area_get_shape(area: RID, shape_idx: int) const |
int | area_get_shape_count(area: RID) const |
Transform2D | area_get_shape_transform(area: RID, shape_idx: int) const |
RID | area_get_space(area: RID) const |
int | area_get_space_override_mode(area: RID) const |
Transform2D | area_get_transform(area: RID) const |
void | area_remove_shape(area: RID, shape_idx: int) |
void | area_set_area_monitor_callback(area: RID, receiver: Object, method: String) |
void | area_set_collision_layer(area: RID, layer: int) |
void | area_set_collision_mask(area: RID, mask: int) |
void | area_set_monitor_callback(area: RID, receiver: Object, method: String) |
void | area_set_monitorable(area: RID, monitorable: bool) |
void | area_set_param(area: RID, param: int, value: Variant) |
void | area_set_shape(area: RID, shape_idx: int, shape: RID) |
void | area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool) |
void | area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D) |
void | area_set_space(area: RID, space: RID) |
void | area_set_space_override_mode(area: RID, mode: int) |
void | area_set_transform(area: RID, transform: Transform2D) |
void | body_add_central_force(body: RID, force: Vector2) |
void | body_add_collision_exception(body: RID, excepted_body: RID) |
void | body_add_force(body: RID, offset: Vector2, force: Vector2) |
void | body_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), disabled: bool = false) |
void | body_add_torque(body: RID, torque: float) |
void | body_apply_central_impulse(body: RID, impulse: Vector2) |
void | body_apply_impulse(body: RID, position: Vector2, impulse: Vector2) |
void | body_apply_torque_impulse(body: RID, impulse: float) |
void | body_attach_canvas_instance_id(body: RID, id: int) |
void | body_attach_object_instance_id(body: RID, id: int) |
void | body_clear_shapes(body: RID) |
RID | body_create() |
int | body_get_canvas_instance_id(body: RID) const |
int | body_get_collision_layer(body: RID) const |
int | body_get_collision_mask(body: RID) const |
int | body_get_continuous_collision_detection_mode(body: RID) const |
Physics2DDirectBodyState | body_get_direct_state(body: RID) |
int | body_get_max_contacts_reported(body: RID) const |
int | body_get_mode(body: RID) const |
int | body_get_object_instance_id(body: RID) const |
float | body_get_param(body: RID, param: int) const |
RID | body_get_shape(body: RID, shape_idx: int) const |
int | body_get_shape_count(body: RID) const |
Variant | body_get_shape_metadata(body: RID, shape_idx: int) const |
Transform2D | body_get_shape_transform(body: RID, shape_idx: int) const |
RID | body_get_space(body: RID) const |
Variant | body_get_state(body: RID, state: int) const |
bool | body_is_omitting_force_integration(body: RID) const |
void | body_remove_collision_exception(body: RID, excepted_body: RID) |
void | body_remove_shape(body: RID, shape_idx: int) |
void | body_set_axis_velocity(body: RID, axis_velocity: Vector2) |
void | body_set_collision_layer(body: RID, layer: int) |
void | body_set_collision_mask(body: RID, mask: int) |
void | body_set_continuous_collision_detection_mode(body: RID, mode: int) |
void | body_set_force_integration_callback(body: RID, receiver: Object, method: String, userdata: Variant = null) |
void | body_set_max_contacts_reported(body: RID, amount: int) |
void | body_set_mode(body: RID, mode: int) |
void | body_set_omit_force_integration(body: RID, enable: bool) |
void | body_set_param(body: RID, param: int, value: float) |
void | body_set_shape(body: RID, shape_idx: int, shape: RID) |
void | body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float) |
void | body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool) |
void | body_set_shape_metadata(body: RID, shape_idx: int, metadata: Variant) |
void | body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D) |
void | body_set_space(body: RID, space: RID) |
void | body_set_state(body: RID, state: int, value: Variant) |
bool | body_test_motion(body: RID, from: Transform2D, motion: Vector2, infinite_inertia: bool, margin: float = 0.08, result: Physics2DTestMotionResult = null) |
RID | capsule_shape_create() |
RID | circle_shape_create() |
RID | concave_polygon_shape_create() |
RID | convex_polygon_shape_create() |
RID | damped_spring_joint_create(anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID) |
float | damped_string_joint_get_param(joint: RID, param: int) const |
void | damped_string_joint_set_param(joint: RID, param: int, value: float) |
void | free_rid(rid: RID) |
int | get_process_info(process_info: int) |
RID | groove_joint_create(groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID) |
float | joint_get_param(joint: RID, param: int) const |
int | joint_get_type(joint: RID) const |
void | joint_set_param(joint: RID, param: int, value: float) |
RID | line_shape_create() |
RID | pin_joint_create(anchor: Vector2, body_a: RID, body_b: RID) |
RID | ray_shape_create() |
RID | rectangle_shape_create() |
RID | segment_shape_create() |
void | set_active(active: bool) |
Variant | shape_get_data(shape: RID) const |
int | shape_get_type(shape: RID) const |
void | shape_set_data(shape: RID, data: Variant) |
RID | space_create() |
Physics2DDirectSpaceState | space_get_direct_state(space: RID) |
float | space_get_param(space: RID, param: int) const |
bool | space_is_active(space: RID) const |
void | space_set_active(space: RID, active: bool) |
void | space_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_ADDED或AREA_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)
如果enable
为true
,则在实体上启用单向碰撞。
- body_set_shape_disabled body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)
如果disable
为true
,则禁用实体形状。
- 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 来获取可用的参数列表