跳到主要内容

Physics2DDirectSpaceState

继承

Object

简要描述

直接访问对象到Physics2DServer中的空间。

描述

直接访问对象到Physics2DServer中的空间。它主要用于查询给定空间中的对象和区域。

方法

返回值类型方法名称
Arraycast_motion(shape: Physics2DShapeQueryParameters)
Arraycollide_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32)
Dictionaryget_rest_info(shape: Physics2DShapeQueryParameters)
Arrayintersect_point(point: Vector2, max_results: int = 32, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)
Arrayintersect_point_on_canvas(point: Vector2, canvas_instance_id: int, max_results: int = 32, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)
Dictionaryintersect_ray(from: Vector2, to: Vector2, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)
Arrayintersect_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32)

方法说明

  • cast_motion cast_motion(shape: Physics2DShapeQueryParameters)

检查形状可以向一个点传播多远。 如果形状不能移动,则数组将为空。

注意:形状和运动都通过Physics2DShapeQueryParameters对象提供。


  • collide_shape collide_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32)

检查通过Physics2DShapeQueryParameters对象提供的形状与空间的交点。结果数组包含形状与另一个相交的点的列表。 与intersect_shape一样,可以限制返回结果的数量以节省处理时间。


  • get_rest_info get_rest_info(shape: Physics2DShapeQueryParameters)

检查通过Physics2DShapeQueryParameters对象提供的形状与空间的交点。如果碰撞的形状不止一种,则选择最接近的一种。 如果形状没有相交,则返回一个空字典。

注意:此方法未考虑对象的motion属性。返回的对象是一个包含以下字段的字典:

collider_id:碰撞对象的ID。

linear_velocity:碰撞物体的速度Vector2

metadata:相交形状的元数据。

normal:对象在交点处的表面法线。

point:相交点。

rid:相交对象的RID

shape:碰撞形状的形状索引。


  • intersect_point intersect_point(point: Vector2, max_results: int = 32, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)

检查点是否在任何形状内。点所在的形状将在包含字典的数组中返回,该字典具有以下字段:

collider:碰撞对象。

collider_id:碰撞对象的ID。

metadata:相交形状的元数据。

rid:相交对象的RID

shape:碰撞形状的形状索引。

另外,该方法可以采用从碰撞中排除的exclude对象或RID的数组,表示要检入的物理层的collision_mask位掩码,或布尔值,分别确定射线是否应与PhysicsBodyArea碰撞。


  • intersect_point_on_canvas intersect_point_on_canvas(point: Vector2, canvas_instance_id: int, max_results: int = 32, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)

  • intersect_ray intersect_ray(from: Vector2, to: Vector2, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)

与给定空间中的射线相交。返回的对象是具有以下字段的字典:

collider:碰撞对象。

collider_id:碰撞对象的ID。

metadata:相交形状的元数据。

normal:对象在交点处的表面法线。

position:相交点。

rid:相交对象的RID

shape:碰撞形状的形状索引。

如果射线没有相交,则返回空字典。

另外,该方法可以采用要排除在碰撞之外的exclude对象或RID的数组,表示要检入的物理层的collision_mask位掩码,或布尔值,分别确定射线是否应与PhysicsBodyArea碰撞。


  • intersect_shape intersect_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32)

检查通过Physics2DShapeQueryParameters对象提供的形状与空间的交点。

注意:此方法未考虑对象的motion属性。相交的形状在包含字典的数组中返回,该字典具有以下字段:

collider:碰撞对象。

collider_id:碰撞对象的ID。

metadata:相交形状的元数据。

rid:相交对象的RID

shape:碰撞形状的形状索引。

可以使用max_results参数限制交叉点的数量,以减少处理时间。