Physics2DDirectSpaceState¶
Inherits: Object
Category: Core
Brief Description¶
Direct access object to a space in the Physics2DServer.
Member Functions¶
Array | cast_motion ( Physics2DShapeQueryParameters shape ) |
Array | collide_shape ( Physics2DShapeQueryParameters shape, int max_results=32 ) |
Dictionary | get_rest_info ( Physics2DShapeQueryParameters shape ) |
Array | intersect_point ( Vector2 point, int max_results=32, Array exclude=[ ], int collision_layer=2147483647 ) |
Dictionary | intersect_ray ( Vector2 from, Vector2 to, Array exclude=[ ], int collision_layer=2147483647 ) |
Array | intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=32 ) |
Description¶
Direct access object to a space in the Physics2DServer. It’s used mainly to do queries against objects and areas residing in a given space.
Member Function Description¶
- Array cast_motion ( Physics2DShapeQueryParameters shape )
Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a Physics2DShapeQueryParameters object. The method will return an array with two floats between 0 and 1, both representing a fraction of motion
. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be 1, 1.
If the shape can not move, the array will be empty (dir.empty()==true
).
- Array collide_shape ( Physics2DShapeQueryParameters shape, int max_results=32 )
Checks the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. The resulting array contains a list of points where the shape intersects another. Like with intersect_shape, the number of returned results can be limited to save processing time.
- Dictionary get_rest_info ( Physics2DShapeQueryParameters shape )
Checks the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. If it collides with more than one shape, the nearest one is selected. Note that this method does not take into account the motion
property of the object. The returned object is a dictionary containing the following fields:
collider_id
: The colliding object’s ID.
linear_velocity
: The colliding object’s velocity Vector2. If the object is an Area2D, the result is (0, 0)
.
metadata
: The intersecting shape’s metadata. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.
normal
: The object’s surface normal at the intersection point.
point
: The intersection point.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
If the shape did not intersect anything, then an empty dictionary (dir.empty()==true
) is returned instead.
- Array intersect_point ( Vector2 point, int max_results=32, Array exclude=[ ], int collision_layer=2147483647 )
Checks whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:
collider
: The colliding object.
collider_id
: The colliding object’s ID.
metadata
: The intersecting shape’s metadata. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
- Dictionary intersect_ray ( Vector2 from, Vector2 to, Array exclude=[ ], int collision_layer=2147483647 )
Intersects a ray in a given space. The returned object is a dictionary with the following fields:
collider
: The colliding object.
collider_id
: The colliding object’s ID.
metadata
: The intersecting shape’s metadata. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.
normal
: The object’s surface normal at the intersection point.
position
: The intersection point.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
If the ray did not intersect anything, then an empty dictionary (dir.empty()==true
) is returned instead.
Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
- Array intersect_shape ( Physics2DShapeQueryParameters shape, int max_results=32 )
Checks the intersections of a shape, given through a Physics2DShapeQueryParameters object, against the space. Note that this method does not take into account the motion
property of the object. The intersected shapes are returned in an array containing dictionaries with the following fields:
collider
: The colliding object.
collider_id
: The colliding object’s ID.
metadata
: The intersecting shape’s metadata. This metadata is different from Object.get_meta, and is set with Physics2DServer.shape_set_data.
rid
: The intersecting object’s RID.
shape
: The shape index of the colliding shape.
The number of intersections can be limited with the second parameter, to reduce the processing time.