PhysicsServer2DExtension
继承: PhysicsServer2D < Object
提供覆盖后可以用来创建自定义 PhysicsServer2D 实现的虚方法。
描述
这个类扩展自 PhysicsServer2D,提供可额外的可覆盖虚方法。覆盖这些方法后,就不会调用物理服务器内部方法,而是调用这些覆盖后的方法。
旨在用于 GDExtension,用于创建自定义 PhysicsServer2D 实现。
方法
方法说明
void _area_add_shape(area: RID, shape: RID, transform: Transform2D, disabled: bool) virtual 🔗
PhysicsServer2D.area_add_shape 的可覆盖版本。
void _area_attach_canvas_instance_id(area: RID, id: int) virtual 🔗
PhysicsServer2D.area_attach_canvas_instance_id 的可覆盖版本。
void _area_attach_object_instance_id(area: RID, id: int) virtual 🔗
PhysicsServer2D.area_attach_object_instance_id 的可覆盖版本。
void _area_clear_shapes(area: RID) virtual 🔗
PhysicsServer2D.area_clear_shapes 的可覆盖版本。
PhysicsServer2D.area_create 的可覆盖版本。
int _area_get_canvas_instance_id(area: RID) virtual const 🔗
PhysicsServer2D.area_get_canvas_instance_id 的可覆盖版本。
int _area_get_collision_layer(area: RID) virtual const 🔗
PhysicsServer2D.area_get_collision_layer 的可覆盖版本。
int _area_get_collision_mask(area: RID) virtual const 🔗
PhysicsServer2D.area_get_collision_mask 的可覆盖版本。
int _area_get_object_instance_id(area: RID) virtual const 🔗
PhysicsServer2D.area_get_object_instance_id 的可覆盖版本。
Variant _area_get_param(area: RID, param: AreaParameter) virtual const 🔗
PhysicsServer2D.area_get_param 的可覆盖版本。
RID _area_get_shape(area: RID, shape_idx: int) virtual const 🔗
PhysicsServer2D.area_get_shape 的可覆盖版本。
int _area_get_shape_count(area: RID) virtual const 🔗
PhysicsServer2D.area_get_shape_count 的可覆盖版本。
Transform2D _area_get_shape_transform(area: RID, shape_idx: int) virtual const 🔗
PhysicsServer2D.area_get_shape_transform 的可覆盖版本。
RID _area_get_space(area: RID) virtual const 🔗
PhysicsServer2D.area_get_space 的可覆盖版本。
Transform2D _area_get_transform(area: RID) virtual const 🔗
PhysicsServer2D.area_get_transform 的可覆盖版本。
void _area_remove_shape(area: RID, shape_idx: int) virtual 🔗
PhysicsServer2D.area_remove_shape 的可覆盖版本。
void _area_set_area_monitor_callback(area: RID, callback: Callable) virtual 🔗
PhysicsServer2D.area_set_area_monitor_callback 的可覆盖版本。
void _area_set_collision_layer(area: RID, layer: int) virtual 🔗
PhysicsServer2D.area_set_collision_layer 的可覆盖版本。
void _area_set_collision_mask(area: RID, mask: int) virtual 🔗
PhysicsServer2D.area_set_collision_mask 的可覆盖版本。
void _area_set_monitor_callback(area: RID, callback: Callable) virtual 🔗
PhysicsServer2D.area_set_monitor_callback 的可覆盖版本。
void _area_set_monitorable(area: RID, monitorable: bool) virtual 🔗
PhysicsServer2D.area_set_monitorable 的可覆盖版本。
void _area_set_param(area: RID, param: AreaParameter, value: Variant) virtual 🔗
PhysicsServer2D.area_set_param 的可覆盖版本。
void _area_set_pickable(area: RID, pickable: bool) virtual 🔗
如果设置为 true
,则允许具有给定 RID 的区域在鼠标光标悬停在其上时检测鼠标输入。
PhysicsServer2D 内部 area_set_pickable
方法的可覆盖版本。对应于 CollisionObject2D.input_pickable。
void _area_set_shape(area: RID, shape_idx: int, shape: RID) virtual 🔗
PhysicsServer2D.area_set_shape 的可覆盖版本。
void _area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool) virtual 🔗
PhysicsServer2D.area_set_shape_disabled 的可覆盖版本。
void _area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D) virtual 🔗
PhysicsServer2D.area_set_shape_transform 的可覆盖版本。
void _area_set_space(area: RID, space: RID) virtual 🔗
PhysicsServer2D.area_set_space 的可覆盖版本。
void _area_set_transform(area: RID, transform: Transform2D) virtual 🔗
PhysicsServer2D.area_set_transform 的可覆盖版本。
void _body_add_collision_exception(body: RID, excepted_body: RID) virtual 🔗
PhysicsServer2D.body_add_collision_exception 的可覆盖版本。
void _body_add_constant_central_force(body: RID, force: Vector2) virtual 🔗
PhysicsServer2D.body_add_constant_central_force 的可覆盖版本。
void _body_add_constant_force(body: RID, force: Vector2, position: Vector2) virtual 🔗
PhysicsServer2D.body_add_constant_force 的可覆盖版本。
void _body_add_constant_torque(body: RID, torque: float) virtual 🔗
PhysicsServer2D.body_add_constant_torque 的可覆盖版本。
void _body_add_shape(body: RID, shape: RID, transform: Transform2D, disabled: bool) virtual 🔗
PhysicsServer2D.body_add_shape 的可覆盖版本。
void _body_apply_central_force(body: RID, force: Vector2) virtual 🔗
PhysicsServer2D.body_apply_central_force 的可覆盖版本。
void _body_apply_central_impulse(body: RID, impulse: Vector2) virtual 🔗
PhysicsServer2D.body_apply_central_impulse 的可覆盖版本。
void _body_apply_force(body: RID, force: Vector2, position: Vector2) virtual 🔗
PhysicsServer2D.body_apply_force 的可覆盖版本。
void _body_apply_impulse(body: RID, impulse: Vector2, position: Vector2) virtual 🔗
PhysicsServer2D.body_apply_impulse 的可覆盖版本。
void _body_apply_torque(body: RID, torque: float) virtual 🔗
PhysicsServer2D.body_apply_torque 的可覆盖版本。
void _body_apply_torque_impulse(body: RID, impulse: float) virtual 🔗
PhysicsServer2D.body_apply_torque_impulse 的可覆盖版本。
void _body_attach_canvas_instance_id(body: RID, id: int) virtual 🔗
PhysicsServer2D.body_attach_canvas_instance_id 的可覆盖版本。
void _body_attach_object_instance_id(body: RID, id: int) virtual 🔗
PhysicsServer2D.body_attach_object_instance_id 的可覆盖版本。
void _body_clear_shapes(body: RID) virtual 🔗
PhysicsServer2D.body_clear_shapes 的可覆盖版本。
bool _body_collide_shape(body: RID, body_shape: int, shape: RID, shape_xform: Transform2D, motion: Vector2, results: void*
, result_max: int, result_count: int32_t*
) virtual 🔗
给定一个 body
、一个 shape
及其各自的参数,如果两者之间发生碰撞,该方法应返回 true
,并在 results
中传递其他详细信息。
PhysicsServer2D 内部 shape_collide
方法的可覆盖版本。对应于 PhysicsDirectSpaceState2D.collide_shape。
PhysicsServer2D.body_create 的可覆盖版本。
int _body_get_canvas_instance_id(body: RID) virtual const 🔗
PhysicsServer2D.body_get_canvas_instance_id 的可覆盖版本。
Array[RID] _body_get_collision_exceptions(body: RID) virtual const 🔗
返回所有添加为给定 body
的碰撞例外的物体的 RID。另请参阅 _body_add_collision_exception 和 _body_remove_collision_exception。
PhysicsServer2D 的内部 body_get_collision_exceptions
方法的可覆盖版本。对应于 PhysicsBody2D.get_collision_exceptions。
int _body_get_collision_layer(body: RID) virtual const 🔗
PhysicsServer2D.body_get_collision_layer 的可覆盖版本。
int _body_get_collision_mask(body: RID) virtual const 🔗
PhysicsServer2D.body_get_collision_mask 的可覆盖版本。
float _body_get_collision_priority(body: RID) virtual const 🔗
PhysicsServer2D.body_get_collision_priority 的可覆盖版本。
Vector2 _body_get_constant_force(body: RID) virtual const 🔗
PhysicsServer2D.body_get_constant_force 的可覆盖版本。
float _body_get_constant_torque(body: RID) virtual const 🔗
PhysicsServer2D.body_get_constant_torque 的可覆盖版本。
float _body_get_contacts_reported_depth_threshold(body: RID) virtual const 🔗
PhysicsServer2D 内部 body_get_contacts_reported_depth_threshold
方法的可覆盖版本。
注意:Godot 的默认物理实现目前未使用该方法。
CCDMode _body_get_continuous_collision_detection_mode(body: RID) virtual const 🔗
PhysicsServer2D.body_get_continuous_collision_detection_mode 的可覆盖版本。
PhysicsDirectBodyState2D _body_get_direct_state(body: RID) virtual 🔗
PhysicsServer2D.body_get_direct_state 的可覆盖版本。
int _body_get_max_contacts_reported(body: RID) virtual const 🔗
PhysicsServer2D.body_get_max_contacts_reported 的可覆盖版本。
BodyMode _body_get_mode(body: RID) virtual const 🔗
PhysicsServer2D.body_get_mode 的可覆盖版本。
int _body_get_object_instance_id(body: RID) virtual const 🔗
PhysicsServer2D.body_get_object_instance_id 的可覆盖版本。
Variant _body_get_param(body: RID, param: BodyParameter) virtual const 🔗
PhysicsServer2D.body_get_param 的可覆盖版本。
RID _body_get_shape(body: RID, shape_idx: int) virtual const 🔗
PhysicsServer2D.body_get_shape 的可覆盖版本。
int _body_get_shape_count(body: RID) virtual const 🔗
PhysicsServer2D.body_get_shape_count 的可覆盖版本。
Transform2D _body_get_shape_transform(body: RID, shape_idx: int) virtual const 🔗
PhysicsServer2D.body_get_shape_transform 的可覆盖版本。
RID _body_get_space(body: RID) virtual const 🔗
PhysicsServer2D.body_get_space 的可覆盖版本。
Variant _body_get_state(body: RID, state: BodyState) virtual const 🔗
PhysicsServer2D.body_get_state 的可覆盖版本。
bool _body_is_omitting_force_integration(body: RID) virtual const 🔗
PhysicsServer2D.body_is_omitting_force_integration 的可覆盖版本。
void _body_remove_collision_exception(body: RID, excepted_body: RID) virtual 🔗
PhysicsServer2D.body_remove_collision_exception 的可覆盖版本。
void _body_remove_shape(body: RID, shape_idx: int) virtual 🔗
PhysicsServer2D.body_remove_shape 的可覆盖版本。
void _body_reset_mass_properties(body: RID) virtual 🔗
PhysicsServer2D.body_reset_mass_properties 的可覆盖版本。
void _body_set_axis_velocity(body: RID, axis_velocity: Vector2) virtual 🔗
PhysicsServer2D.body_set_axis_velocity 的可覆盖版本。
void _body_set_collision_layer(body: RID, layer: int) virtual 🔗
PhysicsServer2D.body_set_collision_layer 的可覆盖版本。
void _body_set_collision_mask(body: RID, mask: int) virtual 🔗
PhysicsServer2D.body_set_collision_mask 的可覆盖版本。
void _body_set_collision_priority(body: RID, priority: float) virtual 🔗
PhysicsServer2D.body_set_collision_priority 的可覆盖版本。
void _body_set_constant_force(body: RID, force: Vector2) virtual 🔗
PhysicsServer2D.body_set_constant_force 的可覆盖版本。
void _body_set_constant_torque(body: RID, torque: float) virtual 🔗
PhysicsServer2D.body_set_constant_torque 的可覆盖版本。
void _body_set_contacts_reported_depth_threshold(body: RID, threshold: float) virtual 🔗
PhysicsServer2D 内部 body_set_contacts_reported_depth_threshold
方法的可覆盖版本。
注意:Godot 的默认物理实现目前未使用该方法。
void _body_set_continuous_collision_detection_mode(body: RID, mode: CCDMode) virtual 🔗
PhysicsServer2D.body_set_continuous_collision_detection_mode 的可覆盖版本。
void _body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant) virtual 🔗
PhysicsServer2D.body_set_force_integration_callback 的可覆盖版本。
void _body_set_max_contacts_reported(body: RID, amount: int) virtual 🔗
PhysicsServer2D.body_set_max_contacts_reported 的可覆盖版本。
void _body_set_mode(body: RID, mode: BodyMode) virtual 🔗
PhysicsServer2D.body_set_mode 的可覆盖版本。
void _body_set_omit_force_integration(body: RID, enable: bool) virtual 🔗
PhysicsServer2D.body_set_omit_force_integration 的可覆盖版本。
void _body_set_param(body: RID, param: BodyParameter, value: Variant) virtual 🔗
PhysicsServer2D.body_set_param 的可覆盖版本。
void _body_set_pickable(body: RID, pickable: bool) virtual 🔗
如果设置为 true
,则允许具有给定 RID 的物体在鼠标光标悬停在其上时检测鼠标输入。
PhysicsServer2D 内部 body_set_pickable
方法的可覆盖版本。对应于 CollisionObject2D.input_pickable。
void _body_set_shape(body: RID, shape_idx: int, shape: RID) virtual 🔗
PhysicsServer2D.body_set_shape 的可覆盖版本。
void _body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float) virtual 🔗
PhysicsServer2D.body_set_shape_as_one_way_collision 的可覆盖版本。
void _body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool) virtual 🔗
PhysicsServer2D.body_set_shape_disabled 的可覆盖版本。
void _body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D) virtual 🔗
PhysicsServer2D.body_set_shape_transform 的可覆盖版本。
void _body_set_space(body: RID, space: RID) virtual 🔗
PhysicsServer2D.body_set_space 的可覆盖版本。
void _body_set_state(body: RID, state: BodyState, value: Variant) virtual 🔗
PhysicsServer2D.body_set_state 的可覆盖版本。
void _body_set_state_sync_callback(body: RID, callable: Callable) virtual 🔗
Assigns the body
to call the given callable
during the synchronization phase of the loop, before _step is called. See also _sync.
Overridable version of PhysicsServer2D.body_set_state_sync_callback.
bool _body_test_motion(body: RID, from: Transform2D, motion: Vector2, margin: float, collide_separation_ray: bool, recovery_as_collision: bool, result: PhysicsServer2DExtensionMotionResult*
) virtual const 🔗
PhysicsServer2D.body_test_motion 的可覆盖版本。与暴露的实现不同,该方法不会通过 PhysicsTestMotionParameters2D 接受所有参数。
RID _capsule_shape_create() virtual 🔗
PhysicsServer2D.capsule_shape_create 的可覆盖版本。
RID _circle_shape_create() virtual 🔗
PhysicsServer2D.circle_shape_create 的可覆盖版本。
RID _concave_polygon_shape_create() virtual 🔗
PhysicsServer2D.concave_polygon_shape_create 的可覆盖版本。
RID _convex_polygon_shape_create() virtual 🔗
PhysicsServer2D.convex_polygon_shape_create 的可覆盖版本。
float _damped_spring_joint_get_param(joint: RID, param: DampedSpringParam) virtual const 🔗
PhysicsServer2D.damped_spring_joint_get_param 的可覆盖版本。
void _damped_spring_joint_set_param(joint: RID, param: DampedSpringParam, value: float) virtual 🔗
PhysicsServer2D.damped_spring_joint_set_param 的可覆盖版本。
void _end_sync() virtual 🔗
调用该方法表示物理服务器已停止同步。它处于循环的迭代/物理阶段,即使在单独的线程上运行也可以访问物理对象。另请参阅 _sync。
PhysicsServer2D 的内部 end_sync
方法的可覆盖版本。
void _finish() virtual 🔗
当主循环结束时调用以关闭物理服务器。另请参阅 MainLoop._finalize 和 _init。
PhysicsServer2D 的内部 finish
方法的可覆盖版本。
void _flush_queries() virtual 🔗
_step 之前的每个物理步骤期间调用来处理所有剩余查询。
PhysicsServer2D 的内部 flush_queries
方法的可覆盖版本。
void _free_rid(rid: RID) virtual 🔗
PhysicsServer2D.free_rid 的可覆盖版本。
int _get_process_info(process_info: ProcessInfo) virtual 🔗
PhysicsServer2D.get_process_info 的可覆盖版本。
void _init() virtual 🔗
在主循环初始化并创建该物理服务器的新实例时调用。另请参阅 MainLoop._initialize 和 _finish。
PhysicsServer2D 的内部 init
方法的可覆盖版本。
bool _is_flushing_queries() virtual const 🔗
当物理服务器正在处理查询时,应返回 true
的可覆盖方法。另请参阅 _flush_queries。
PhysicsServer2D 内部 is_flushing_queries
方法的可覆盖版本。
void _joint_clear(joint: RID) virtual 🔗
PhysicsServer2D.joint_clear 的可覆盖版本。
PhysicsServer2D.joint_create 的可覆盖版本。
void _joint_disable_collisions_between_bodies(joint: RID, disable: bool) virtual 🔗
PhysicsServer2D.joint_disable_collisions_between_bodies 的可覆盖版本。
float _joint_get_param(joint: RID, param: JointParam) virtual const 🔗
PhysicsServer2D.joint_get_param 的可覆盖版本。
JointType _joint_get_type(joint: RID) virtual const 🔗
PhysicsServer2D.joint_get_type 的可覆盖版本。
bool _joint_is_disabled_collisions_between_bodies(joint: RID) virtual const 🔗
PhysicsServer2D.joint_is_disabled_collisions_between_bodies 的可覆盖版本。
void _joint_make_damped_spring(joint: RID, anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID) virtual 🔗
PhysicsServer2D.joint_make_damped_spring 的可覆盖版本。
void _joint_make_groove(joint: RID, a_groove1: Vector2, a_groove2: Vector2, b_anchor: Vector2, body_a: RID, body_b: RID) virtual 🔗
PhysicsServer2D.joint_make_groove 的可覆盖版本。
void _joint_make_pin(joint: RID, anchor: Vector2, body_a: RID, body_b: RID) virtual 🔗
PhysicsServer2D.joint_make_pin 的可覆盖版本。
void _joint_set_param(joint: RID, param: JointParam, value: float) virtual 🔗
PhysicsServer2D.joint_set_param 的可覆盖版本。
bool _pin_joint_get_flag(joint: RID, flag: PinJointFlag) virtual const 🔗
PhysicsServer2D.pin_joint_get_flag 的可覆盖版本。
float _pin_joint_get_param(joint: RID, param: PinJointParam) virtual const 🔗
PhysicsServer2D.pin_joint_get_param 的可覆盖版本。
void _pin_joint_set_flag(joint: RID, flag: PinJointFlag, enabled: bool) virtual 🔗
PhysicsServer2D.pin_joint_set_flag 的可覆盖版本。
void _pin_joint_set_param(joint: RID, param: PinJointParam, value: float) virtual 🔗
PhysicsServer2D.pin_joint_set_param 的可覆盖版本。
RID _rectangle_shape_create() virtual 🔗
PhysicsServer2D.rectangle_shape_create 的可覆盖版本。
RID _segment_shape_create() virtual 🔗
PhysicsServer2D.segment_shape_create 的可覆盖版本。
RID _separation_ray_shape_create() virtual 🔗
PhysicsServer2D.separation_ray_shape_create 的可覆盖版本。
void _set_active(active: bool) virtual 🔗
PhysicsServer2D.set_active 的可覆盖版本。
bool _shape_collide(shape_A: RID, xform_A: Transform2D, motion_A: Vector2, shape_B: RID, xform_B: Transform2D, motion_B: Vector2, results: void*
, result_max: int, result_count: int32_t*
) virtual 🔗
给定两个形状及其参数,如果两者之间发生碰撞,则应返回 true
,并在 results
中传递其他详细信息。
PhysicsServer2D 内部 shape_collide
方法的可覆盖版本。对应于 PhysicsDirectSpaceState2D.collide_shape。
float _shape_get_custom_solver_bias(shape: RID) virtual const 🔗
应返回给定 shape
的自定义解算器偏差,该偏差定义了当涉及该形状时,物体在接触时被迫分离的程度。
PhysicsServer2D 的内部 shape_get_custom_solver_bias
方法的可覆盖版本。对应于 Shape2D.custom_solver_bias。
Variant _shape_get_data(shape: RID) virtual const 🔗
PhysicsServer2D.shape_get_data 的可覆盖版本。
ShapeType _shape_get_type(shape: RID) virtual const 🔗
PhysicsServer2D.shape_get_type 的可覆盖版本。
void _shape_set_custom_solver_bias(shape: RID, bias: float) virtual 🔗
应为给定的 shape
设置自定义解算器偏差。它定义了接触时物体被迫分离的程度。
PhysicsServer2D 内部 shape_get_custom_solver_bias
方法的可覆盖版本。对应于 Shape2D.custom_solver_bias。
void _shape_set_data(shape: RID, data: Variant) virtual 🔗
PhysicsServer2D.shape_set_data 的可覆盖版本。
PhysicsServer2D.space_create 的可覆盖版本。
int _space_get_contact_count(space: RID) virtual const 🔗
应返回在给定的 space
中最后一个物理步骤期间发生了多少次接触。另请参阅 _space_get_contacts 和 _space_set_debug_contacts。
PhysicsServer2D 的内部 space_get_contact_count
方法的可覆盖版本。
PackedVector2Array _space_get_contacts(space: RID) virtual const 🔗
应返回给定 space
中上一个物理步骤中发生的所有接触的位置。另请参阅 _space_get_contact_count 和 _space_set_debug_contacts。
PhysicsServer2D 的内部 space_get_contacts
方法的可覆盖版本。
PhysicsDirectSpaceState2D _space_get_direct_state(space: RID) virtual 🔗
PhysicsServer2D.space_get_direct_state 的可覆盖版本。
float _space_get_param(space: RID, param: SpaceParameter) virtual const 🔗
PhysicsServer2D.space_get_param 的可覆盖版本。
bool _space_is_active(space: RID) virtual const 🔗
PhysicsServer2D.space_is_active 的可覆盖版本。
void _space_set_active(space: RID, active: bool) virtual 🔗
PhysicsServer2D.space_set_active 的可覆盖版本。
void _space_set_debug_contacts(space: RID, max_contacts: int) virtual 🔗
内部使用以允许给定的 space
存储接触点,最多可达 max_contacts
。当 SceneTree.debug_collisions_hint 为 true
时,或通过在编辑器中勾选“可见碰撞形状”,将自动为主 World2D 的空间设置该设置。仅适用于调试构建。
PhysicsServer2D 的内部 space_set_debug_contacts
方法的可覆盖版本。
void _space_set_param(space: RID, param: SpaceParameter, value: float) virtual 🔗
PhysicsServer2D.space_set_param 的可覆盖版本。
void _step(step: float) virtual 🔗
每个物理步骤期间调用来处理物理模拟。step
是自上一个物理步骤以来经过的时间,单位为秒。它通常与 Node.get_physics_process_delta_time 相同。
PhysicsServer2D 的内部 step
方法的可覆盖版本。
void _sync() virtual 🔗
调用该方法表示物理服务器正在同步,如果在单独的线程上运行则无法访问物理状态。另请参阅 _end_sync。
PhysicsServer2D 的内部 sync
方法的可覆盖版本。
RID _world_boundary_shape_create() virtual 🔗
PhysicsServer2D.world_boundary_shape_create 的可覆盖版本。
bool body_test_motion_is_excluding_body(body: RID) const 🔗
如果具有指定 RID 的物体被排除在 _body_test_motion 之外,则返回 true
。另见 Object.get_instance_id。
bool body_test_motion_is_excluding_object(object: int) const 🔗
如果具有指定实例 ID 的对象被排除在 _body_test_motion 之外,则返回 true
。另见 Object.get_instance_id。