Physics2DDirectSpaceState
继承
简要描述
直接访问对象到Physics2DServer中的空间。
描述
直接访问对象到Physics2DServer中的空间。它主要用于查询给定空间中的对象和区域。
方法
返回值类型 | 方法名称 |
---|---|
Array | cast_motion(shape: Physics2DShapeQueryParameters) |
Array | collide_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32) |
Dictionary | get_rest_info(shape: Physics2DShapeQueryParameters) |
Array | intersect_point(point: Vector2, max_results: int = 32, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false) |
Array | 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) |
Dictionary | intersect_ray(from: Vector2, to: Vector2, exclude: Array = [], collision_layer: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false) |
Array | intersect_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
位掩码,或布尔值,分别确定射线是否应与PhysicsBody或Area碰撞。
- 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
位掩码,或布尔值,分别确定射线是否应与PhysicsBody或Area碰撞。
- intersect_shape intersect_shape(shape: Physics2DShapeQueryParameters, max_results: int = 32)
检查通过Physics2DShapeQueryParameters对象提供的形状与空间的交点。
注意:此方法未考虑对象的motion
属性。相交的形状在包含字典的数组中返回,该字典具有以下字段:
collider
:碰撞对象。
collider_id
:碰撞对象的ID。
metadata
:相交形状的元数据。
rid
:相交对象的RID。
shape
:碰撞形状的形状索引。
可以使用max_results
参数限制交叉点的数量,以减少处理时间。